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);
}