- Add support for serialized sessions...

This commit is contained in:
Paulo Gustavo Veiga 2012-09-16 20:02:08 -03:00
parent 36a35b44d7
commit a0ea9a6980
4 changed files with 95 additions and 82 deletions

View File

@ -32,7 +32,7 @@ import java.util.Set;
public class BrowserSupportInterceptor extends HandlerInterceptorAdapter { public class BrowserSupportInterceptor extends HandlerInterceptorAdapter {
private Set<String> exclude; private Set<String> exclude;
public static final String USER_AGENT = "wisemapping.userAgent"; public static final String USER_AGENT = "wisemapping.user_agent";
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception { public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {

View File

@ -26,13 +26,11 @@ import java.io.Serializable;
public class WiseUserAgent implements Serializable { public class WiseUserAgent implements Serializable {
public static final String USER_AGENT_HEADER = "User-Agent"; public static final String USER_AGENT_HEADER = "User-Agent";
private UserAgent userAgent; transient private UserAgent userAgent;
private String header; private String header;
private WiseUserAgent(@NotNull final String header) { private WiseUserAgent(@NotNull final String header) {
this.header = header; this.header = header;
this.userAgent = new UserAgent(header);
} }
public static WiseUserAgent create(@NotNull final HttpServletRequest request) { public static WiseUserAgent create(@NotNull final HttpServletRequest request) {
@ -41,6 +39,7 @@ public class WiseUserAgent implements Serializable {
public boolean isBrowserSupported() { public boolean isBrowserSupported() {
final UserAgent userAgent = this.getUserAgent();
final Browser browser = userAgent.getBrowser(); final Browser browser = userAgent.getBrowser();
final Version version = userAgent.getBrowserVersion(); final Version version = userAgent.getBrowserVersion();
final OperatingSystem os = userAgent.getOperatingSystem(); final OperatingSystem os = userAgent.getOperatingSystem();
@ -58,7 +57,17 @@ public class WiseUserAgent implements Serializable {
return result; return result;
} }
@NotNull
synchronized
private UserAgent getUserAgent() {
if (userAgent == null) {
userAgent = new UserAgent(header);
}
return userAgent;
}
public boolean needsGCF() { public boolean needsGCF() {
final UserAgent userAgent = this.getUserAgent();
final Browser browser = userAgent.getBrowser(); final Browser browser = userAgent.getBrowser();
final Version version = userAgent.getBrowserVersion(); final Version version = userAgent.getBrowserVersion();
final OperatingSystem os = userAgent.getOperatingSystem(); final OperatingSystem os = userAgent.getOperatingSystem();
@ -70,4 +79,6 @@ public class WiseUserAgent implements Serializable {
public static WiseUserAgent create(@NotNull final String userAgent) { public static WiseUserAgent create(@NotNull final String userAgent) {
return new WiseUserAgent(userAgent); return new WiseUserAgent(userAgent);
} }
} }

View File

@ -1,78 +1,79 @@
/* /*
* Copyright [2011] [wisemapping] * Copyright [2011] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the * It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page; * "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the license at * You may obtain a copy of the license at
* *
* http://www.wisemapping.org/license * http://www.wisemapping.org/license
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.wisemapping.model; package com.wisemapping.model;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Calendar; import java.io.Serializable;
import java.util.Set; import java.util.Calendar;
import java.util.HashSet; import java.util.Set;
import java.util.HashSet;
public class Collaborator {
private long id; public class Collaborator implements Serializable {
private String email; private long id;
private Calendar creationDate; private String email;
private Set<Collaboration> collaborations = new HashSet<Collaboration>(); private Calendar creationDate;
private Set<Collaboration> collaborations = new HashSet<Collaboration>();
public Collaborator() {}
public Collaborator() {}
public Collaborator(Set<Collaboration> collaborations) {
this.collaborations = collaborations; public Collaborator(Set<Collaboration> collaborations) {
} this.collaborations = collaborations;
}
public void setCollaborations(Set<Collaboration> collaborations)
{ public void setCollaborations(Set<Collaboration> collaborations)
this.collaborations = collaborations; {
} this.collaborations = collaborations;
}
public void addCollaboration(@NotNull Collaboration collaboration)
{ public void addCollaboration(@NotNull Collaboration collaboration)
collaborations.add(collaboration); {
} collaborations.add(collaboration);
}
public Set<Collaboration> getCollaborations()
{ public Set<Collaboration> getCollaborations()
return collaborations; {
} return collaborations;
}
public long getId() {
return id; public long getId() {
} return id;
}
public void setId(long id) {
this.id = id; public void setId(long id) {
} this.id = id;
}
public String getEmail() {
return email; public String getEmail() {
} return email;
}
public void setEmail(String email) {
this.email = email; public void setEmail(String email) {
} this.email = email;
}
public Calendar getCreationDate() {
return creationDate; public Calendar getCreationDate() {
} return creationDate;
}
public void setCreationDate(Calendar creationDate) {
this.creationDate = creationDate; public void setCreationDate(Calendar creationDate) {
} this.creationDate = creationDate;
} }
}

View File

@ -5,6 +5,7 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"> version="2.4">
<distributable/>
<context-param> <context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>messages</param-value> <param-value>messages</param-value>