You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/08/14 11:41:55 UTC

[26/37] git commit: formatted

formatted

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1c8dc6f7
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1c8dc6f7
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1c8dc6f7

Branch: refs/heads/5299-ajax-strategy
Commit: 1c8dc6f77027a3b3bcc68e24b427daa7effd2aa2
Parents: 29b9422
Author: svenmeier <sv...@meiers.net>
Authored: Thu Aug 8 11:43:23 2013 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Thu Aug 8 11:43:23 2013 +0200

----------------------------------------------------------------------
 .../request/handler/render/WebPageRenderer.java | 135 +++++++++----------
 1 file changed, 62 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/1c8dc6f7/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
index c3899ec..ad39922 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
@@ -107,7 +107,7 @@ public class WebPageRenderer extends PageRenderer
 		}
 
 		// keep the original response
-		final WebResponse originalResponse = (WebResponse) requestCycle.getResponse();
+		final WebResponse originalResponse = (WebResponse)requestCycle.getResponse();
 
 		// buffered web response for page
 		BufferedWebResponse response = new BufferedWebResponse(originalResponse);
@@ -123,10 +123,11 @@ public class WebPageRenderer extends PageRenderer
 			if (scheduled == null && requestCycle.getRequestHandlerScheduledAfterCurrent() != null)
 			{
 				// This is a special case.
-				// During page render another request handler got scheduled and will want to overwrite
-				// the response, so we need to let it.
-				// Just preserve the meta data headers
-				originalResponse.reset(); // clear the initial actions because they are already copied into the new response's actions
+				// During page render another request handler got scheduled and will want to
+				// overwrite the response, so we need to let it.
+				// Just preserve the meta data headers. Clear the initial actions because they are
+				// already copied into the new response's actions
+				originalResponse.reset();
 				response.writeMetaData(originalResponse);
 				return null;
 			}
@@ -191,15 +192,18 @@ public class WebPageRenderer extends PageRenderer
 
 		boolean isAjax = isAjax(requestCycle);
 
-		boolean shouldPreserveClientUrl = ((WebRequest)requestCycle.getRequest()).shouldPreserveClientUrl();
+		boolean shouldPreserveClientUrl = ((WebRequest)requestCycle.getRequest())
+			.shouldPreserveClientUrl();
 
 		if (bufferedResponse != null)
 		{
-			logger.warn("The Buffered response should be handled by BufferedResponseRequestHandler");
+			logger
+				.warn("The Buffered response should be handled by BufferedResponseRequestHandler");
 			// if there is saved response for this URL render it
 			bufferedResponse.writeTo((WebResponse)requestCycle.getResponse());
 		}
-		else {
+		else
+		{
 			RedirectPolicy redirectPolicy = getRedirectPolicy();
 
 			boolean onePassRender = isOnePassRender();
@@ -210,7 +214,9 @@ public class WebPageRenderer extends PageRenderer
 			boolean isNewPageInstance = getPageProvider().isNewPageInstance();
 			boolean isPageStateless = getPage().isPageStateless();
 
-			if (shouldRenderPageAndWriteResponse(isAjax, onePassRender, isRedirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, isNewPageInstance, isPageStateless)) //
+			if (shouldRenderPageAndWriteResponse(isAjax, onePassRender, isRedirectToRender,
+				redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, isNewPageInstance,
+				isPageStateless)) //
 			{
 				BufferedWebResponse response = renderPage(currentUrl, requestCycle);
 				if (response != null)
@@ -218,30 +224,36 @@ public class WebPageRenderer extends PageRenderer
 					response.writeTo((WebResponse)requestCycle.getResponse());
 				}
 			}
-			else {
+			else
+			{
 				boolean sessionTemporary = isSessionTemporary();
-				if (shouldRedirectToTargetUrl(isAjax, redirectPolicy, isRedirectToRender, targetEqualsCurrentUrl, isNewPageInstance, isPageStateless, sessionTemporary))
+				if (shouldRedirectToTargetUrl(isAjax, redirectPolicy, isRedirectToRender,
+					targetEqualsCurrentUrl, isNewPageInstance, isPageStateless, sessionTemporary))
 				{
 					redirectTo(targetUrl, requestCycle);
 
-					// note: if we had session here we would render the page to buffer and then redirect to
-					// URL generated *after* page has been rendered (the statelessness may change during
-					// render). this would save one redirect because now we have to render to URL generated
-					// *before* page is rendered, render the page, get URL after render and if the URL is
-					// different (meaning page is not stateless), save the buffer and redirect again (which
-					// is pretty much what the next step does)
+					// note: if we had session here we would render the page to buffer and then
+					// redirect to URL generated *after* page has been rendered (the statelessness
+					// may change during render). this would save one redirect because now we have
+					// to render to URL generated *before* page is rendered, render the page, get
+					// URL after render and if the URL is different (meaning page is not stateless),
+					// save the buffer and redirect again (which is pretty much what the next step
+					// does)
 				}
 				else
 				{
 					if (redirectToBuffer == false && logger.isDebugEnabled())
 					{
-						String details = String.format("redirect strategy: '%s', isAjax: '%s', redirect policy: '%s', " +
-								"current url: '%s', target url: '%s', is new: '%s', is stateless: '%s', is temporary: '%s'",
+						String details = String
+							.format(
+								"redirect strategy: '%s', isAjax: '%s', redirect policy: '%s', "
+									+ "current url: '%s', target url: '%s', is new: '%s', is stateless: '%s', is temporary: '%s'",
 								Application.get().getRequestCycleSettings().getRenderStrategy(),
 								isAjax, redirectPolicy, currentUrl, targetUrl, isNewPageInstance,
-										isPageStateless, sessionTemporary);
-						logger.debug("Falling back to Redirect_To_Buffer render strategy because none of the conditions " +
-								"matched. Details: " + details);
+								isPageStateless, sessionTemporary);
+						logger
+							.debug("Falling back to Redirect_To_Buffer render strategy because none of the conditions "
+								+ "matched. Details: " + details);
 					}
 
 					// force creation of possible stateful page to get the final target url
@@ -286,30 +298,17 @@ public class WebPageRenderer extends PageRenderer
 		}
 	}
 
-	// if
-	//		render policy is always-redirect
-	// 	or
-	//		it's redirect-to-render
-	//	or
-	//		its ajax and the targetUrl matches current url
-	// 	or
-	//		targetUrl DONT matches current url and
-	//				is new page instance
-	//			or
-	//				session is temporary and page is stateless
-	// just redirect
-
-	protected boolean shouldRedirectToTargetUrl(boolean ajax, RedirectPolicy redirectPolicy, boolean redirectToRender, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless,boolean sessionTemporary) {
+	/**
+	 * Should the client be redirected to target url.
+	 */
+	protected boolean shouldRedirectToTargetUrl(boolean ajax, RedirectPolicy redirectPolicy,
+		boolean redirectToRender, boolean targetEqualsCurrentUrl, boolean newPageInstance,
+		boolean pageStateless, boolean sessionTemporary)
+	{
 		return alwaysRedirect(redirectPolicy) //
-						||
-						redirectToRender //
-						||
-						(ajax && targetEqualsCurrentUrl)
-						||
-						(!targetEqualsCurrentUrl //
-							&&
-							(newPageInstance || (sessionTemporary && pageStateless))
-						);
+			|| redirectToRender //
+			|| (ajax && targetEqualsCurrentUrl) || (!targetEqualsCurrentUrl //
+			&& (newPageInstance || (sessionTemporary && pageStateless)));
 		// if target URL is different and session is temporary and page is stateless
 		// this is special case when page is stateless but there is no session so we can't
 		// render it to buffer
@@ -318,46 +317,36 @@ public class WebPageRenderer extends PageRenderer
 		// can redirect to the url which will instantiate the instance of us
 	}
 
-	// if
-	// 		the policy is never to redirect
-	// 	or
-	//		its NOT ajax and
-	//				one pass render mode is on and NOT forced to redirect
-	//			or
-	//				the targetUrl matches current url and page is NOT stateless and NOT a new instance
-	//	or
-	//		the targetUrl matches current url and it's redirect-to-render
-	//	or
-	//  	the request determines that the current url should be preserved
-	//	just render the page
-	protected boolean shouldRenderPageAndWriteResponse(boolean ajax, boolean onePassRender, boolean redirectToRender, RedirectPolicy redirectPolicy, boolean shouldPreserveClientUrl, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless) {
+	/**
+	 * Should the page be rendered immediately.
+	 */
+	protected boolean shouldRenderPageAndWriteResponse(boolean ajax, boolean onePassRender,
+		boolean redirectToRender, RedirectPolicy redirectPolicy, boolean shouldPreserveClientUrl,
+		boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless)
+	{
 		return neverRedirect(redirectPolicy)
-			||
-			(!ajax &&
-				(
-					(onePassRender && notForcedRedirect(redirectPolicy))
-					||
-					(targetEqualsCurrentUrl && notNewAndNotStatelessPage(newPageInstance, pageStateless)))
-				)
-			||
-			(targetEqualsCurrentUrl && redirectToRender)
-			||
-			shouldPreserveClientUrl;
+			|| (!ajax && ((onePassRender && notForcedRedirect(redirectPolicy)) || (targetEqualsCurrentUrl && notNewAndNotStatelessPage(
+				newPageInstance, pageStateless)))) || (targetEqualsCurrentUrl && redirectToRender)
+			|| shouldPreserveClientUrl;
 	}
 
-	private static boolean notNewAndNotStatelessPage(boolean newPageInstance, boolean pageStateless) {
+	private static boolean notNewAndNotStatelessPage(boolean newPageInstance, boolean pageStateless)
+	{
 		return !newPageInstance && !pageStateless;
 	}
 
-	private static boolean neverRedirect(RedirectPolicy redirectPolicy) {
+	private static boolean neverRedirect(RedirectPolicy redirectPolicy)
+	{
 		return redirectPolicy == RedirectPolicy.NEVER_REDIRECT;
 	}
 
-	private static boolean alwaysRedirect(RedirectPolicy redirectPolicy) {
+	private static boolean alwaysRedirect(RedirectPolicy redirectPolicy)
+	{
 		return redirectPolicy == RedirectPolicy.ALWAYS_REDIRECT;
 	}
 
-	private static boolean notForcedRedirect(RedirectPolicy redirectPolicy) {
+	private static boolean notForcedRedirect(RedirectPolicy redirectPolicy)
+	{
 		return !alwaysRedirect(redirectPolicy);
 	}