Repository: wicket
Updated Branches:
refs/heads/master 510c94109 -> 2ac29d306
WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER
(cherry picked from commit b5b2c9d10e6ae1df0e44a5448558da285d0cea99)
Conflicts:
wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2ac29d30
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2ac29d30
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2ac29d30
Branch: refs/heads/master
Commit: 2ac29d3065a448c00a2ba7ac4b8cd53ae6c2b91b
Parents: 510c941
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Sep 9 16:21:35 2014 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Sep 9 16:37:44 2014 +0300
----------------------------------------------------------------------
.../wicket/protocol/http/WebApplication.java | 8 +++--
.../request/handler/render/WebPageRenderer.java | 19 ++---------
.../handler/render/TestPageRenderer.java | 13 +-------
.../handler/render/WebPageRendererTest.java | 34 --------------------
4 files changed, 8 insertions(+), 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/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 52d41ca..0ff49bc 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
@@ -876,10 +876,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/2ac29d30/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 aee0104..00a8ea2 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
@@ -86,12 +86,7 @@ public class WebPageRenderer extends PageRenderer
WebApplication.get().storeBufferedResponse(getSessionId(), url,
response);
}
-
- protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
- {
- return
WebApplication.get().getAndRemoveBufferedResponse(getSessionId(), url);
- }
-
+
/**
* Renders page to a {@link BufferedWebResponse}. All URLs in page will
be rendered relative to
* <code>targetUrl</code>
@@ -195,17 +190,7 @@ 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);
-
- 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 (shouldRenderPageAndWriteResponse(requestCycle,
currentUrl, targetUrl))
+ if (shouldRenderPageAndWriteResponse(requestCycle, currentUrl,
targetUrl))
{
BufferedWebResponse response = renderPage(currentUrl,
requestCycle);
if (response != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
index d37a846..bed615e 100644
---
a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
+++
b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
@@ -37,23 +37,12 @@ class TestPageRenderer extends WebPageRenderer
public boolean redirectToBuffer;
public boolean sessionTemporary;
- public TestPageRenderer()
- {
- this(null);
- }
-
public TestPageRenderer(RenderPageRequestHandler handler)
{
super(handler);
}
@Override
- protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
- {
- return null;
- }
-
- @Override
protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle
requestCycle)
{
BufferedWebResponse webResponse = super.renderPage(targetUrl,
requestCycle);
@@ -112,4 +101,4 @@ class TestPageRenderer extends WebPageRenderer
{
return sessionTemporary;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/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 afe6928..b33514e 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
@@ -341,40 +341,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
*/