Author: ivaynberg
Date: Mon Aug 15 05:01:27 2011
New Revision: 1157711
URL: http://svn.apache.org/viewvc?rev=1157711&view=rev
Log:
WICKET-3963, WICKET-3964
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.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/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
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderTest.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
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=1157711&r1=1157710&r2=1157711&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
Mon Aug 15 05:01:27 2011
@@ -1363,4 +1363,9 @@ public class AjaxRequestTarget implement
{
return page.getPageParameters();
}
+
+ public final boolean isPageInstanceCreated()
+ {
+ return true;
+ }
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
Mon Aug 15 05:01:27 2011
@@ -53,4 +53,8 @@ public abstract class AbstractRequestCyc
Exception exception)
{
}
+
+ public void onRequestHandlerExecuted(RequestCycle cycle,
IRequestHandler handler)
+ {
+ }
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
Mon Aug 15 05:01:27 2011
@@ -164,4 +164,13 @@ public interface IRequestCycleListener
*/
void onExceptionRequestHandlerResolved(RequestCycle cycle,
IRequestHandler handler,
Exception exception);
+
+ /**
+ * Called after an {@link IRequestHandler} has been executed. If the
execution resulted in an
+ * exception this method will not be called for that particular {@link
IRequestHandler}.
+ *
+ * @param cycle
+ * @param handler
+ */
+ void onRequestHandlerExecuted(RequestCycle cycle, IRequestHandler
handler);
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
Mon Aug 15 05:01:27 2011
@@ -208,6 +208,7 @@ public class RequestCycle implements IRe
{
listeners.onRequestHandlerResolved(this,
handler);
requestHandlerExecutor.execute(handler);
+ listeners.onRequestHandlerExecuted(this,
handler);
return true;
}
@@ -223,6 +224,7 @@ public class RequestCycle implements IRe
{
listeners.onExceptionRequestHandlerResolved(this, handler, e);
executeExceptionRequestHandler(handler,
getExceptionRetryCount());
+ listeners.onRequestHandlerExecuted(this,
handler);
}
else
{
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
Mon Aug 15 05:01:27 2011
@@ -175,4 +175,15 @@ public class RequestCycleListenerCollect
}
});
}
+
+ public void onRequestHandlerExecuted(final RequestCycle cycle, final
IRequestHandler handler)
+ {
+ notify(new INotifier<IRequestCycleListener>()
+ {
+ public void notify(IRequestCycleListener listener)
+ {
+ listener.onRequestHandlerExecuted(cycle,
handler);
+ }
+ });
+ }
}
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=1157711&r1=1157710&r2=1157711&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
Mon Aug 15 05:01:27 2011
@@ -148,4 +148,9 @@ public class BookmarkableListenerInterfa
{
// nothing to do here, this handler is only used to generate
URLs
}
+
+ public final boolean isPageInstanceCreated()
+ {
+ return !pageComponentProvider.isNewPageInstance();
+ }
}
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=1157711&r1=1157710&r2=1157711&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
Mon Aug 15 05:01:27 2011
@@ -38,4 +38,12 @@ public interface IPageRequestHandler ext
* @return page id
*/
Integer getPageId();
+
+ /**
+ * Checks if the page instance is already created or if it will be
created when
+ * {@link #getPage()} is called
+ *
+ * @return {@code true} iff page instance is not yet created
+ */
+ boolean isPageInstanceCreated();
}
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=1157711&r1=1157710&r2=1157711&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
Mon Aug 15 05:01:27 2011
@@ -192,4 +192,9 @@ public class ListenerInterfaceRequestHan
}
}
+
+ public final boolean isPageInstanceCreated()
+ {
+ return !pageComponentProvider.isNewPageInstance();
+ }
}
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=1157711&r1=1157710&r2=1157711&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
Mon Aug 15 05:01:27 2011
@@ -146,4 +146,9 @@ public class RenderPageRequestHandler im
PageRenderer renderer =
Application.get().getPageRendererProvider().get(this);
renderer.respond((RequestCycle)requestCycle);
}
+
+ public final boolean isPageInstanceCreated()
+ {
+ return !pageProvider.isNewPageInstance();
+ }
}
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
Mon Aug 15 05:01:27 2011
@@ -95,5 +95,10 @@ class MultiRequestCycleListenerCallOrder
{
return "Listener " + name;
}
+
+ public void onRequestHandlerExecuted(RequestCycle cycle,
IRequestHandler handler)
+ {
+ callSequence.add(name + ".onRequestHandlerExecuted");
+ }
}
}
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderTest.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderTest.java
Mon Aug 15 05:01:27 2011
@@ -66,9 +66,11 @@ public class MultiRequestCycleListenerCa
List<String> primaryRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> redirectRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> expected = new ArrayList<String>();
@@ -89,9 +91,11 @@ public class MultiRequestCycleListenerCa
List<String> primaryRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> redirectRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> expected = new ArrayList<String>();
@@ -117,9 +121,11 @@ public class MultiRequestCycleListenerCa
List<String> primaryRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
"first.onRequestHandlerScheduled",
"second.onRequestHandlerScheduled",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> redirectRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
List<String> expected = new ArrayList<String>();
@@ -146,6 +152,7 @@ public class MultiRequestCycleListenerCa
List<String> primaryRequest = asList("first.onBeginRequest",
"second.onBeginRequest",
"first.onRequestHandlerResolved",
"second.onRequestHandlerResolved",
"first.onRequestHandlerScheduled",
"second.onRequestHandlerScheduled",
+ "first.onRequestHandlerExecuted",
"second.onRequestHandlerExecuted",
"second.onEndRequest", "first.onEndRequest",
"second.onDetach", "first.onDetach");
// with ajax requests we don't expect a redirect
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java?rev=1157711&r1=1157710&r2=1157711&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
Mon Aug 15 05:01:27 2011
@@ -284,7 +284,7 @@ public class RequestCycleListenerTest ex
{
private int begins, ends, exceptions, detachesnotified,
resolutions, exceptionResolutions,
- schedules = 0;
+ schedules, executions = 0;
public IRequestHandler onException(final RequestCycle cycle,
Exception ex)
{
@@ -331,5 +331,10 @@ public class RequestCycleListenerTest ex
assertEquals(exceptions, this.exceptions);
assertEquals(detachesnotified, this.detachesnotified);
}
+
+ public void onRequestHandlerExecuted(RequestCycle cycle,
IRequestHandler handler)
+ {
+ executions++;
+ }
}
}