You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2016/04/24 20:38:29 UTC
[12/12] wicket git commit: WICKET-6129 listeners are notified of all
executed handlers now,
so it is sufficient to listen for #onRequestHandlerResolved() only
WICKET-6129 listeners are notified of all executed handlers now, so it is sufficient to listen for #onRequestHandlerResolved() only
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0e55e547
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0e55e547
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0e55e547
Branch: refs/heads/master
Commit: 0e55e547294d5e922fd8649175ad575af8574f9b
Parents: 71f2202
Author: Sven Meier <sv...@apache.org>
Authored: Sun Apr 10 16:03:51 2016 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Sun Apr 24 20:00:54 2016 +0200
----------------------------------------------------------------------
.../cycle/PageRequestHandlerTracker.java | 27 +++++---------
.../cycle/PageRequestHandlerTrackerTest.java | 39 +++++++++++---------
2 files changed, 31 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/0e55e547/wicket-core/src/main/java/org/apache/wicket/request/cycle/PageRequestHandlerTracker.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/cycle/PageRequestHandlerTracker.java b/wicket-core/src/main/java/org/apache/wicket/request/cycle/PageRequestHandlerTracker.java
index b2390a6..98a0194 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/cycle/PageRequestHandlerTracker.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/cycle/PageRequestHandlerTracker.java
@@ -21,14 +21,19 @@ import org.apache.wicket.core.request.handler.IPageRequestHandler;
import org.apache.wicket.request.IRequestHandler;
/**
- * Registers and retrieves first and last IPageRequestHandler in a request cycle.
+ * Registers and retrieves first and last executed {@link IPageRequestHandler} in a request cycle.
* Can be used to find out what is the requested page and what is the actual response page.
- *
- * <p>To use it an application needs to register it with:
+ * <p>
+ * To use it an application needs to register it with:
* <pre><code>
* application.getRequestCycleListeners().add(new PageRequestHandlerTracker());
* </code></pre>
- * </p>
+ * <p>
+ * The result can then be accessed at the end of each {@link RequestCycle} with:
+ * <pre><code>
+ * IPageRequestHandler first = PageRequestHandlerTracker.getFirstHandler(RequestCycle.get());
+ * IPageRequestHandler last = PageRequestHandlerTracker.getLastHandler(RequestCycle.get());
+ * </code></pre>
*
* @since 1.5.8
*/
@@ -52,20 +57,6 @@ public class PageRequestHandlerTracker extends AbstractRequestCycleListener
registerLastHandler(cycle,handler);
}
- @Override
- public void onRequestHandlerScheduled(RequestCycle cycle, IRequestHandler handler)
- {
- super.onRequestHandlerResolved(cycle, handler);
- registerLastHandler(cycle,handler);
- }
-
- @Override
- public void onExceptionRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler, Exception exception)
- {
- super.onExceptionRequestHandlerResolved(cycle, handler, exception);
- registerLastHandler(cycle,handler);
- }
-
/**
* Registers pagerequesthandler when it's resolved ,keeps up with the most recent handler resolved
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/0e55e547/wicket-core/src/test/java/org/apache/wicket/request/cycle/PageRequestHandlerTrackerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/cycle/PageRequestHandlerTrackerTest.java b/wicket-core/src/test/java/org/apache/wicket/request/cycle/PageRequestHandlerTrackerTest.java
index a4dda7c..3f79d7b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/cycle/PageRequestHandlerTrackerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/cycle/PageRequestHandlerTrackerTest.java
@@ -38,8 +38,20 @@ public class PageRequestHandlerTrackerTest extends WicketTestCase
public void trackPages()
{
tester.getApplication().getRequestCycleListeners().add(new PageRequestHandlerTracker());
- tester.startPage(new PageA());
+ tester.getApplication().getRequestCycleListeners().add(new AbstractRequestCycleListener()
+ {
+ @Override
+ public void onDetach(RequestCycle cycle)
+ {
+ IPageRequestHandler firstHandler = PageRequestHandlerTracker.getFirstHandler(cycle);
+ assertEquals(PageA.class, firstHandler.getPageClass());
+ IPageRequestHandler lastHandler = PageRequestHandlerTracker.getLastHandler(cycle);
+ assertEquals(PageB.class, lastHandler.getPageClass());
+ }
+ });
+
+ tester.startPage(new PageA());
}
/**
@@ -47,10 +59,17 @@ public class PageRequestHandlerTrackerTest extends WicketTestCase
*/
private static class PageA extends WebPage implements IMarkupResourceStreamProvider
{
+ public PageA()
+ {
+ // make stateful so it is rendered in first requestCycle (without redirect)
+ setStatelessHint(false);
+ }
+
@Override
- protected void onBeforeRender()
+ protected void onConfigure()
{
- super.onBeforeRender();
+ super.onConfigure();
+
setResponsePage(new PageB());
}
@@ -67,20 +86,6 @@ public class PageRequestHandlerTrackerTest extends WicketTestCase
private static class PageB extends WebPage implements IMarkupResourceStreamProvider
{
@Override
- protected void onAfterRender()
- {
- super.onAfterRender();
-
- RequestCycle cycle = getRequestCycle();
-
- IPageRequestHandler firstHandler = PageRequestHandlerTracker.getFirstHandler(cycle);
- assertEquals(PageA.class, firstHandler.getPageClass());
-
- IPageRequestHandler lastHandler = PageRequestHandlerTracker.getLastHandler(cycle);
- assertEquals(PageB.class, lastHandler.getPageClass());
- }
-
- @Override
public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass)
{
return new StringResourceStream("<html/>");