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/>");