You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2010/02/24 01:21:15 UTC
svn commit: r915613 - in /wicket/trunk: ./ testing/wicket-threadtest/
wicket-auth-roles/src/main/java/org/apache/wicket/authentication/
wicket-examples/
wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/
wicket-examples/src/main/...
Author: knopp
Date: Wed Feb 24 00:21:13 2010
New Revision: 915613
URL: http://svn.apache.org/viewvc?rev=915613&view=rev
Log:
RestartResponseOnInterceptPageException
Upgraded jetty
Added:
wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java (with props)
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java (with props)
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java (with props)
Modified:
wicket/trunk/pom.xml
wicket/trunk/testing/wicket-threadtest/pom.xml
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebApplication.java
wicket/trunk/wicket-examples/pom.xml
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/SignInApplication.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignIn2Application.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignOut.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/AuthorizationTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/border/BoxBorderTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/LocalizedErrorMessageTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/border/TestHomePage.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/submitlink/TestHomePage.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/validation/HomePageTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
Modified: wicket/trunk/pom.xml
URL: http://svn.apache.org/viewvc/wicket/trunk/pom.xml?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/pom.xml (original)
+++ wicket/trunk/pom.xml Wed Feb 24 00:21:13 2010
@@ -362,15 +362,15 @@
<version>2.5.6</version>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty</artifactId>
- <version>6.1.21</version>
+ <version>7.0.1.v20091125</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>servlet-api-2.5</artifactId>
- <version>6.1.21</version>
+ <version>7.0.1.v20091125</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -380,15 +380,15 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
- <version>6.1.21</version>
+ <version>7.0.1.v20091125</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-management</artifactId>
- <version>6.1.21</version>
+ <version>7.0.1.v20091125</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: wicket/trunk/testing/wicket-threadtest/pom.xml
URL: http://svn.apache.org/viewvc/wicket/trunk/testing/wicket-threadtest/pom.xml?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/testing/wicket-threadtest/pom.xml (original)
+++ wicket/trunk/testing/wicket-threadtest/pom.xml Wed Feb 24 00:21:13 2010
@@ -43,11 +43,11 @@
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty</artifactId>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
Modified: wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebApplication.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebApplication.java (original)
+++ wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebApplication.java Wed Feb 24 00:21:13 2010
@@ -22,6 +22,7 @@
import org.apache.wicket.Page;
import org.apache.wicket.Request;
import org.apache.wicket.Response;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.Session;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener;
@@ -90,8 +91,7 @@
if (!AuthenticatedWebSession.get().isSignedIn())
{
// Redirect to intercept page to let the user sign in
- // TODO NG
- // throw new RestartResponseAtInterceptPageException(getSignInPageClass());
+ throw new RestartResponseAtInterceptPageException(getSignInPageClass());
}
else
{
Modified: wicket/trunk/wicket-examples/pom.xml
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/pom.xml?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/pom.xml (original)
+++ wicket/trunk/wicket-examples/pom.xml Wed Feb 24 00:21:13 2010
@@ -91,15 +91,15 @@
<artifactId>httpunit</artifactId>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty</artifactId>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
- <groupId>org.mortbay.jetty</groupId>
+ <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-management</artifactId>
</dependency>
<dependency>
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/SignInApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/SignInApplication.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/SignInApplication.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/SignInApplication.java Wed Feb 24 00:21:13 2010
@@ -20,6 +20,7 @@
import org.apache.wicket.Page;
import org.apache.wicket.Request;
import org.apache.wicket.Response;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.Session;
import org.apache.wicket.authorization.Action;
import org.apache.wicket.authorization.IAuthorizationStrategy;
@@ -90,8 +91,7 @@
// Invoke Component.continueToOriginalDestination() after successful logon to
// continue with the target remembered.
- // TODO (NG)
-// throw new RestartResponseAtInterceptPageException(SignIn.class);
+ throw new RestartResponseAtInterceptPageException(SignIn.class);
}
// okay to proceed
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignIn2Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignIn2Application.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignIn2Application.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignIn2Application.java Wed Feb 24 00:21:13 2010
@@ -20,6 +20,7 @@
import org.apache.wicket.Page;
import org.apache.wicket.Request;
import org.apache.wicket.Response;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.Session;
import org.apache.wicket.authorization.Action;
import org.apache.wicket.authorization.IAuthorizationStrategy;
@@ -91,8 +92,7 @@
// Intercept the request, but remember the target for later.
// Invoke Component.continueToOriginalDestination() after successful logon to
// continue with the target remembered.
- // TODO (NG)
-// throw new RestartResponseAtInterceptPageException(SignIn2.class);
+ throw new RestartResponseAtInterceptPageException(SignIn2.class);
}
// okay to proceed
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignOut.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignOut.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignOut.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/authentication2/SignOut.java Wed Feb 24 00:21:13 2010
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.examples.authentication2;
+import org.apache.wicket.examples.WicketExamplePage;
import org.apache.wicket.ng.request.component.PageParameters;
/**
@@ -23,7 +24,7 @@
*
* @author Jonathan Locke
*/
-public class SignOut extends AuthenticatedWebPage
+public class SignOut extends WicketExamplePage
{
/**
* Constructor
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Wed Feb 24 00:21:13 2010
@@ -50,8 +50,9 @@
import org.apache.wicket.ng.request.component.IRequestableComponent;
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.cycle.RequestCycle;
-import org.apache.wicket.ng.request.handler.PageProvider;
import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
import org.apache.wicket.ng.request.handler.impl.BookmarkablePageRequestHandler;
import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
@@ -1076,9 +1077,7 @@
*/
public final boolean continueToOriginalDestination()
{
- // TODO WICKET-NG
- return false;
- // return getPage().getPageMap().continueToOriginalDestination();
+ return RestartResponseAtInterceptPageException.continueToOriginalDestination();
}
/**
@@ -2217,8 +2216,7 @@
*/
public final void redirectToInterceptPage(final Page page)
{
- // TODO WICKET-NG
- // getPage().getPageMap().redirectToInterceptPage(page);
+ throw new RestartResponseAtInterceptPageException(page);
}
/**
@@ -3210,8 +3208,8 @@
public final <C extends Page> CharSequence urlFor(final Class<C> pageClass,
final PageParameters parameters)
{
- IRequestHandler handler = new BookmarkablePageRequestHandler(new PageProvider(
- pageClass, parameters));
+ IRequestHandler handler = new BookmarkablePageRequestHandler(new PageProvider(pageClass,
+ parameters));
return getRequestCycle().renderUrlFor(handler);
}
@@ -3230,7 +3228,15 @@
{
PageAndComponentProvider provider = new PageAndComponentProvider(getPage(), this);
int index = getBehaviors().indexOf(behaviour);
- IRequestHandler handler = new ListenerInterfaceRequestHandler(provider, listener, index);
+ IRequestHandler handler;
+ if (getPage().isPageStateless())
+ {
+ handler = new BookmarkableListenerInterfaceRequestHandler(provider, listener, index);
+ }
+ else
+ {
+ handler = new ListenerInterfaceRequestHandler(provider, listener, index);
+ }
return getRequestCycle().renderUrlFor(handler);
}
@@ -3259,7 +3265,15 @@
public final CharSequence urlFor(final RequestListenerInterface listener)
{
PageAndComponentProvider provider = new PageAndComponentProvider(getPage(), this);
- IRequestHandler handler = new ListenerInterfaceRequestHandler(provider, listener);
+ IRequestHandler handler;
+ if (getPage().isPageStateless())
+ {
+ handler = new BookmarkableListenerInterfaceRequestHandler(provider, listener);
+ }
+ else
+ {
+ handler = new ListenerInterfaceRequestHandler(provider, listener);
+ }
return getRequestCycle().renderUrlFor(handler);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java Wed Feb 24 00:21:13 2010
@@ -39,9 +39,20 @@
public abstract Url getUrl();
/**
+ * In case this request has been created using {@link #requestWithUrl(Url)}, this method should
+ * return the original URL.
+ *
+ * @return original URL
+ */
+ public Url getOriginalUrl()
+ {
+ return getUrl();
+ }
+
+ /**
* @return POST request parameters for this request.
*/
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
return EmptyRequestParameters.INSTANCE;
}
@@ -49,7 +60,7 @@
/**
* @return GET request parameters for this request.
*/
- public IRequestParameters getGetRequestParameters()
+ public IRequestParameters getQueryParameters()
{
return new UrlRequestParametersAdapter(getUrl());
}
@@ -59,8 +70,8 @@
*/
public IRequestParameters getRequestParameters()
{
- return new CombinedRequestParametersAdapter(getGetRequestParameters(),
- getPostRequestParameters());
+ return new CombinedRequestParametersAdapter(getQueryParameters(),
+ getPostParameters());
}
/**
@@ -88,15 +99,21 @@
}
@Override
+ public Url getOriginalUrl()
+ {
+ return Request.this.getOriginalUrl();
+ }
+
+ @Override
public Locale getLocale()
{
return Request.this.getLocale();
}
@Override
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
- return Request.this.getPostRequestParameters();
+ return Request.this.getPostParameters();
}
};
}
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java?rev=915613&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java Wed Feb 24 00:21:13 2010
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.wicket.ng.request.IRequestMapper;
+import org.apache.wicket.ng.request.IWritableRequestParameters;
+import org.apache.wicket.ng.request.Url;
+import org.apache.wicket.ng.request.cycle.RequestCycle;
+import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
+import org.apache.wicket.request.target.basic.RedirectRequestHandler;
+import org.apache.wicket.util.string.StringValue;
+
+public class RestartResponseAtInterceptPageException extends AbstractRestartResponseException
+{
+
+ public RestartResponseAtInterceptPageException(Page interceptPage)
+ {
+ super(new RenderPageRequestHandler(new PageProvider(interceptPage)));
+ SessionData.set();
+ }
+
+ public RestartResponseAtInterceptPageException(Class<? extends Page> interceptPageClass)
+ {
+ super(new RenderPageRequestHandler(new PageProvider(interceptPageClass)));
+ SessionData.set();
+ }
+
+ private static class SessionData implements Serializable
+ {
+ private Url originalUrl;
+ private Map<String, List<StringValue>> postParameters;
+ private boolean continueOk;
+
+ public static void set()
+ {
+ Session session = Session.get();
+ session.bind();
+ SessionData data = new SessionData();
+ Request request = RequestCycle.get().getRequest();
+ data.originalUrl = request.getOriginalUrl();
+ data.postParameters = new HashMap<String, List<StringValue>>();
+ for (String s : request.getPostParameters().getParameterNames())
+ {
+ data.postParameters.put(s, new ArrayList<StringValue>(request.getPostParameters()
+ .getParameterValues(s)));
+ }
+ data.continueOk = false;
+ session.setMetaData(key, data);
+ }
+
+ public static SessionData get()
+ {
+ Session session = Session.get();
+ if (session != null)
+ {
+ return session.getMetaData(key);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public static void clear()
+ {
+ Session session = Session.get();
+ if (session != null)
+ {
+ session.setMetaData(key, null);
+ }
+ }
+
+ private static MetaDataKey<SessionData> key = new MetaDataKey<SessionData>()
+ {
+ private static final long serialVersionUID = 1L;
+ };
+ };
+
+ static boolean continueToOriginalDestination()
+ {
+ SessionData data = SessionData.get();
+ if (data != null)
+ {
+ data.continueOk = true;
+ String url = RequestCycle.get().getUrlRenderer().renderUrl(data.originalUrl);
+ RequestCycle.get().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(url));
+ return true;
+ }
+ return false;
+ }
+
+ public static IRequestMapper MAPPER = new IRequestMapper()
+ {
+ public int getCompatibilityScore(Request request)
+ {
+ return 0;
+ }
+
+ public Url mapHandler(IRequestHandler requestHandler)
+ {
+ return null;
+ }
+
+ public IRequestHandler mapRequest(Request request)
+ {
+ SessionData data = SessionData.get();
+ if (data != null)
+ {
+ if (data.originalUrl.equals(request.getOriginalUrl()))
+ {
+ if (data.postParameters.isEmpty() == false &&
+ request.getPostParameters() instanceof IWritableRequestParameters)
+ {
+ IWritableRequestParameters parameters = (IWritableRequestParameters)request.getPostParameters();
+ parameters.reset();
+ for (String s : data.postParameters.keySet())
+ {
+ parameters.setParameterValues(s, data.postParameters.get(s));
+ }
+ }
+ SessionData.clear();
+ }
+ }
+ return null;
+ }
+ };
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java Wed Feb 24 00:21:13 2010
@@ -16,6 +16,7 @@
*/
package org.apache.wicket;
+import org.apache.wicket.ng.request.component.IRequestablePage;
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.handler.PageProvider;
import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
@@ -66,7 +67,7 @@
* @param page
* redirect page
*/
- public RestartResponseException(Page page)
+ public RestartResponseException(IRequestablePage page)
{
super(new RenderPageRequestHandler(new PageProvider(page)));
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java Wed Feb 24 00:21:13 2010
@@ -24,6 +24,7 @@
import java.util.Set;
import org.apache.wicket.ng.request.IRequestParameters;
+import org.apache.wicket.ng.request.IWritableRequestParameters;
import org.apache.wicket.util.string.StringValue;
/**
@@ -31,7 +32,7 @@
*
* @author Matej Knopp
*/
-public class MockRequestParameters implements IRequestParameters
+public class MockRequestParameters implements IWritableRequestParameters
{
private final Map<String, List<StringValue>> parameters = new HashMap<String, List<StringValue>>();
@@ -88,4 +89,10 @@
}
list.add(StringValue.valueOf(value));
}
+
+ public void reset()
+ {
+ parameters.clear();
+ }
+
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java Wed Feb 24 00:21:13 2010
@@ -238,7 +238,7 @@
@Override
- public MockRequestParameters getPostRequestParameters()
+ public MockRequestParameters getPostParameters()
{
return postRequestParameters;
}
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java?rev=915613&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java Wed Feb 24 00:21:13 2010
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.request;
+
+import java.util.List;
+
+import org.apache.wicket.util.string.StringValue;
+
+/**
+ * Request parameters that can be modified.
+ *
+ * @author Matej Knopp
+ */
+public interface IWritableRequestParameters extends IRequestParameters
+{
+ /**
+ * Clears all parameters.
+ */
+ public void reset();
+
+ /**
+ * Sets the values for given parameter.
+ *
+ * @param key
+ * @param values
+ */
+ public void setParameterValues(String key, List<StringValue> values);
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IWritableRequestParameters.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java Wed Feb 24 00:21:13 2010
@@ -446,10 +446,10 @@
}
/**
- *
+ * @param segments
* @return true if last segment is empty
*/
- private boolean isLastSegmentEmpty()
+ private boolean isLastSegmentEmpty(List<String> segments)
{
if (segments.isEmpty())
{
@@ -459,6 +459,23 @@
return last.length() == 0;
}
+ private boolean isLastSegmentEmpty()
+ {
+ return isLastSegmentEmpty(segments);
+ }
+
+ private boolean isAtLeastOnSegmentReal(List<String> segments)
+ {
+ for (String s : segments)
+ {
+ if (s.length() > 0 && !".".equals(s) && !"..".equals(s))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Concatenate the specified segments; The segments can be relative - begin with "." or "..".
*
@@ -468,13 +485,19 @@
{
boolean checkedLastSegment = false;
+ if (!isAtLeastOnSegmentReal(segments) && !isLastSegmentEmpty(segments))
+ {
+ segments = new ArrayList<String>(segments);
+ segments.add("");
+ }
+
for (String s : segments)
{
if (".".equals(s))
{
continue;
}
- else if ("..".equals(s) && isLastSegmentReal())
+ else if ("..".equals(s) && !this.segments.isEmpty())
{
this.segments.remove(this.segments.size() - 1);
}
@@ -491,19 +514,11 @@
this.segments.add(s);
}
}
- }
- /**
- *
- */
- public void makeAbsolute()
- {
- if (isAbsolute())
+ if (this.segments.size() == 1 && this.segments.get(0).length() == 0)
{
- return;
+ this.segments.clear();
}
-
- segments.add(null);
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java Wed Feb 24 00:21:13 2010
@@ -405,7 +405,7 @@
Url url = urlFor(handler);
if (url != null)
{
- return getUrlRenderer().renderUrl(url);
+ return getResponse().encodeURL(getUrlRenderer().renderUrl(url));
}
else
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java Wed Feb 24 00:21:13 2010
@@ -22,6 +22,7 @@
import org.apache.wicket.IRequestHandler;
import org.apache.wicket.Response;
+import org.apache.wicket.WicketRuntimeException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -226,7 +227,7 @@
*
* @author Matej Knopp
*/
- public static class ReplaceHandlerException extends RuntimeException
+ public static class ReplaceHandlerException extends WicketRuntimeException
{
private static final long serialVersionUID = 1L;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java Wed Feb 24 00:21:13 2010
@@ -38,7 +38,7 @@
* @return page instance
* @throws StalePageException
* if render count has been specified in constructor and the render count of page
- * does not match the valeu
+ * does not match the value
* @throw {@link PageExpiredException} if the specified page could not have been found and the
* constructor used did not provide enough information to create new page instance
*/
@@ -52,6 +52,15 @@
PageParameters getPageParameters();
/**
+ * Returns whether calling getPageInstance() will result in creating new page instance or
+ * whether it will be an existing intance (even though it might be pulled from page store).
+ *
+ * @return <code>true</code> if calling {@link #getPageInstance()} will create new page
+ * instance, <code>false</code> otherwise.
+ */
+ boolean isNewPageInstance();
+
+ /**
* Returns class of the page.
*
* @return page class
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java Wed Feb 24 00:21:13 2010
@@ -36,12 +36,12 @@
* Purpose of this class is to reduce complexity of both {@link IRequestMapper}s and
* {@link IRequestHandler}s. {@link IRequestMapper} examines the URL, gathers all relevant
* information about the page in the URL (combination of page id, page class, page parameters and
- * render count), creates {@link PageProvider} object and creates a {@link IRequestHandler}
- * instance that can use the {@link PageProvider} to access the page.
+ * render count), creates {@link PageProvider} object and creates a {@link IRequestHandler} instance
+ * that can use the {@link PageProvider} to access the page.
* <p>
- * Apart from simplifying {@link IRequestMapper}s and {@link IRequestHandler}s
- * {@link PageProvider} also helps performance because creating or obtaining page from
- * {@link IPageManager} is delayed until the {@link IRequestHandler} actually requires the page.
+ * Apart from simplifying {@link IRequestMapper}s and {@link IRequestHandler}s {@link PageProvider}
+ * also helps performance because creating or obtaining page from {@link IPageManager} is delayed
+ * until the {@link IRequestHandler} actually requires the page.
*
* @author Matej Knopp
*/
@@ -186,6 +186,11 @@
}
}
+ public boolean isNewPageInstance()
+ {
+ return pageInstance == null && pageId == null;
+ }
+
/**
* @see org.apache.wicket.ng.request.handler.IPageProvider#getPageClass()
*/
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java Wed Feb 24 00:21:13 2010
@@ -194,7 +194,9 @@
}
else if (!targetUrl.equals(currentUrl) //
&&
- (getRedirectPolicy() == RedirectPolicy.ALWAYS_REDIRECT || isRedirectToRender()))
+ (getRedirectPolicy() == RedirectPolicy.ALWAYS_REDIRECT || //
+ isRedirectToRender() || //
+ (getPage().isPageStateless() && Session.get().isTemporary())))
{
// if target URL is different
// and render policy is always-redirect or it's redirect-to-render
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java Wed Feb 24 00:21:13 2010
@@ -258,13 +258,24 @@
// but only allowed if the page was created by bookamarkable URL
RenderPageRequestHandler handler = (RenderPageRequestHandler)requestHandler;
- IRequestablePage page = handler.getPage();
- if (!checkPageClass(page.getClass()))
+ if (!checkPageClass(handler.getPageClass()))
{
return null;
}
+ if (handler.getPageProvider().isNewPageInstance())
+ {
+ // no existing page instance available, don't bother creating new page instance
+ PageInfo info = new PageInfo();
+ UrlInfo urlInfo = new UrlInfo(new PageComponentInfo(info, null),
+ handler.getPageClass(), handler.getPageParameters());
+
+ return buildUrl(urlInfo);
+ }
+
+ IRequestablePage page = handler.getPage();
+
if (!pageMustHaveBeenCreatedBookmarkable() || page.wasCreatedBookmarkable())
{
PageInfo info = null;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java Wed Feb 24 00:21:13 2010
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.ng.request.mapper;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
+
/**
* Mapper that encapsulates mappers that are necessary for Wicket to function.
@@ -30,6 +32,7 @@
*/
public SystemMapper()
{
+ register(RestartResponseAtInterceptPageException.MAPPER);
register(new HomePageMapper());
register(new PageInstanceMapper());
register(new BookmarkableMapper());
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java?rev=915613&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java Wed Feb 24 00:21:13 2010
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.protocol.http;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Response that keeps headers in buffers but writes the content directly to the response.
+ *
+ * This is necessary to get {@link #reset()} working without removing the JSESSIONID cookie. When
+ * {@link HttpServletResponse#reset()} is called it removes all cookies, including the JSESSIONID
+ * cookie.
+ *
+ * Calling {@link #reset()} on this response only clears the buffered headers. If there is any
+ * content written to response it throws {@link IllegalStateException}.
+ *
+ * @author Matej Knopp
+ */
+class HeaderBufferingWebResponse extends WebResponse
+{
+ private final WebResponse originalResponse;
+ private final BufferedWebResponse bufferedResponse;
+
+ public HeaderBufferingWebResponse(WebResponse originalResponse)
+ {
+ this.originalResponse = originalResponse;
+ bufferedResponse = new BufferedWebResponse()
+ {
+ @Override
+ public String encodeURL(CharSequence url)
+ {
+ return HeaderBufferingWebResponse.this.encodeURL(url);
+ }
+ };
+ }
+
+ private boolean bufferedWritten = false;
+
+ private void writeBuffered()
+ {
+ if (!bufferedWritten)
+ {
+ bufferedResponse.writeTo(originalResponse);
+ bufferedWritten = true;
+ }
+ }
+
+ private void checkHeader()
+ {
+ if (bufferedWritten)
+ {
+ throw new IllegalStateException("Header was already written to response!");
+ }
+ }
+
+ @Override
+ public void addCookie(Cookie cookie)
+ {
+ checkHeader();
+ bufferedResponse.addCookie(cookie);
+ }
+
+ @Override
+ public void clearCookie(Cookie cookie)
+ {
+ checkHeader();
+ bufferedResponse.clearCookie(cookie);
+ }
+
+ private boolean flushed = false;
+
+ @Override
+ public void flush()
+ {
+ if (!bufferedWritten)
+ {
+ bufferedResponse.writeTo(originalResponse);
+ bufferedResponse.reset();
+ }
+ originalResponse.flush();
+ flushed = true;
+ }
+
+ @Override
+ public boolean isRedirect()
+ {
+ return bufferedResponse.isRedirect();
+ }
+
+ @Override
+ public void sendError(int sc, String msg)
+ {
+ checkHeader();
+ bufferedResponse.sendError(sc, msg);
+ }
+
+ @Override
+ public void sendRedirect(String url)
+ {
+ checkHeader();
+ bufferedResponse.sendRedirect(url);
+ }
+
+ @Override
+ public void setContentLength(long length)
+ {
+ checkHeader();
+ bufferedResponse.setContentLength(length);
+ }
+
+ @Override
+ public void setContentType(String mimeType)
+ {
+ checkHeader();
+ bufferedResponse.setContentType(mimeType);
+ }
+
+ @Override
+ public void setDateHeader(String name, long date)
+ {
+ checkHeader();
+ bufferedResponse.setDateHeader(name, date);
+ }
+
+ @Override
+ public void setHeader(String name, String value)
+ {
+ checkHeader();
+ bufferedResponse.setHeader(name, value);
+ }
+
+ @Override
+ public void setStatus(int sc)
+ {
+ checkHeader();
+ bufferedResponse.setStatus(sc);
+ }
+
+ @Override
+ public String encodeURL(CharSequence url)
+ {
+ return originalResponse.encodeURL(url);
+ }
+
+ @Override
+ public void write(CharSequence sequence)
+ {
+ writeBuffered();
+ originalResponse.write(sequence);
+ }
+
+ @Override
+ public void write(byte[] array)
+ {
+ writeBuffered();
+ originalResponse.write(array);
+ }
+
+ @Override
+ public void reset()
+ {
+ if (flushed)
+ {
+ throw new IllegalStateException("Response has already been flushed!");
+ }
+ checkHeader();
+ bufferedResponse.reset();
+ }
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java Wed Feb 24 00:21:13 2010
@@ -136,9 +136,9 @@
}
@Override
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
- return WebRequest.this.getPostRequestParameters();
+ return WebRequest.this.getPostParameters();
}
@Override
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java Wed Feb 24 00:21:13 2010
@@ -165,7 +165,8 @@
req = new ServletWebRequest(httpServletRequest, filterPath);
- WebResponse resp = new ServletWebResponse(httpServletResponse);
+ WebResponse resp = new HeaderBufferingWebResponse(new ServletWebResponse(
+ httpServletRequest, httpServletResponse));
RequestCycle requestCycle = webApplication.createRequestCycle(req, resp);
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java Wed Feb 24 00:21:13 2010
@@ -75,9 +75,9 @@
}
@Override
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
- return MultipartServletWebRequest.this.getPostRequestParameters();
+ return MultipartServletWebRequest.this.getPostParameters();
}
};
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java Wed Feb 24 00:21:13 2010
@@ -33,6 +33,7 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.ng.request.IRequestParameters;
+import org.apache.wicket.ng.request.IWritableRequestParameters;
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.ng.request.Url.QueryParameter;
import org.apache.wicket.protocol.http.WebRequest;
@@ -233,7 +234,7 @@
return postParameters;
}
- private Map<String, List<StringValue>> getPostParameters()
+ private Map<String, List<StringValue>> getPostRequestParameters()
{
if (postParameters == null)
{
@@ -242,16 +243,26 @@
return postParameters;
}
- private final IRequestParameters postRequestParameters = new IRequestParameters()
+ private final IRequestParameters postRequestParameters = new IWritableRequestParameters()
{
+ public void reset()
+ {
+ getPostRequestParameters().clear();
+ }
+
+ public void setParameterValues(String key, List<StringValue> values)
+ {
+ getPostRequestParameters().put(key, values);
+ }
+
public Set<String> getParameterNames()
{
- return Collections.unmodifiableSet(getPostParameters().keySet());
+ return Collections.unmodifiableSet(getPostRequestParameters().keySet());
}
public StringValue getParameterValue(String name)
{
- List<StringValue> values = getPostParameters().get(name);
+ List<StringValue> values = getPostRequestParameters().get(name);
if (values == null || values.isEmpty())
{
return StringValue.valueOf((String)null);
@@ -264,7 +275,7 @@
public List<StringValue> getParameterValues(String name)
{
- List<StringValue> values = getPostParameters().get(name);
+ List<StringValue> values = getPostRequestParameters().get(name);
if (values != null)
{
values = Collections.unmodifiableList(values);
@@ -274,7 +285,7 @@
};
@Override
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
return postRequestParameters;
}
@@ -291,10 +302,10 @@
return new ServletWebRequest(httpServletRequest, filterPrefix, url)
{
@Override
- public IRequestParameters getPostRequestParameters()
+ public IRequestParameters getPostParameters()
{
// don't parse post parameters again
- return ServletWebRequest.this.getPostRequestParameters();
+ return ServletWebRequest.this.getPostParameters();
}
};
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java Wed Feb 24 00:21:13 2010
@@ -19,9 +19,11 @@
import java.io.IOException;
import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.ng.request.Url;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.util.lang.Checks;
@@ -33,17 +35,22 @@
public class ServletWebResponse extends WebResponse
{
private final HttpServletResponse httpServletResponse;
+ private final HttpServletRequest httpServletRequest;
/**
* Construct.
*
+ * @param httpServletRequest
* @param httpServletResponse
*/
- public ServletWebResponse(HttpServletResponse httpServletResponse)
+ public ServletWebResponse(HttpServletRequest httpServletRequest,
+ HttpServletResponse httpServletResponse)
{
+ Checks.argumentNotNull(httpServletRequest, "httpServletRequest");
Checks.argumentNotNull(httpServletResponse, "httpServletResponse");
this.httpServletResponse = httpServletResponse;
+ this.httpServletRequest = httpServletRequest;
}
/**
@@ -177,13 +184,46 @@
return httpServletResponse.encodeURL(null);
}
+ private String getAbsolutePrefix()
+ {
+ String port = "";
+ if (("http".equals(httpServletRequest.getScheme()) && httpServletRequest.getServerPort() != 80) ||
+ ("https".equals(httpServletRequest.getScheme()) && httpServletRequest.getServerPort() != 443))
+ {
+ port = ":" + httpServletRequest.getServerPort();
+ }
+ return httpServletRequest.getScheme() + "://" + httpServletRequest.getServerName() + port;
+ }
+
+ private String getAbsoluteURL(String url)
+ {
+ if (url.startsWith("http://") || url.startsWith("https://"))
+ {
+ return url;
+ }
+ else if (url.startsWith("/"))
+ {
+ return getAbsolutePrefix() + url;
+ }
+ else
+ {
+ Url current = Url.parse(httpServletRequest.getRequestURI());
+ Url append = Url.parse(url);
+ current.concatSegments(append.getSegments());
+ Url result = new Url(current.getSegments(), append.getQueryParameters());
+ return getAbsolutePrefix() + result.toString();
+ }
+ }
+
private boolean redirect = false;
@Override
public void sendRedirect(String url)
{
redirect = true;
+ url = getAbsoluteURL(url);
url = httpServletResponse.encodeRedirectURL(url);
+
try
{
httpServletResponse.sendRedirect(url);
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Wed Feb 24 00:21:13 2010
@@ -254,7 +254,6 @@
// super(application, path);
// }
-
public Session getSession()
{
return session;
@@ -537,6 +536,11 @@
return null;
}
+ public boolean isNewPageInstance()
+ {
+ return false;
+ }
+
public IRequestablePage getPageInstance()
{
return testPageSource.getTestPage();
@@ -1004,7 +1008,7 @@
SubmitLink submitLink = (SubmitLink)linkComponent;
String pageRelativePath = submitLink.getInputName();
- request.getPostRequestParameters().setParameterValue(pageRelativePath, "x");
+ request.getPostParameters().setParameterValue(pageRelativePath, "x");
submitForm(submitLink.getForm().getPageRelativePath());
}
@@ -1436,7 +1440,6 @@
// }
// return requestCycle;
// }
-
/**
* Retrieves a <code>TagTester</code> based on a <code>wicket:id</code>. If more
* <code>Component</code>s exist with the same <code>wicket:id</code> in the markup, only the
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java Wed Feb 24 00:21:13 2010
@@ -739,7 +739,7 @@
if (parameterExist(formComponent))
{
List<StringValue> values = tester.getRequest()
- .getPostRequestParameters()
+ .getPostParameters()
.getParameterValues(formComponent.getInputName());
// remove duplicated
@@ -755,7 +755,7 @@
{
values.add(StringValue.valueOf(val));
}
- tester.getRequest().getPostRequestParameters().setParameterValues(
+ tester.getRequest().getPostParameters().setParameterValues(
formComponent.getInputName(), values);
}
else
@@ -787,7 +787,7 @@
private boolean parameterExist(FormComponent<?> formComponent)
{
String parameter = tester.getRequest()
- .getPostRequestParameters()
+ .getPostParameters()
.getParameterValue(formComponent.getInputName())
.toString();
return parameter != null && parameter.trim().length() > 0;
@@ -803,7 +803,7 @@
*/
private void setFormComponentValue(FormComponent<?> formComponent, String value)
{
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
formComponent.getInputName(), value);
}
@@ -817,7 +817,7 @@
*/
private void setFormSubmittingComponentValue(IFormSubmittingComponent component, String value)
{
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
component.getInputName(), value);
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/AuthorizationTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/AuthorizationTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/AuthorizationTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/AuthorizationTest.java Wed Feb 24 00:21:13 2010
@@ -131,7 +131,7 @@
tester.startPage(AuthTestPage1.class);
tester.assertRenderedPage(AuthTestPage1.class);
- tester.getRequest().getPostRequestParameters().setParameterValue("stringInput", "test");
+ tester.getRequest().getPostParameters().setParameterValue("stringInput", "test");
tester.submitForm("form");
tester.assertRenderedPage(AuthTestPage1.class);
AuthTestPage1 page = (AuthTestPage1)tester.getLastRenderedPage();
@@ -169,7 +169,7 @@
tester.startPage(AuthTestPage1.class);
tester.assertRenderedPage(AuthTestPage1.class);
tester.getRequest()
- .getPostRequestParameters()
+ .getPostParameters()
.setParameterValue("form:stringInput", "test");
try
{
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java Wed Feb 24 00:21:13 2010
@@ -50,7 +50,7 @@
HomePage homePage = (HomePage)tester.getLastRenderedPage();
TestForm testForm = homePage.getForm();
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
homePage.getForm().getSubmitButton().getInputName(), "x");
tester.executeAjaxEvent(testForm.getSubmitButton(), "onclick");
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/border/BoxBorderTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/border/BoxBorderTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/border/BoxBorderTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/border/BoxBorderTest.java Wed Feb 24 00:21:13 2010
@@ -71,7 +71,7 @@
"border:myForm:border_body:name");
assertEquals("", input.getDefaultModelObjectAsString());
- tester.getRequest().getPostRequestParameters().setParameterValue(input.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(input.getInputName(),
"jdo");
tester.submitForm(form.getPageRelativePath());
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java Wed Feb 24 00:21:13 2010
@@ -159,13 +159,13 @@
assertTrue("running with nothing selected - model must be empty", modelObject.getProp1()
.size() == 0);
- tester.getRequest().getPostRequestParameters().setParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group.getInputName(),
String.valueOf(choice1.getValue()));
form.onFormSubmitted();
assertTrue("running with choice1 selected - model must only contain value of check1",
modelObject.getProp1().size() == 1 && modelObject.getProp1().contains(check1));
- tester.getRequest().getPostRequestParameters().setParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group.getInputName(),
String.valueOf(choice2.getValue()));
form.onFormSubmitted();
assertTrue("running with choice2 selected - model must only contain value of check2",
@@ -174,11 +174,11 @@
// throw in some nulls into the request param to make sure they are
// ignored
tester.getRequest()
- .getPostRequestParameters()
+ .getPostParameters()
.addParameterValue(group.getInputName(), null);
- tester.getRequest().getPostRequestParameters().addParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().addParameterValue(group.getInputName(),
String.valueOf(choice1.getValue()));
- tester.getRequest().getPostRequestParameters().addParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().addParameterValue(group.getInputName(),
String.valueOf(choice2.getValue()));
form.onFormSubmitted();
@@ -188,7 +188,7 @@
modelObject.getProp1().size() == 2 && modelObject.getProp1().contains(check2) &&
modelObject.getProp1().contains(check1));
- tester.getRequest().getPostRequestParameters().setParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group.getInputName(),
"some weird choice uuid to test error");
try
{
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/LocalizedErrorMessageTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/LocalizedErrorMessageTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/LocalizedErrorMessageTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/LocalizedErrorMessageTest.java Wed Feb 24 00:21:13 2010
@@ -36,7 +36,7 @@
LocalizedMessagePage page = new LocalizedMessagePage();
tester.startPage(page);
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
page.integerField.getInputName(), "foo");
tester.submitForm(page.form);
@@ -48,7 +48,7 @@
page = new LocalizedMessagePage();
tester.startPage(page);
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
page.integerField.getInputName(), "foo");
tester.submitForm(page.form);
@@ -70,7 +70,7 @@
LocalizedMessagePage page = new LocalizedMessagePage();
tester.startPage(page);
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
page.integerField.getInputName(), "foo");
tester.submitForm(page.form);
@@ -83,7 +83,7 @@
page = new LocalizedMessagePage();
tester.startPage(page);
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
page.integerField.getInputName(), "foo");
tester.submitForm(page.form);
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java Wed Feb 24 00:21:13 2010
@@ -148,9 +148,9 @@
assertTrue("group2: running with nothing selected - model must be set to null",
model.getObject() == null);
- tester.getRequest().getPostRequestParameters().setParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group.getInputName(),
choice1.getValue());
- tester.getRequest().getPostRequestParameters().setParameterValue(group2.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group2.getInputName(),
choice3.getValue());
form.onFormSubmitted();
assertEquals("group: running with choice1 selected - model must be set to value of radio1",
@@ -159,13 +159,13 @@
"group2: running with choice3 selected - model must be set to value of radio1",
model.getObject(), choice3.getDefaultModelObject());
- tester.getRequest().getPostRequestParameters().setParameterValue(group.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group.getInputName(),
choice2.getValue());
form.onFormSubmitted();
assertEquals("group: running with choice2 selected - model must be set to value of radio2",
modelObject.getProp1(), choice2.getDefaultModelObject());
- tester.getRequest().getPostRequestParameters().setParameterValue(group2.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(group2.getInputName(),
choice1.getValue());
try
{
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/border/TestHomePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/border/TestHomePage.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/border/TestHomePage.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/border/TestHomePage.java Wed Feb 24 00:21:13 2010
@@ -45,18 +45,18 @@
// formTester.setValue("..:textfield1", "testxxx");
TextField<String> textfield = (TextField<String>)tester.getLastRenderedPage().get(
"border:form:border_body:textfield");
- tester.getRequest().getPostRequestParameters().setParameterValue(textfield.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(textfield.getInputName(),
"abcde");
MyTextField datefield = (MyTextField)tester.getLastRenderedPage().get(
"border:form:border_body:datefield");
- tester.getRequest().getPostRequestParameters().setParameterValue(datefield.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(datefield.getInputName(),
"aaabbb");
MyDateField datefield2 = (MyDateField)tester.getLastRenderedPage().get(
"border:form:border_body:datefield2");
TextField<String> date = (TextField<String>)datefield2.get("date");
- tester.getRequest().getPostRequestParameters().setParameterValue(date.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(date.getInputName(),
"abcdef");
formTester.submit();
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/submitlink/TestHomePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/submitlink/TestHomePage.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/submitlink/TestHomePage.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/submitlink/TestHomePage.java Wed Feb 24 00:21:13 2010
@@ -26,7 +26,7 @@
tester.startPage(HomePage.class);
tester.assertRenderedPage(HomePage.class);
HomePage home = (HomePage)tester.getLastRenderedPage();
- tester.getRequest().getPostRequestParameters().setParameterValue("form:text", "Hello");
+ tester.getRequest().getPostParameters().setParameterValue("form:text", "Hello");
tester.clickLink("form:link");
assertEquals("Hello", home.getText());
assertTrue("Form.onSubmit() has not been called!", home.isSubmitted());
@@ -38,9 +38,9 @@
tester.startPage(HomePage.class);
tester.assertRenderedPage(HomePage.class);
HomePage home = (HomePage)tester.getLastRenderedPage();
- tester.getRequest().getPostRequestParameters().setParameterValue("form:text", "Hello");
+ tester.getRequest().getPostParameters().setParameterValue("form:text", "Hello");
// Pretend we clicked on "link"
- tester.getRequest().getPostRequestParameters().setParameterValue("link", "");
+ tester.getRequest().getPostParameters().setParameterValue("link", "");
tester.submitForm("form");
assertEquals("Hello", home.getText());
assertTrue("Form.onSubmit() has not been called!", home.isSubmitted());
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/validation/HomePageTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/validation/HomePageTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/validation/HomePageTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/validation/HomePageTest.java Wed Feb 24 00:21:13 2010
@@ -80,7 +80,7 @@
{
TextField textfield = (TextField)tester.getLastRenderedPage().get(
"border:form2:border_body:textfield1");
- tester.getRequest().getPostRequestParameters().setParameterValue(textfield.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(textfield.getInputName(),
"abcde");
tester.executeAjaxEvent("border:form2:submit", "onclick");
tester.assertNoErrorMessage();
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java Wed Feb 24 00:21:13 2010
@@ -227,7 +227,7 @@
page.reset();
FormTester formTester = tester.newFormTester("form");
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
((CheckBox)page.get("form:input")).getInputName(), "true");
page.get("form:label").setVisible(true);
formTester.submit();
@@ -238,7 +238,7 @@
assertTrue(page.labelOnBeforeRender);
page.reset();
- tester.getRequest().getPostRequestParameters().setParameterValue(
+ tester.getRequest().getPostParameters().setParameterValue(
((CheckBox)page.get("form:input")).getInputName(), "true");
page.get("form:label").setVisible(false);
tester.submitForm("form");
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java Wed Feb 24 00:21:13 2010
@@ -279,4 +279,46 @@
url.concatSegments(Arrays.asList("xx", "yy"));
assertEquals(Url.parse("abc/efg/xx/yy"), url);
}
+
+ /**
+ *
+ */
+ public void testConcat6()
+ {
+ Url url = Url.parse("abc/efg/");
+ url.concatSegments(Arrays.asList(".."));
+ assertEquals(Url.parse("abc/"), url);
+ }
+
+ /**
+ *
+ */
+ public void testConcat7()
+ {
+ Url url = Url.parse("abc/efg/");
+ url.concatSegments(Arrays.asList("..", ".."));
+ assertEquals(Url.parse(""), url);
+ }
+
+
+ /**
+ *
+ */
+ public void testConcat8()
+ {
+ Url url = Url.parse("fff/abc/efg/xxx");
+ url.concatSegments(Arrays.asList(".."));
+ assertEquals(Url.parse("fff/abc/"), url);
+ }
+
+
+ /**
+ *
+ */
+ public void testConcat9()
+ {
+ Url url = Url.parse("fff/abc/efg/xxx");
+ url.concatSegments(Arrays.asList("..", ".."));
+ assertEquals(Url.parse("fff/"), url);
+ }
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java?rev=915613&r1=915612&r2=915613&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java Wed Feb 24 00:21:13 2010
@@ -488,7 +488,7 @@
assertFalse(page.isExecuted());
- tester.getRequest().getPostRequestParameters().setParameterValue(name.getInputName(),
+ tester.getRequest().getPostParameters().setParameterValue(name.getInputName(),
"Mock name");
// Execute the ajax event