You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2006/11/10 23:32:12 UTC

svn commit: r473540 - in /incubator/wicket/trunk/wicket/src/main/java/wicket: protocol/http/ protocol/http/request/ settings/

Author: jcompagner
Date: Fri Nov 10 14:32:11 2006
New Revision: 473540

URL: http://svn.apache.org/viewvc?view=rev&rev=473540
Log:
request logger improvements

Modified:
    incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/AbstractHttpSessionStore.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/ClientProperties.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/RequestLogger.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/WebApplication.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/request/WebClientInfo.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/settings/Settings.java

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/AbstractHttpSessionStore.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/AbstractHttpSessionStore.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/AbstractHttpSessionStore.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/AbstractHttpSessionStore.java Fri Nov 10 14:32:11 2006
@@ -141,14 +141,22 @@
 	 */
 	public final String getSessionId(Request request, boolean create)
 	{
+		String id = null;
 		WebRequest webRequest = toWebRequest(request);
-		boolean created = create && webRequest.getHttpServletRequest().getSession(false) == null;
-		HttpSession httpSession = webRequest.getHttpServletRequest().getSession(create);
-		String id = (httpSession != null) ? httpSession.getId() : null;
-		if(created && id != null)
+		HttpSession httpSession = webRequest.getHttpServletRequest().getSession(false);
+		if(httpSession != null)
 		{
-			IRequestLogger logger = Application.get().getRequestLogger();
-			if(logger != null) logger.sessionCreated(id);
+			id = httpSession.getId();
+		}
+		else if(create)
+		{
+			httpSession = webRequest.getHttpServletRequest().getSession(true);
+			id = httpSession.getId();
+			if(id != null)
+			{
+				IRequestLogger logger = Application.get().getRequestLogger();
+				if(logger != null) logger.sessionCreated(id);
+			}
 		}
 		return id;
 	}

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/ClientProperties.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/ClientProperties.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/ClientProperties.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/ClientProperties.java Fri Nov 10 14:32:11 2006
@@ -340,6 +340,12 @@
 	 * The client's time offset from UTC in minutes.
 	 */
 	public static final String UTC_OFFSET = "utcOffset";
+	
+	/**
+	 * The client's remote/ip address
+	 */
+	public static final String REMOTE_ADDRESS = "remoteAddress";
+	
 
 	private static final long serialVersionUID = 1L;
 

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/RequestLogger.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/RequestLogger.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/RequestLogger.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/RequestLogger.java Fri Nov 10 14:32:11 2006
@@ -46,6 +46,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import wicket.Application;
 import wicket.IRequestTarget;
 import wicket.Page;
 import wicket.PageMap;
@@ -123,7 +124,22 @@
 	 */
 	public RequestLogger()
 	{
-		requests = Collections.synchronizedList(new LinkedList<RequestData>());
+		requests = Collections.synchronizedList(new LinkedList<RequestData>()
+		{
+			private static final long serialVersionUID = 1L;
+
+			/**
+			 * @see java.util.LinkedList#add(java.lang.Object)
+			 */
+			public void add(int index,RequestData o)
+			{
+				super.add(index,o);
+				if(size() > Application.get().getRequestLoggerSettings().getRequestsWindowSize())
+				{
+					removeLast();
+				}
+			}
+		});
 		liveSessions = new ConcurrentHashMap<String, SessionData>();
 	}
 
@@ -202,8 +218,11 @@
 			Object sessionInfo = getSessionInfo(session);
 			rd.setSessionInfo(sessionInfo);
 			
-			// todo should we really do this, this is a bit expensive.
-			long sizeInBytes = session.getSizeInBytes();
+			long sizeInBytes = -1;
+			if(Application.get().getRequestLoggerSettings().getRecordSessionSize())
+			{
+				sizeInBytes = session.getSizeInBytes();
+			}
 			rd.setSessionSize(sizeInBytes);
 			rd.setTimeTaken(timeTaken);
 			requests.add(0, rd);

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/WebApplication.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/WebApplication.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/WebApplication.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/WebApplication.java Fri Nov 10 14:32:11 2006
@@ -194,7 +194,7 @@
 	}
 
 	/**
-	 * @return The Wicket servlet for this application
+	 * @return The Wicket servlet context for this application
 	 */
 	public final ServletContext getServletContext()
 	{

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/request/WebClientInfo.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/request/WebClientInfo.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/request/WebClientInfo.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/request/WebClientInfo.java Fri Nov 10 14:32:11 2006
@@ -67,6 +67,8 @@
 		{
 			throw new WicketRuntimeException("unable to read header 'User-Agent'");
 		}
+		properties.setProperty(ClientProperties.REMOTE_ADDRESS,httpServletRequest.getRemoteAddr());
+
 		init();
 	}
 
@@ -88,6 +90,9 @@
 		}
 
 		this.userAgent = userAgent;
+		HttpServletRequest httpServletRequest = requestCycle.getWebRequest()
+		.getHttpServletRequest();
+		properties.setProperty(ClientProperties.REMOTE_ADDRESS,httpServletRequest.getRemoteAddr());
 
 		init();
 	}

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/settings/Settings.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/settings/Settings.java?view=diff&rev=473540&r1=473539&r2=473540
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/settings/Settings.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/settings/Settings.java Fri Nov 10 14:32:11 2006
@@ -93,7 +93,8 @@
 			IResourceSettings,
 			ISecuritySettings,
 			ISessionSettings,
-			IFrameworkSettings
+			IFrameworkSettings,
+			IRequestLoggerSettings
 {
 	private final static Log log = LogFactory.getLog(Settings.class);
 
@@ -298,6 +299,12 @@
 	/** List of registered markup load listeners */
 	private final List<IMarkupLoadListener> markupLoadListeners = new ArrayList<IMarkupLoadListener>();
 	
+	private boolean recordSessionSize = true;
+
+	private int requestsWindowSize = 2000;
+
+	private boolean requestLoggerEnabled;
+	
 	/**
 	 * Create the application settings, carrying out any necessary
 	 * initialisations.
@@ -1294,5 +1301,54 @@
 	public List<IMarkupLoadListener> getMarkupLoadListeners()
 	{
 		return this.markupLoadListeners;
+	}
+	
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#getRecordSessionSize()
+	 */
+	public boolean getRecordSessionSize()
+	{
+		return recordSessionSize;
+	}
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#getRequestsWindowSize()
+	 */
+	public int getRequestsWindowSize()
+	{
+		return requestsWindowSize;
+	}
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#isRequestLoggerEnabled()
+	 */
+	public boolean isRequestLoggerEnabled()
+	{
+		return requestLoggerEnabled; 
+	}
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#setRecordSessionSize(boolean)
+	 */
+	public void setRecordSessionSize(boolean record)
+	{
+		recordSessionSize = record;
+	}
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#setRequestLoggerEnabled(boolean)
+	 */
+	public void setRequestLoggerEnabled(boolean enable)
+	{
+		requestLoggerEnabled = enable;
+	}
+
+	/**
+	 * @see wicket.settings.IRequestLoggerSettings#setRequestsWindowSize(int)
+	 */
+	public void setRequestsWindowSize(int size)
+	{
+		requestsWindowSize = size;
 	}
 }