- 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

@ -20,12 +20,13 @@ package com.wisemapping.model;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.io.Serializable;
import java.util.Calendar; import java.util.Calendar;
import java.util.Set; import java.util.Set;
import java.util.HashSet; import java.util.HashSet;
public class Collaborator { public class Collaborator implements Serializable {
private long id; private long id;
private String email; private String email;
private Calendar creationDate; private Calendar 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>