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 2014/09/09 15:22:11 UTC
git commit: WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x 702bf45a4 -> b5b2c9d10
WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b5b2c9d1
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b5b2c9d1
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b5b2c9d1
Branch: refs/heads/wicket-6.x
Commit: b5b2c9d10e6ae1df0e44a5448558da285d0cea99
Parents: 702bf45
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Sep 9 16:21:35 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Sep 9 16:21:35 2014 +0300
----------------------------------------------------------------------
.../wicket/protocol/http/WebApplication.java | 9 +++---
.../request/handler/render/WebPageRenderer.java | 21 ++++++------
.../handler/render/WebPageRendererTest.java | 34 --------------------
3 files changed, 16 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
index 3ad89e9..494e3e8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
@@ -67,7 +67,6 @@ import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.resource.bundles.ReplacementResourceBundleReference;
-import org.apache.wicket.resource.bundles.ResourceBundleReference;
import org.apache.wicket.session.HttpSessionStore;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.util.IContextProvider;
@@ -873,10 +872,12 @@ public abstract class WebApplication extends Application
}
/**
- *
- * @param sessionId
+ * Retrieves a stored buffered response for a given sessionId and url.
+ *
* @param url
- * @return buffered response
+ * The url used as a key
+ * @return the stored buffered response. {@code null} if there is no stored response for the given url
+ * @see org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy#REDIRECT_TO_BUFFER
*/
public BufferedWebResponse getAndRemoveBufferedResponse(String sessionId, Url url)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/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 3376177..42128c3 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
@@ -87,6 +87,16 @@ public class WebPageRenderer extends PageRenderer
WebApplication.get().storeBufferedResponse(getSessionId(), url, response);
}
+ /**
+ * Retrieves a stored buffered response for a given url.
+ *
+ * @param url
+ * The url used as a key
+ * @return the stored buffered response. {@code null} if there is no stored response for the given url
+ * @see org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy#REDIRECT_TO_BUFFER
+ * @deprecated Will be removed in Wicket 7.0. Use {@link org.apache.wicket.protocol.http.WebApplication#getAndRemoveBufferedResponse(String, org.apache.wicket.request.Url)} instead
+ */
+ @Deprecated
protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
{
return WebApplication.get().getAndRemoveBufferedResponse(getSessionId(), url);
@@ -195,20 +205,11 @@ public class WebPageRenderer extends PageRenderer
// 3 rendering strategies and two kind of requests (ajax and normal)
//
- // try to get an already rendered buffered response for current URL
- BufferedWebResponse bufferedResponse = getAndRemoveBufferedResponse(currentUrl);
-
boolean isAjax = isAjax(requestCycle);
boolean shouldPreserveClientUrl = ((WebRequest)requestCycle.getRequest()).shouldPreserveClientUrl();
- if (bufferedResponse != null)
- {
- 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 if ((isAjax == false)
+ if ((isAjax == false)
&& (compatibleProtocols(currentUrl.getProtocol(), targetUrl.getProtocol())) && (//
getRedirectPolicy() == RedirectPolicy.NEVER_REDIRECT //
|| (isOnePassRender() && getRedirectPolicy() != RedirectPolicy.ALWAYS_REDIRECT) //
http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
index 2200b14..c45676a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
@@ -335,40 +335,6 @@ public class WebPageRendererTest extends Assert
}
/**
- * Tests that when there is already saved buffered response then it will be used without
- * checking the rendering strategies or redirect policies
- */
- @Test
- public void testGetAndRemoveBufferedResponse()
- {
- final BufferedWebResponse bufferedResponse = mock(BufferedWebResponse.class);
-
- PageRenderer renderer = new TestPageRenderer(handler)
- {
- @Override
- protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
- {
- return bufferedResponse;
- }
-
- };
-
- Url sameUrl = Url.parse("anything");
-
- when(urlRenderer.getBaseUrl()).thenReturn(sameUrl);
-
- when(requestCycle.mapUrlFor(eq(handler))).thenReturn(sameUrl);
-
- when(request.shouldPreserveClientUrl()).thenReturn(false);
-
- renderer.respond(requestCycle);
-
- verify(bufferedResponse).writeTo(response);
- verify(response, never()).write(any(byte[].class));
- verify(response, never()).sendRedirect(anyString());
- }
-
- /**
* Tests that when {@link RenderPageRequestHandler#getRedirectPolicy()} is
* {@link RedirectPolicy#ALWAYS_REDIRECT} there a redirect must be issued
*/