Author: dashorst
Date: Wed Jun 29 10:23:36 2011
New Revision: 1141037
URL: http://svn.apache.org/viewvc?rev=1141037&view=rev
Log:
There were a couple more issues with the request logger implementation. It used
getPage() to log the page class and page id: causing page instantiations at
wrong times. This has been remedied by requiring an extra method to provide the
page id (if present). The page instantiation caused problems with the
Swarm/Wasp security framework.
Further more the request logger now logs the requested URL as well.
Issue: WICKET-3832
Added:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
(with props)
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/IRequestLogger.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageProvider.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageRequestHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/RenderPageRequestHandler.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
Wed Jun 29 10:23:36 2011
@@ -59,6 +59,7 @@ import org.apache.wicket.pageStore.IData
import org.apache.wicket.pageStore.IPageStore;
import org.apache.wicket.protocol.http.IRequestLogger;
import org.apache.wicket.protocol.http.RequestLogger;
+import org.apache.wicket.protocol.http.RequestLoggerRequestCycleListener;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WebSession;
import org.apache.wicket.request.IExceptionMapper;
@@ -704,6 +705,9 @@ public abstract class Application implem
requestCycleProvider = new DefaultRequestCycleProvider();
exceptionMapperProvider = new DefaultExceptionMapperProvider();
+
+ // add a request cycle listener that logs each request for the
requestlogger.
+ getRequestCycleListeners().add(new
RequestLoggerRequestCycleListener());
}
/**
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
Wed Jun 29 10:23:36 2011
@@ -1350,11 +1350,25 @@ public class AjaxRequestTarget implement
return Strings.isEmpty(id) ? null : id;
}
+ /**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageClass()
+ */
public Class<? extends IRequestablePage> getPageClass()
{
return page.getPageClass();
}
+ /**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageId()
+ */
+ public Integer getPageId()
+ {
+ return page.getPageId();
+ }
+
+ /**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageParameters()
+ */
public PageParameters getPageParameters()
{
return page.getPageParameters();
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/IRequestLogger.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/IRequestLogger.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/IRequestLogger.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/IRequestLogger.java
Wed Jun 29 10:23:36 2011
@@ -23,8 +23,7 @@ import java.util.List;
import org.apache.wicket.IClusterable;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.session.ISessionStore;
-import org.apache.wicket.util.string.AppendingStringBuffer;
-
+import org.apache.wicket.util.string.Strings;
/**
* Interface for the request logger and viewer.
@@ -35,24 +34,22 @@ import org.apache.wicket.util.string.App
*/
public interface IRequestLogger
{
-
/**
* @return The total created sessions counter
*/
- public abstract int getTotalCreatedSessions();
+ int getTotalCreatedSessions();
/**
* @return The peak sessions counter
*/
- public abstract int getPeakSessions();
+ int getPeakSessions();
/**
* This method returns a List of the current requests that are in mem.
This is a readonly list.
*
* @return Collection of the current requests
*/
- public abstract List<RequestData> getRequests();
-
+ List<RequestData> getRequests();
/**
* @return Collection of live Sessions Data
@@ -76,7 +73,7 @@ public interface IRequestLogger
* @param id
* the session id
*/
- public abstract void sessionCreated(String id);
+ void sessionCreated(String id);
/**
* Method used to cleanup a livesession when the session was
invalidated by the webcontainer
@@ -84,7 +81,7 @@ public interface IRequestLogger
* @param sessionId
* the session id
*/
- public abstract void sessionDestroyed(String sessionId);
+ void sessionDestroyed(String sessionId);
/**
* This method is called when the request is over. This will set the
total time a request takes
@@ -93,7 +90,7 @@ public interface IRequestLogger
* @param timeTaken
* the time taken in milliseconds
*/
- public abstract void requestTime(long timeTaken);
+ void requestTime(long timeTaken);
/**
* Called to monitor removals of objects out of the {@link
ISessionStore}
@@ -101,7 +98,7 @@ public interface IRequestLogger
* @param value
* the object being removed
*/
- public abstract void objectRemoved(Object value);
+ void objectRemoved(Object value);
/**
* Called to monitor updates of objects in the {@link ISessionStore}
@@ -109,7 +106,7 @@ public interface IRequestLogger
* @param value
* the object being updated
*/
- public abstract void objectUpdated(Object value);
+ void objectUpdated(Object value);
/**
* Called to monitor additions of objects in the {@link ISessionStore}
@@ -117,7 +114,7 @@ public interface IRequestLogger
* @param value
* the object being created/added
*/
- public abstract void objectCreated(Object value);
+ void objectCreated(Object value);
/**
* Sets the target that was the response target for the current request
@@ -125,7 +122,7 @@ public interface IRequestLogger
* @param target
* the response target
*/
- public abstract void logResponseTarget(IRequestHandler target);
+ void logResponseTarget(IRequestHandler target);
/**
* Sets the target that was the event target for the current request
@@ -133,7 +130,15 @@ public interface IRequestLogger
* @param target
* the event target
*/
- public abstract void logEventTarget(IRequestHandler target);
+ void logEventTarget(IRequestHandler target);
+
+ /**
+ * Logs the URL that was requested by the browser.
+ *
+ * @param url
+ * the requested URL
+ */
+ void logRequestedUrl(String url);
/**
* This class hold the information one request of a session has.
@@ -242,7 +247,6 @@ public interface IRequestLogger
{
return (int)(sd.lastActive - lastActive);
}
-
}
@@ -258,15 +262,12 @@ public interface IRequestLogger
private long startDate;
private long timeTaken;
private final List<String> entries = new ArrayList<String>(5);
+ private String requestedUrl;
private String eventTarget;
private String responseTarget;
-
private String sessionId;
-
private long totalSessionSize;
-
private Object sessionInfo;
-
private int activeRequest;
/**
@@ -353,6 +354,22 @@ public interface IRequestLogger
}
/**
+ * @return the requested URL by the browser
+ */
+ public String getRequestedUrl()
+ {
+ return requestedUrl;
+ }
+
+ /**
+ * @param requestedUrl
+ */
+ public void setRequestedUrl(String requestedUrl)
+ {
+ this.requestedUrl = requestedUrl;
+ }
+
+ /**
* @param target
*/
public void addResponseTarget(String target)
@@ -390,17 +407,7 @@ public interface IRequestLogger
*/
public String getAlteredObjects()
{
- AppendingStringBuffer sb = new AppendingStringBuffer();
- for (int i = 0; i < entries.size(); i++)
- {
- String element = entries.get(i);
- sb.append(element);
- if (entries.size() != i + 1)
- {
- sb.append("<br/>");
- }
- }
- return sb.toString();
+ return Strings.join(", ", entries);
}
/**
@@ -437,7 +444,6 @@ public interface IRequestLogger
*/
public interface ISessionLogInfo
{
-
/**
* If you use the request logger log functionality then this
object should have a nice
* String representation. So make sure that the toString() is
implemented for the returned
@@ -447,6 +453,4 @@ public interface IRequestLogger
*/
Object getSessionInfo();
}
-
-
}
\ No newline at end of file
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
Wed Jun 29 10:23:36 2011
@@ -32,11 +32,13 @@ import org.apache.wicket.request.IReques
import org.apache.wicket.request.IRequestHandlerDelegate;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.BufferedResponseRequestHandler;
import org.apache.wicket.request.handler.IPageRequestHandler;
import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler;
import
org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.util.lang.Classes;
import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -101,7 +103,6 @@ public class RequestLogger implements IR
}
});
liveSessions = new ConcurrentHashMap<String, SessionData>();
-
}
public int getCurrentActiveRequestCount()
@@ -137,6 +138,11 @@ public class RequestLogger implements IR
return totalCreatedSessions.get();
}
+ public void logRequestedUrl(String url)
+ {
+ getCurrentRequest().setRequestedUrl(url);
+ }
+
public void logEventTarget(IRequestHandler requestHandler)
{
getCurrentRequest().addEventTarget(getRequestHandlerString(requestHandler));
@@ -183,9 +189,9 @@ public class RequestLogger implements IR
{
IPageRequestHandler pageRequestHandler =
(IPageRequestHandler)requestHandler;
sb.append("PageRequest[");
-
sb.append(pageRequestHandler.getPage().getClass().getName());
+ sb.append(pageRequestHandler.getPageClass().getName());
sb.append("(");
- sb.append(pageRequestHandler.getPage().getId());
+ sb.append(pageRequestHandler.getPageId());
sb.append(")]");
}
else if (requestHandler instanceof
ResourceReferenceRequestHandler)
@@ -202,6 +208,11 @@ public class RequestLogger implements IR
.append(
getRequestHandlerString(((IRequestHandlerDelegate)requestHandler).getDelegateHandler()));
}
+ else if (requestHandler instanceof
BufferedResponseRequestHandler)
+ {
+ BufferedResponseRequestHandler bufferedResponseHandler
= (BufferedResponseRequestHandler)requestHandler;
+
sb.append(bufferedResponseHandler.getClass().getSimpleName());
+ }
else
{
sb.append(requestHandler.toString());
@@ -209,14 +220,14 @@ public class RequestLogger implements IR
return sb.toString();
}
-
public void objectCreated(Object value)
{
RequestData rd = getCurrentRequest();
if (value instanceof Session)
{
- rd.addEntry("Session created");
+ Session session = (Session)value;
+ rd.addEntry("Session created, id: " + session.getId());
}
else if (value instanceof Page)
{
@@ -227,7 +238,6 @@ public class RequestLogger implements IR
{
rd.addEntry("Custom object created: " + value);
}
-
}
public void objectRemoved(Object value)
@@ -268,19 +278,19 @@ public class RequestLogger implements IR
public void requestTime(long timeTaken)
{
- RequestData rd = RequestCycle.get().getMetaData(REQUEST_DATA);
- if (rd != null)
+ RequestData requestdata =
RequestCycle.get().getMetaData(REQUEST_DATA);
+ if (requestdata != null)
{
if (activeRequests.get() > 0)
{
-
rd.setActiveRequest(activeRequests.decrementAndGet());
+
requestdata.setActiveRequest(activeRequests.decrementAndGet());
}
Session session = Session.get();
String sessionId = session.getId();
- rd.setSessionId(sessionId);
+ requestdata.setSessionId(sessionId);
Object sessionInfo = getSessionInfo(session);
- rd.setSessionInfo(sessionInfo);
+ requestdata.setSessionInfo(sessionInfo);
long sizeInBytes = -1;
if
(Application.get().getRequestLoggerSettings().getRecordSessionSize())
@@ -292,42 +302,37 @@ public class RequestLogger implements IR
catch (Exception e)
{
// log the error and let the request
logging continue (this is what happens in
- // the
- // detach phase of the request cycle
anyway. This provides better diagnostics).
+ // the detach phase of the request
cycle anyway. This provides better
+ // diagnostics).
log.error(
"Exception while determining
the size of the session in the request logger: " +
e.getMessage(), e);
}
}
- rd.setSessionSize(sizeInBytes);
- rd.setTimeTaken(timeTaken);
+ requestdata.setSessionSize(sizeInBytes);
+ requestdata.setTimeTaken(timeTaken);
+
+ requests.add(0, requestdata);
- requests.add(0, rd);
+ SessionData sessiondata = null;
if (sessionId != null)
{
- SessionData sd = liveSessions.get(sessionId);
- if (sd == null)
+ sessiondata = liveSessions.get(sessionId);
+ if (sessiondata == null)
{
// passivated session or logger only
started after it.
sessionCreated(sessionId);
- sd = liveSessions.get(sessionId);
- }
- if (sd != null)
- {
- sd.setSessionInfo(sessionInfo);
- sd.setSessionSize(sizeInBytes);
- sd.addTimeTaken(timeTaken);
- log(rd, sd);
+ sessiondata =
liveSessions.get(sessionId);
}
- else
+ if (sessiondata != null)
{
- log(rd, null);
+ sessiondata.setSessionInfo(sessionInfo);
+ sessiondata.setSessionSize(sizeInBytes);
+ sessiondata.addTimeTaken(timeTaken);
}
}
- else
- {
- log(rd, null);
- }
+ // log the request- and sessiondata (the latter can be
null)
+ log(requestdata, sessiondata);
}
}
@@ -379,51 +384,56 @@ public class RequestLogger implements IR
protected final AppendingStringBuffer createLogString(RequestData rd,
SessionData sd,
boolean includeRuntimeInfo)
{
- AppendingStringBuffer asb = new AppendingStringBuffer(150);
- asb.append("time=");
- asb.append(rd.getTimeTaken());
- asb.append(",event=");
- asb.append(rd.getEventTarget());
- asb.append(",response=");
- asb.append(rd.getResponseTarget());
- if (rd.getSessionInfo() != null &&
!rd.getSessionInfo().equals(""))
+ AppendingStringBuffer sb = new AppendingStringBuffer(150);
+ sb.append("time=");
+ sb.append(rd.getTimeTaken());
+ if (!Strings.isEmpty(rd.getRequestedUrl()))
+ {
+ sb.append(",url=");
+ sb.append(rd.getRequestedUrl());
+ }
+ sb.append(",event=");
+ sb.append(rd.getEventTarget());
+ sb.append(",response=");
+ sb.append(rd.getResponseTarget());
+ if (rd.getSessionInfo() != null &&
!Strings.isEmpty(rd.getSessionInfo().toString()))
{
- asb.append(",sessioninfo=");
- asb.append(rd.getSessionInfo());
+ sb.append(",sessioninfo=");
+ sb.append(rd.getSessionInfo());
}
else
{
- asb.append(",sessionid=");
- asb.append(rd.getSessionId());
+ sb.append(",sessionid=");
+ sb.append(rd.getSessionId());
}
- asb.append(",sessionsize=");
- asb.append(rd.getSessionSize());
+ sb.append(",sessionsize=");
+ sb.append(rd.getSessionSize());
if (sd != null)
{
- asb.append(",sessionstart=");
- asb.append(sd.getStartDate());
- asb.append(",requests=");
- asb.append(sd.getNumberOfRequests());
- asb.append(",totaltime=");
- asb.append(sd.getTotalTimeTaken());
+ sb.append(",sessionstart=");
+ sb.append(sd.getStartDate());
+ sb.append(",requests=");
+ sb.append(sd.getNumberOfRequests());
+ sb.append(",totaltime=");
+ sb.append(sd.getTotalTimeTaken());
}
- asb.append(",activerequests=");
- asb.append(rd.getActiveRequest());
+ sb.append(",activerequests=");
+ sb.append(rd.getActiveRequest());
if (includeRuntimeInfo)
{
Runtime runtime = Runtime.getRuntime();
long max = runtime.maxMemory() / 1000000;
long total = runtime.totalMemory() / 1000000;
long used = total - runtime.freeMemory() / 1000000;
- asb.append(",maxmem=");
- asb.append(max);
- asb.append("M,total=");
- asb.append(total);
- asb.append("M,used=");
- asb.append(used);
- asb.append("M");
+ sb.append(",maxmem=");
+ sb.append(max);
+ sb.append("M,total=");
+ sb.append(total);
+ sb.append("M,used=");
+ sb.append(used);
+ sb.append("M");
}
- return asb;
+ return sb;
}
private Object getSessionInfo(Session session)
@@ -434,5 +444,4 @@ public class RequestLogger implements IR
}
return "";
}
-
}
Added:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java?rev=1141037&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
(added)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
Wed Jun 29 10:23:36 2011
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.protocol.http;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.settings.IRequestLoggerSettings;
+import org.apache.wicket.util.string.AppendingStringBuffer;
+
+/**
+ * Listener that logs request details in the {@link
Application#getRequestLogger()} request logger.
+ */
+public class RequestLoggerRequestCycleListener extends
AbstractRequestCycleListener
+{
+ /**
+ * Listeners are not thread safe. In order to keep track if a handler
was the first in the
+ * request cycle, register a {@code ThreadLocal} that gets cleared out
at the
+ * {@link #onEndRequest(RequestCycle) end of the request}
+ */
+ private static final ThreadLocal<IRequestHandler> first = new
ThreadLocal<IRequestHandler>();
+
+ @Override
+ public void onBeginRequest(RequestCycle cycle)
+ {
+ if (!isRequestLoggingEnabled())
+ return;
+
+ registerRequestedUrl(cycle);
+ }
+
+ @Override
+ public void onRequestHandlerScheduled(RequestCycle cycle,
IRequestHandler handler)
+ {
+ if (!isRequestLoggingEnabled())
+ return;
+
+ registerHandler(handler);
+ }
+
+ @Override
+ public void onRequestHandlerResolved(RequestCycle cycle,
IRequestHandler handler)
+ {
+ if (!isRequestLoggingEnabled())
+ return;
+
+ registerHandler(handler);
+ }
+
+ @Override
+ public void onEndRequest(RequestCycle cycle)
+ {
+ first.remove();
+ }
+
+ /**
+ * Determine whether a IRequestLogger is provided, and whether request
logging has been enabled.
+ *
+ * @return true when request logging is enabled.
+ */
+ private boolean isRequestLoggingEnabled()
+ {
+ IRequestLogger requestLogger =
Application.get().getRequestLogger();
+ IRequestLoggerSettings settings =
Application.get().getRequestLoggerSettings();
+ return requestLogger != null &&
settings.isRequestLoggerEnabled();
+ }
+
+ /**
+ * Registers the requested URL with the request logger, if one can be
determined.
+ *
+ * @param cycle
+ */
+ private void registerRequestedUrl(RequestCycle cycle)
+ {
+ IRequestLogger requestLogger =
Application.get().getRequestLogger();
+ if (cycle.getRequest().getContainerRequest() instanceof
HttpServletRequest)
+ {
+ HttpServletRequest containerRequest =
(HttpServletRequest)cycle.getRequest()
+ .getContainerRequest();
+
+ AppendingStringBuffer url = new
AppendingStringBuffer(containerRequest.getRequestURL());
+ if (containerRequest.getQueryString() != null)
+
url.append("?").append(containerRequest.getQueryString());
+
+ requestLogger.logRequestedUrl(url.toString());
+ }
+ }
+
+ /**
+ * Registers the handler with the request logger. The first handler is
used as the incoming
+ * request handler, and the last registered handler as the outgoing
response handler.
+ *
+ * @param handler
+ */
+ private void registerHandler(IRequestHandler handler)
+ {
+ IRequestLogger requestLogger =
Application.get().getRequestLogger();
+
+ if (first.get() == null)
+ {
+ first.set(handler);
+ requestLogger.logEventTarget(handler);
+ }
+ requestLogger.logResponseTarget(handler);
+ }
+}
Propchange:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
Wed Jun 29 10:23:36 2011
@@ -97,6 +97,14 @@ public class BookmarkableListenerInterfa
}
/**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageId()
+ */
+ public Integer getPageId()
+ {
+ return pageComponentProvider.getPageId();
+ }
+
+ /**
* @see
org.apache.wicket.request.handler.IPageClassRequestHandler#getPageParameters()
*/
public PageParameters getPageParameters()
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageProvider.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageProvider.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageProvider.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageProvider.java
Wed Jun 29 10:23:36 2011
@@ -68,6 +68,13 @@ public interface IPageProvider
Class<? extends IRequestablePage> getPageClass();
/**
+ * Returns the page id.
+ *
+ * @return page id
+ */
+ Integer getPageId();
+
+ /**
* Detaches the page if it has been loaded.
*/
void detach();
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageRequestHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageRequestHandler.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageRequestHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/IPageRequestHandler.java
Wed Jun 29 10:23:36 2011
@@ -26,9 +26,16 @@ import org.apache.wicket.request.compone
public interface IPageRequestHandler extends IPageClassRequestHandler
{
/**
- * Returns the page
+ * Returns the page. Be aware that the page can be instantiated if this
wasn't the case already.
*
* @return page instance
*/
IRequestablePage getPage();
+
+ /**
+ * Returns the page id.
+ *
+ * @return page id
+ */
+ Integer getPageId();
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
Wed Jun 29 10:23:36 2011
@@ -98,6 +98,14 @@ public class ListenerInterfaceRequestHan
}
/**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageId()
+ */
+ public Integer getPageId()
+ {
+ return pageComponentProvider.getPageId();
+ }
+
+ /**
* @see
org.apache.wicket.request.handler.IPageClassRequestHandler#getPageParameters()
*/
public PageParameters getPageParameters()
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/RenderPageRequestHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/RenderPageRequestHandler.java?rev=1141037&r1=1141036&r2=1141037&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/RenderPageRequestHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/RenderPageRequestHandler.java
Wed Jun 29 10:23:36 2011
@@ -114,6 +114,14 @@ public class RenderPageRequestHandler im
return pageProvider.getPageClass();
}
+ /**
+ * @see
org.apache.wicket.request.handler.IPageRequestHandler#getPageId()
+ */
+ public Integer getPageId()
+ {
+ return pageProvider.getPageId();
+ }
+
/** {@inheritDoc} */
public PageParameters getPageParameters()
{