Author: dashorst
Date: Sat Feb 19 13:42:41 2011
New Revision: 1072326
URL: http://svn.apache.org/viewvc?rev=1072326&view=rev
Log:
Fixed TODO, added documentation and added RRAIPE with pageparameters for full
bookmarkable redirect support
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.html
- copied unchanged from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.java
- copied, changed from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
- copied, changed from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/WicketApplication.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.html
- copied unchanged from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.java
- copied, changed from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.html
- copied unchanged from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.java
- copied, changed from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
- copied, changed from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java
Removed:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/WicketApplication.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java?rev=1072326&r1=1072325&r2=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
Sat Feb 19 13:42:41 2011
@@ -33,12 +33,22 @@ import org.apache.wicket.request.handler
import org.apache.wicket.request.handler.RenderPageRequestHandler;
import
org.apache.wicket.request.handler.RenderPageRequestHandler.RedirectPolicy;
import org.apache.wicket.request.http.handler.RedirectRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;
+/**
+ * Causes Wicket to interrupt current request processing and immediately
redirect to an intercept
+ * page.
+ */
public class RestartResponseAtInterceptPageException extends
ResetResponseException
{
private static final long serialVersionUID = 1L;
+ /**
+ * Redirects to the specified {@code interceptPage}.
+ *
+ * @param interceptPage
+ */
public RestartResponseAtInterceptPageException(Page interceptPage)
{
super(new RenderPageRequestHandler(new
PageProvider(interceptPage),
@@ -46,9 +56,26 @@ public class RestartResponseAtInterceptP
InterceptData.set();
}
+ /**
+ * Redirects to the specified intercept page, this will result in a
bookmarkable redirect.
+ *
+ * @param interceptPageClass
+ */
public RestartResponseAtInterceptPageException(Class<? extends Page>
interceptPageClass)
{
- super(new RenderPageRequestHandler(new
PageProvider(interceptPageClass),
+ this(interceptPageClass, null);
+ }
+
+ /**
+ * Redirects to the specified intercept page, this will result in a
bookmarkable redirect.
+ *
+ * @param interceptPageClass
+ * @param parameters
+ */
+ public RestartResponseAtInterceptPageException(Class<? extends Page>
interceptPageClass,
+ PageParameters parameters)
+ {
+ super(new RenderPageRequestHandler(new
PageProvider(interceptPageClass, parameters),
RedirectPolicy.ALWAYS_REDIRECT));
InterceptData.set();
}
@@ -56,12 +83,9 @@ public class RestartResponseAtInterceptP
/**
* INTERNAL CLASS, DO NOT USE
*
- * TODO Public for now, need to move the test that is using this to
this package and make it
- * package private
- *
* @author igor.vaynberg
*/
- public static class InterceptData implements Serializable
+ static class InterceptData implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -137,7 +161,7 @@ public class RestartResponseAtInterceptP
return false;
}
- public static IRequestMapper MAPPER = new IRequestMapper()
+ static IRequestMapper MAPPER = new IRequestMapper()
{
public int getCompatibilityScore(Request request)
{
Copied: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.java
(from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.java)
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.java&r1=1072319&r2=1072326&rev=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/A.java
(original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectA.java Sat
Feb 19 13:42:41 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.redirect.encodingtest;
+package org.apache.wicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
@@ -24,7 +24,7 @@ import org.apache.wicket.request.mapper.
/**
* Homepage
*/
-public class A extends WebPage
+public class RedirectA extends WebPage
{
private static final long serialVersionUID = 1L;
@@ -35,9 +35,9 @@ public class A extends WebPage
*
* @param parameters
*/
- public A(final PageParameters parameters)
+ public RedirectA(final PageParameters parameters)
{
- ((WicketApplication)WebApplication.get()).intercept();
+ ((RedirectApplication)WebApplication.get()).intercept();
file = parameters.get("file").toString();
Copied:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
(from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/WicketApplication.java)
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/WicketApplication.java&r1=1072319&r2=1072326&rev=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/WicketApplication.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectApplication.java
Sat Feb 19 13:42:41 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.redirect.encodingtest;
+package org.apache.wicket;
import org.apache.wicket.Page;
import org.apache.wicket.RestartResponseAtInterceptPageException;
@@ -26,7 +26,7 @@ import org.apache.wicket.mock.MockApplic
*
* @see wicket.myproject.Start#main(String[])
*/
-public class WicketApplication extends MockApplication
+public class RedirectApplication extends MockApplication
{
private boolean showIntercept = false;
@@ -36,7 +36,7 @@ public class WicketApplication extends M
@Override
public Class<? extends Page> getHomePage()
{
- return HomePage.class;
+ return RedirectHomePage.class;
}
/**
@@ -47,7 +47,7 @@ public class WicketApplication extends M
showIntercept = !showIntercept;
if (showIntercept)
{
- throw new
RestartResponseAtInterceptPageException(B.class);
+ throw new
RestartResponseAtInterceptPageException(RedirectB.class);
}
}
}
Copied: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.java
(from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.java)
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.java&r1=1072319&r2=1072326&rev=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/B.java
(original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectB.java Sat
Feb 19 13:42:41 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.redirect.encodingtest;
+package org.apache.wicket;
import org.apache.wicket.RestartResponseAtInterceptPageException.InterceptData;
import org.apache.wicket.markup.html.WebPage;
@@ -25,14 +25,14 @@ import org.apache.wicket.model.Model;
/**
* Homepage
*/
-public class B extends WebPage
+public class RedirectB extends WebPage
{
private static final long serialVersionUID = 1L;
/**
* Construct.
*/
- public B()
+ public RedirectB()
{
add(new Label("interceptContinuationURL", new
Model<String>(InterceptData.get()
.getOriginalUrl()
Copied:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.java
(from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.java)
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.java&r1=1072319&r2=1072326&rev=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/HomePage.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RedirectHomePage.java
Sat Feb 19 13:42:41 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.redirect.encodingtest;
+package org.apache.wicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -22,7 +22,7 @@ import org.apache.wicket.request.mapper.
/**
* Homepage
*/
-public class HomePage extends WebPage
+public class RedirectHomePage extends WebPage
{
private static final long serialVersionUID = 1L;
@@ -32,7 +32,7 @@ public class HomePage extends WebPage
*
* @param parameters
*/
- public HomePage(final PageParameters parameters)
+ public RedirectHomePage(final PageParameters parameters)
{
}
}
Copied:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
(from r1072319,
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java)
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java?p2=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java&p1=wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java&r1=1072319&r2=1072326&rev=1072326&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RequestEncodingTest.java
Sat Feb 19 13:42:41 2011
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.wicket.redirect.encodingtest;
+package org.apache.wicket;
import junit.framework.TestCase;
@@ -31,7 +31,7 @@ public class RequestEncodingTest extends
/** Log. */
private static final Logger log =
LoggerFactory.getLogger(RequestEncodingTest.class);
- private WicketApplication application;
+ private RedirectApplication application;
private WicketTester tester;
/**
@@ -40,10 +40,10 @@ public class RequestEncodingTest extends
@Override
protected void setUp() throws Exception
{
- application = new WicketApplication();
+ application = new RedirectApplication();
tester = new WicketTester(application);
- tester.startPage(HomePage.class);
- tester.assertRenderedPage(HomePage.class);
+ tester.startPage(RedirectHomePage.class);
+ tester.assertRenderedPage(RedirectHomePage.class);
}
@Override
@@ -58,16 +58,16 @@ public class RequestEncodingTest extends
*/
public void testDefault()
{
- tester.startPage(A.class, new PageParameters().set("file",
"umlaut-\u00E4-\u00F6-\u00FC"));
- tester.assertRenderedPage(B.class);
+ tester.startPage(RedirectA.class, new
PageParameters().set("file", "umlaut-\u00E4-\u00F6-\u00FC"));
+ tester.assertRenderedPage(RedirectB.class);
- String url2 =
((B)tester.getLastRenderedPage()).getInterceptContinuationURL();
+ String url2 =
((RedirectB)tester.getLastRenderedPage()).getInterceptContinuationURL();
assertTrue(url2.contains("umlaut-%C3%A4-%C3%B6-%C3%BC"));
tester.clickLink("link");
- tester.assertRenderedPage(A.class);
+ tester.assertRenderedPage(RedirectA.class);
- String file =
((A)tester.getLastRenderedPage()).getFileParameter();
+ String file =
((RedirectA)tester.getLastRenderedPage()).getFileParameter();
assertEquals("umlaut-\u00E4-\u00F6-\u00FC", file);
String document = tester.getLastResponseAsString();
@@ -80,7 +80,7 @@ public class RequestEncodingTest extends
*/
public void testUmlautsInRequestUri()
{
- application.mountPage("Aparameter", A.class);
+ application.mountPage("Aparameter", RedirectA.class);
testDefault();
}
}