You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2010/03/18 02:08:30 UTC

svn commit: r924578 [2/3] - in /wicket/trunk: wicket-auth-roles/src/main/java/org/apache/wicket/authentication/pages/ wicket-examples/src/main/java/org/apache/wicket/examples/authentication1/ wicket-examples/src/main/java/org/apache/wicket/examples/aut...

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java (from r924086, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java&r1=924086&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java Thu Mar 18 01:08:25 2010
@@ -1,301 +1,189 @@
-/*
- * 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.request.mapper;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.request.IRequestMapper;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.Url;
-import org.apache.wicket.request.Url.QueryParameter;
-import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
-import org.apache.wicket.request.mapper.info.PageComponentInfo;
-import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
-import org.apache.wicket.util.lang.Checks;
-import org.apache.wicket.util.lang.WicketObjects;
-import org.apache.wicket.util.string.Strings;
-
-/**
- * Convenience class for implementing page/components related encoders.
- * 
- * @author Matej Knopp
- */
-public abstract class AbstractMapper implements IRequestMapper
-{
-	/**
-	 * Construct.
-	 */
-	public AbstractMapper()
-	{
-	}
-
-	protected IMapperContext getContext()
-	{
-		return Application.get().getEncoderContext();
-	}
-
-	/**
-	 * Converts the specified listener interface to String.
-	 * 
-	 * @param listenerInterface
-	 * @return listenerInterface name as string
-	 */
-	protected String requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
-	{
-		Checks.argumentNotNull(listenerInterface, "listenerInterface");
-
-		return getContext().requestListenerInterfaceToString(listenerInterface);
-	}
-
-	/**
-	 * Creates listener interface from the specified string
-	 * 
-	 * @param interfaceName
-	 * @return listener interface
-	 */
-	protected RequestListenerInterface requestListenerInterfaceFromString(String interfaceName)
-	{
-		Checks.argumentNotEmpty(interfaceName, "interfaceName");
-
-		return getContext().requestListenerInterfaceFromString(interfaceName);
-	}
-
-	/**
-	 * If the string is in a placeholder format ${key} this method returns the key.
-	 * 
-	 * @param s
-	 * @return placeholder key or <code>null</code> if string is not in right format
-	 */
-	protected static String getPlaceholder(String s)
-	{
-		if (s == null || s.length() < 4 || !s.startsWith("${") || !s.endsWith("}"))
-		{
-			return null;
-		}
-		else
-		{
-			return s.substring(2, s.length() - 1);
-		}
-	}
-
-	/**
-	 * Returns true if the given url starts with specified segments. Segments that contain
-	 * placelhoders are not compared.
-	 * 
-	 * @param url
-	 * @param segments
-	 * @return <code>true</code> if the URL starts with the specified segments, <code>false</code>
-	 *         otherwise
-	 */
-	/*
-	 * TODO its funny to have a dependency in this method on the #getPlaceHolder method because we
-	 * are forcing everyone who extends this to use the ${placeholder} syntax. We should move
-	 * #getPlaceHolder out and rewrite this method to have no dependency on it and match only exact
-	 * paths. The mappers that use the syntax will have to provide their own implementations.
-	 * 
-	 * Either that or have a pluggable placeholder syntax Placeholder { string start, string end}
-	 */
-	protected boolean urlStartsWith(Url url, String... segments)
-	{
-		if (url == null)
-		{
-			return false;
-		}
-		else
-		{
-			if (url.getSegments().size() < segments.length)
-			{
-				return false;
-			}
-			else
-			{
-				for (int i = 0; i < segments.length; ++i)
-				{
-					if (segments[i].equals(url.getSegments().get(i)) == false &&
-						getPlaceholder(segments[i]) == null)
-					{
-						return false;
-					}
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Extracts the {@link PageComponentInfo} from the URL. The {@link PageComponentInfo} is encoded
-	 * as the very first query parameter and the parameter consists of name only (no value).
-	 * 
-	 * @param url
-	 * 
-	 * @return PageComponentInfo instance if one was encoded in URL, <code>null</code> otherwise.
-	 */
-	protected PageComponentInfo getPageComponentInfo(Url url)
-	{
-		if (url == null)
-		{
-			throw new IllegalStateException("Argument 'url' may not be null.");
-		}
-		if (url.getQueryParameters().size() > 0)
-		{
-			QueryParameter param = url.getQueryParameters().get(0);
-			if (Strings.isEmpty(param.getValue()))
-			{
-				return PageComponentInfo.parse(param.getName());
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Encodes the {@link PageComponentInfo} instance as the first query string parameter to the
-	 * URL.
-	 * 
-	 * @param url
-	 * @param info
-	 */
-	protected void encodePageComponentInfo(Url url, PageComponentInfo info)
-	{
-		if (url == null)
-		{
-			throw new IllegalStateException("Argument 'url' may not be null.");
-		}
-		if (info != null)
-		{
-			String s = info.toString();
-			if (!Strings.isEmpty(s))
-			{
-				QueryParameter parameter = new QueryParameter(s, "");
-				url.getQueryParameters().add(parameter);
-			}
-		}
-	}
-
-	/**
-	 * Loads page class with given name.
-	 * 
-	 * @param name
-	 * @return class
-	 */
-	protected Class<? extends IRequestablePage> getPageClass(String name)
-	{
-		Checks.argumentNotEmpty(name, "name");
-
-		return WicketObjects.resolveClass(name);
-	}
-
-	/**
-	 * Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
-	 * 
-	 * @param request
-	 * @param segmentsToSkip
-	 *            how many URL segments should be skipped because they "belong" to the
-	 *            {@link IRequestMapper}
-	 * @param encoder
-	 * @return PageParameters instance
-	 */
-	protected PageParameters extractPageParameters(Request request, int segmentsToSkip,
-		IPageParametersEncoder encoder)
-	{
-		Checks.argumentNotNull(request, "request");
-		Checks.argumentNotNull(encoder, "encoder");
-
-		// strip the segments and first query parameter from URL
-		Url urlCopy = new Url(request.getUrl());
-		while (segmentsToSkip > 0 && urlCopy.getSegments().isEmpty() == false)
-		{
-			urlCopy.getSegments().remove(0);
-			--segmentsToSkip;
-		}
-
-		if (!urlCopy.getQueryParameters().isEmpty() &&
-			Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue()))
-		{
-			urlCopy.getQueryParameters().remove(0);
-		}
-
-		PageParameters decoded = encoder.decodePageParameters(request.requestWithUrl(urlCopy));
-		return decoded;
-	}
-
-	/**
-	 * Encodes the given {@link PageParameters} to the URL using the given
-	 * {@link IPageParametersEncoder}. The original URL object is unchanged.
-	 * 
-	 * @param url
-	 * @param pageParameters
-	 * @param encoder
-	 * @return URL with encoded parameters
-	 */
-	protected Url encodePageParameters(Url url, PageParameters pageParameters,
-		IPageParametersEncoder encoder)
-	{
-		Checks.argumentNotNull(url, "url");
-		Checks.argumentNotNull(encoder, "encoder");
-
-		if (pageParameters == null)
-		{
-			pageParameters = new PageParameters();
-		}
-
-		Url parametersUrl = encoder.encodePageParameters(pageParameters);
-		if (parametersUrl != null)
-		{
-			// copy the url
-			url = new Url(url);
-
-			for (String s : parametersUrl.getSegments())
-			{
-				url.getSegments().add(s);
-			}
-			for (QueryParameter p : parametersUrl.getQueryParameters())
-			{
-				url.getQueryParameters().add(p);
-			}
-		}
-
-		return url;
-	}
-
-	/**
-	 * Convenience method for representing mountPath as array of segments
-	 * 
-	 * @param mountPath
-	 * @return array of path segments
-	 */
-	protected String[] getMountSegments(String mountPath)
-	{
-		if (mountPath.startsWith("/"))
-		{
-			mountPath = mountPath.substring(1);
-		}
-		Url url = Url.parse(mountPath);
-
-		if (url.getSegments().isEmpty())
-		{
-			throw new IllegalArgumentException("Mount path must have at least one segment.");
-		}
-
-		String[] res = new String[url.getSegments().size()];
-		for (int i = 0; i < res.length; ++i)
-		{
-			res[i] = url.getSegments().get(i);
-		}
-		return res;
-	}
-}
+/*
+ * 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.request.mapper;
+
+
+import org.apache.wicket.request.IRequestMapper;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.Url.QueryParameter;
+import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
+import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.string.Strings;
+
+public class AbstractMapper
+{
+
+	/**
+	 * If the string is in a placeholder format ${key} this method returns the key.
+	 * 
+	 * @param s
+	 * @return placeholder key or <code>null</code> if string is not in right format
+	 */
+	protected static String getPlaceholder(String s)
+	{
+		if (s == null || s.length() < 4 || !s.startsWith("${") || !s.endsWith("}"))
+		{
+			return null;
+		}
+		else
+		{
+			return s.substring(2, s.length() - 1);
+		}
+	}
+
+	public AbstractMapper()
+	{
+		super();
+	}
+
+	/**
+	 * Returns true if the given url starts with specified segments. Segments that contain
+	 * placelhoders are not compared.
+	 * 
+	 * @param url
+	 * @param segments
+	 * @return <code>true</code> if the URL starts with the specified segments, <code>false</code>
+	 *         otherwise
+	 */
+	protected boolean urlStartsWith(Url url, String... segments)
+	{
+		if (url == null)
+		{
+			return false;
+		}
+		else
+		{
+			if (url.getSegments().size() < segments.length)
+			{
+				return false;
+			}
+			else
+			{
+				for (int i = 0; i < segments.length; ++i)
+				{
+					if (segments[i].equals(url.getSegments().get(i)) == false &&
+						getPlaceholder(segments[i]) == null)
+					{
+						return false;
+					}
+				}
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
+	 * 
+	 * @param request
+	 * @param segmentsToSkip
+	 *            how many URL segments should be skipped because they "belong" to the
+	 *            {@link IRequestMapper}
+	 * @param encoder
+	 * @return PageParameters instance
+	 */
+	protected PageParameters extractPageParameters(Request request, int segmentsToSkip, IPageParametersEncoder encoder)
+	{
+		Checks.argumentNotNull(request, "request");
+		Checks.argumentNotNull(encoder, "encoder");
+	
+		// strip the segments and first query parameter from URL
+		Url urlCopy = new Url(request.getUrl());
+		while (segmentsToSkip > 0 && urlCopy.getSegments().isEmpty() == false)
+		{
+			urlCopy.getSegments().remove(0);
+			--segmentsToSkip;
+		}
+	
+		if (!urlCopy.getQueryParameters().isEmpty() &&
+			Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue()))
+		{
+			urlCopy.getQueryParameters().remove(0);
+		}
+	
+		PageParameters decoded = encoder.decodePageParameters(request.requestWithUrl(urlCopy));
+		return decoded;
+	}
+
+	/**
+	 * Encodes the given {@link PageParameters} to the URL using the given
+	 * {@link IPageParametersEncoder}. The original URL object is unchanged.
+	 * 
+	 * @param url
+	 * @param pageParameters
+	 * @param encoder
+	 * @return URL with encoded parameters
+	 */
+	protected Url encodePageParameters(Url url, PageParameters pageParameters, IPageParametersEncoder encoder)
+	{
+		Checks.argumentNotNull(url, "url");
+		Checks.argumentNotNull(encoder, "encoder");
+	
+		if (pageParameters == null)
+		{
+			pageParameters = new PageParameters();
+		}
+	
+		Url parametersUrl = encoder.encodePageParameters(pageParameters);
+		if (parametersUrl != null)
+		{
+			// copy the url
+			url = new Url(url);
+	
+			for (String s : parametersUrl.getSegments())
+			{
+				url.getSegments().add(s);
+			}
+			for (QueryParameter p : parametersUrl.getQueryParameters())
+			{
+				url.getQueryParameters().add(p);
+			}
+		}
+	
+		return url;
+	}
+
+	/**
+	 * Convenience method for representing mountPath as array of segments
+	 * 
+	 * @param mountPath
+	 * @return array of path segments
+	 */
+	protected String[] getMountSegments(String mountPath)
+	{
+		if (mountPath.startsWith("/"))
+		{
+			mountPath = mountPath.substring(1);
+		}
+		Url url = Url.parse(mountPath);
+	
+		if (url.getSegments().isEmpty())
+		{
+			throw new IllegalArgumentException("Mount path must have at least one segment.");
+		}
+	
+		String[] res = new String[url.getSegments().size()];
+		for (int i = 0; i < res.length; ++i)
+		{
+			res[i] = url.getSegments().get(i);
+		}
+		return res;
+	}
+
+}
\ No newline at end of file

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java (from r924078, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java&r1=924078&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/CompoundRequestMapper.java Thu Mar 18 01:08:25 2010
@@ -22,7 +22,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import org.apache.wicket.request.ICompoundRequestMapper;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
@@ -74,7 +73,7 @@ public class CompoundRequestMapper imple
 	}
 
 	/**
-	 * @see org.apache.wicket.request.ICompoundRequestMapper#add(org.apache.wicket.request.IRequestMapper)
+	 * @see org.apache.wicket.request.mapper.ICompoundRequestMapper#add(org.apache.wicket.request.IRequestMapper)
 	 */
 	public CompoundRequestMapper add(IRequestMapper encoder)
 	{
@@ -83,7 +82,7 @@ public class CompoundRequestMapper imple
 	}
 
 	/**
-	 * @see org.apache.wicket.request.ICompoundRequestMapper#remove(org.apache.wicket.request.IRequestMapper)
+	 * @see org.apache.wicket.request.mapper.ICompoundRequestMapper#remove(org.apache.wicket.request.IRequestMapper)
 	 */
 	public CompoundRequestMapper remove(IRequestMapper encoder)
 	{

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ICompoundRequestMapper.java (from r924375, wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/ICompoundRequestMapper.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ICompoundRequestMapper.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ICompoundRequestMapper.java&p1=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/ICompoundRequestMapper.java&r1=924375&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/ICompoundRequestMapper.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ICompoundRequestMapper.java Thu Mar 18 01:08:25 2010
@@ -14,7 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket.request;
+package org.apache.wicket.request.mapper;
+
+import org.apache.wicket.request.IRequestMapper;
 
 /**
  * Mapper that delegates the mapping to a contained {@link IRequestMapper}s with the highest

Propchange: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ICompoundRequestMapper.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/ParentPathReferenceRewriter.java
------------------------------------------------------------------------------
    svn:executable = *

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java (from r924078, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java&r1=924078&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/IPageParametersEncoder.java Thu Mar 18 01:08:25 2010
@@ -19,7 +19,6 @@ package org.apache.wicket.request.mapper
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.component.PageParameters;
 
 /**
  * Encoder that can encode and decode {@link PageParameters} to/from URL.

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParameters.java (from r924078, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/PageParameters.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParameters.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParameters.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/PageParameters.java&r1=924078&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/PageParameters.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParameters.java Thu Mar 18 01:08:25 2010
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket.request.component;
+package org.apache.wicket.request.mapper.parameters;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -24,7 +24,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.util.lang.Checks;
 import org.apache.wicket.util.lang.Objects;

Copied: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParametersEncoder.java (from r924078, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/SimplePageParametersEncoder.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParametersEncoder.java?p2=wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParametersEncoder.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/SimplePageParametersEncoder.java&r1=924078&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/parameters/SimplePageParametersEncoder.java (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameters/PageParametersEncoder.java Thu Mar 18 01:08:25 2010
@@ -19,19 +19,18 @@ package org.apache.wicket.request.mapper
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
-import org.apache.wicket.request.component.PageParameters;
 
 /**
  * Simple encoder with direct indexed/named parameters mapping.
  * 
  * @author Matej Knopp
  */
-public class SimplePageParametersEncoder implements IPageParametersEncoder
+public class PageParametersEncoder implements IPageParametersEncoder
 {
 	/**
 	 * Construct.
 	 */
-	public SimplePageParametersEncoder()
+	public PageParametersEncoder()
 	{
 	}
 
@@ -58,7 +57,7 @@ public class SimplePageParametersEncoder
 	}
 
 	/**
-	 * @see org.apache.wicket.request.mapper.parameters.IPageParametersEncoder#encodePageParameters(org.apache.wicket.request.component.PageParameters)
+	 * @see org.apache.wicket.request.mapper.parameters.IPageParametersEncoder#encodePageParameters(org.apache.wicket.request.mapper.parameters.PageParameters)
 	 */
 	public Url encodePageParameters(PageParameters pageParameters)
 	{

Modified: wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/package.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/package.html?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/package.html (original)
+++ wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/package.html Thu Mar 18 01:08:25 2010
@@ -24,7 +24,6 @@
 	<body>
 		<p>
 			Package for classes that have generic (protocol independent) support for request cycle processing.
-			Provides the most important request target interfaces and classes.
 		</p>
 	</body>
 </html>

Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Exceptions.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Exceptions.java?rev=924578&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Exceptions.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Exceptions.java Thu Mar 18 01:08:25 2010
@@ -0,0 +1,63 @@
+package org.apache.wicket.util.lang;
+
+public class Exceptions
+{
+	private Exceptions()
+	{
+
+	}
+
+	public static <T extends Throwable> T findCause(Throwable throwable, final Class<T> causeType)
+	{
+		return visit(throwable, new IThrowableVisitor<T>()
+		{
+			@SuppressWarnings("unchecked")
+			public void visit(Throwable throwable, Traversal<T> traversal)
+			{
+				if (causeType.isAssignableFrom(throwable.getClass()))
+				{
+					traversal.stop((T)throwable);
+				}
+
+			}
+		});
+	}
+
+	public static class Traversal<T>
+	{
+		private T result;
+		private boolean stopped;
+
+		public void stop(T result)
+		{
+			this.result = result;
+			stop();
+		}
+
+		public void stop()
+		{
+			stopped = true;
+		}
+	}
+
+	public static interface IThrowableVisitor<T>
+	{
+		void visit(Throwable throwable, Traversal<T> traversal);
+	}
+
+	public static <T> T visit(Throwable throwable, IThrowableVisitor<T> visitor)
+	{
+		Traversal<T> traversal = new Traversal<T>();
+		Throwable cursor = throwable;
+		while (cursor != null)
+		{
+			visitor.visit(cursor, traversal);
+			if (traversal.stopped)
+			{
+				return traversal.result;
+			}
+			cursor = cursor.getCause();
+		}
+		return null;
+	}
+}

Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Exceptions.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java Thu Mar 18 01:08:25 2010
@@ -17,7 +17,7 @@
 package org.apache.wicket;
 
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.cycle.RequestHandlerStack.ReplaceHandlerException;
+import org.apache.wicket.request.RequestHandlerStack.ReplaceHandlerException;
 import org.apache.wicket.request.handler.basic.EmptyRequestHandler;
 
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java Thu Mar 18 01:08:25 2010
@@ -59,16 +59,16 @@ import org.apache.wicket.protocol.http.D
 import org.apache.wicket.protocol.http.IRequestLogger;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WebSession;
-import org.apache.wicket.request.ICompoundRequestMapper;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.cycle.RequestCycleContext;
 import org.apache.wicket.request.mapper.CompoundRequestMapper;
+import org.apache.wicket.request.mapper.ICompoundRequestMapper;
 import org.apache.wicket.request.mapper.IMapperContext;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.ResourceReferenceRegistry;
 import org.apache.wicket.session.DefaultPageFactory;
 import org.apache.wicket.session.ISessionStore;

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=924578&r1=924577&r2=924578&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 Thu Mar 18 01:08:25 2010
@@ -51,7 +51,6 @@ import org.apache.wicket.protocol.http.W
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.component.IRequestableComponent;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageProvider;
@@ -59,6 +58,7 @@ import org.apache.wicket.request.handler
 import org.apache.wicket.request.handler.impl.BookmarkablePageRequestHandler;
 import org.apache.wicket.request.handler.impl.ListenerInterfaceRequestHandler;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.settings.IDebugSettings;
 import org.apache.wicket.util.convert.IConverter;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultExceptionMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultExceptionMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultExceptionMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultExceptionMapper.java Thu Mar 18 01:08:25 2010
@@ -17,8 +17,8 @@
 package org.apache.wicket;
 
 import org.apache.wicket.protocol.http.PageExpiredException;
+import org.apache.wicket.request.IExceptionMapper;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.cycle.IExceptionMapper;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.mapper.StalePageException;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java Thu Mar 18 01:08:25 2010
@@ -17,7 +17,7 @@
 package org.apache.wicket;
 
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java Thu Mar 18 01:08:25 2010
@@ -40,8 +40,8 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.session.ISessionStore;
 import org.apache.wicket.settings.IDebugSettings;
 import org.apache.wicket.util.lang.Classes;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java Thu Mar 18 01:08:25 2010
@@ -25,8 +25,8 @@ import java.util.Map;
 
 import org.apache.wicket.authorization.AuthorizationException;
 import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.request.RequestHandlerStack.ReplaceHandlerException;
 import org.apache.wicket.request.component.IRequestableComponent;
-import org.apache.wicket.request.cycle.RequestHandlerStack.ReplaceHandlerException;
 import org.apache.wicket.util.lang.Classes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

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=924578&r1=924577&r2=924578&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 Thu Mar 18 01:08:25 2010
@@ -17,9 +17,9 @@
 package org.apache.wicket;
 
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 /**
  * Causes wicket to interrupt current request processing and immediately respond with the specified

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/SystemMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/SystemMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/SystemMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/SystemMapper.java Thu Mar 18 01:08:25 2010
@@ -22,7 +22,7 @@ import org.apache.wicket.request.mapper.
 import org.apache.wicket.request.mapper.HomePageMapper;
 import org.apache.wicket.request.mapper.PageInstanceMapper;
 import org.apache.wicket.request.mapper.ResourceReferenceMapper;
-import org.apache.wicket.request.mapper.parameters.SimplePageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParametersEncoder;
 import org.apache.wicket.util.IProvider;
 
 
@@ -43,7 +43,7 @@ public class SystemMapper extends Compou
 		add(new HomePageMapper());
 		add(new PageInstanceMapper());
 		add(new BookmarkableMapper());
-		add(new ResourceReferenceMapper(new SimplePageParametersEncoder(),
+		add(new ResourceReferenceMapper(new PageParametersEncoder(),
 			new ParentFolderPlaceholderProvider(application)));
 		add(new BufferedResponseMapper());
 	}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Thu Mar 18 01:08:25 2010
@@ -45,11 +45,11 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.IPageRequestHandler;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.Strings;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java Thu Mar 18 01:08:25 2010
@@ -28,8 +28,8 @@ import org.apache.wicket.markup.parser.f
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.IPageRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.response.StringResponse;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java Thu Mar 18 01:08:25 2010
@@ -37,12 +37,12 @@ import org.apache.wicket.markup.html.for
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.protocol.http.WebRequest;
-import org.apache.wicket.protocol.http.WicketURLDecoder;
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.UrlDecoder;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.settings.IApplicationSettings;
 import org.apache.wicket.util.lang.Bytes;
 import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -1651,7 +1651,7 @@ public class Form<T> extends WebMarkupCo
 	 */
 	private String recode(String s)
 	{
-		String un = WicketURLDecoder.QUERY_INSTANCE.decode(s, getRequest().getCharset());
+		String un = UrlDecoder.QUERY_INSTANCE.decode(s, getRequest().getCharset());
 		return Strings.escapeMarkup(un).toString();
 	}
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java Thu Mar 18 01:08:25 2010
@@ -21,7 +21,7 @@ import org.apache.wicket.markup.Componen
 import org.apache.wicket.markup.html.image.resource.LocalizedImageResource;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java Thu Mar 18 01:08:25 2010
@@ -24,7 +24,7 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.image.resource.LocalizedImageResource;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java Thu Mar 18 01:08:25 2010
@@ -18,7 +18,7 @@ package org.apache.wicket.markup.html.im
 
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.value.ValueMap;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java Thu Mar 18 01:08:25 2010
@@ -26,9 +26,9 @@ import org.apache.wicket.IResourceListen
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java Thu Mar 18 01:08:25 2010
@@ -17,7 +17,7 @@
 package org.apache.wicket.markup.html.link;
 
 import org.apache.wicket.Page;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.WicketObjects;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java Thu Mar 18 01:08:25 2010
@@ -20,8 +20,8 @@ import java.io.File;
 
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.WicketURLEncoder;
 import org.apache.wicket.request.IRequestCycle;
+import org.apache.wicket.request.UrlEncoder;
 import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
 import org.apache.wicket.request.resource.ContentDisposition;
 import org.apache.wicket.util.resource.FileResourceStream;
@@ -141,7 +141,7 @@ public class DownloadLink extends Link<F
 			throw new IllegalStateException(getClass().getName() +
 				" failed to retrieve a File object from model");
 		}
-		final String fn = WicketURLEncoder.QUERY_INSTANCE.encode((fileName != null) ? fileName
+		final String fn = UrlEncoder.QUERY_INSTANCE.encode((fileName != null) ? fileName
 			: file.getName(), getRequest().getCharset());
 
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java Thu Mar 18 01:08:25 2010
@@ -20,7 +20,7 @@ import org.apache.wicket.Page;
 import org.apache.wicket.Session;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java Thu Mar 18 01:08:25 2010
@@ -17,9 +17,9 @@
 package org.apache.wicket.markup.html.link;
 
 import org.apache.wicket.IResourceListener;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.request.resource.IResource.Attributes;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java Thu Mar 18 01:08:25 2010
@@ -27,11 +27,11 @@ import org.apache.wicket.protocol.http.C
 import org.apache.wicket.protocol.http.WebSession;
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.request.ClientInfo;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.basic.RedirectRequestHandler;
 import org.apache.wicket.request.handler.impl.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.settings.IRequestCycleSettings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java Thu Mar 18 01:08:25 2010
@@ -32,8 +32,8 @@ import org.apache.wicket.markup.html.lin
 import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.parser.filter.WicketLinkTagHandler;
 import org.apache.wicket.protocol.http.RequestUtils;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.PackageResource;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java Thu Mar 18 01:08:25 2010
@@ -24,8 +24,9 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.UrlDecoder;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
 /**
@@ -51,13 +52,13 @@ public final class RequestUtils
 			final String[] bits = paramTuples[t].split("=");
 			if (bits.length == 2)
 			{
-				params.addNamedParameter(WicketURLDecoder.QUERY_INSTANCE.decode(bits[0],
-					getCurrentCharset()), WicketURLDecoder.QUERY_INSTANCE.decode(bits[1],
+				params.addNamedParameter(UrlDecoder.QUERY_INSTANCE.decode(bits[0],
+					getCurrentCharset()), UrlDecoder.QUERY_INSTANCE.decode(bits[1],
 					getCurrentCharset()));
 			}
 			else
 			{
-				params.addNamedParameter(WicketURLDecoder.QUERY_INSTANCE.decode(bits[0],
+				params.addNamedParameter(UrlDecoder.QUERY_INSTANCE.decode(bits[0],
 					getCurrentCharset()), "");
 			}
 		}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java Thu Mar 18 01:08:25 2010
@@ -49,9 +49,9 @@ import javax.servlet.http.HttpSession;
 import org.apache.wicket.Application;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.mock.MockRequestParameters;
-import org.apache.wicket.protocol.http.WicketURLDecoder;
-import org.apache.wicket.protocol.http.WicketURLEncoder;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.UrlDecoder;
+import org.apache.wicket.request.UrlEncoder;
 import org.apache.wicket.request.Url.QueryParameter;
 import org.apache.wicket.util.file.File;
 import org.apache.wicket.util.io.IOUtils;
@@ -737,13 +737,13 @@ public class MockHttpServletRequest impl
 				final String value = getParameter(name);
 				if (name != null)
 				{
-					buf.append(WicketURLEncoder.QUERY_INSTANCE.encode(name,
+					buf.append(UrlEncoder.QUERY_INSTANCE.encode(name,
 						Charset.forName(getCharacterEncoding())));
 				}
 				buf.append('=');
 				if (value != null)
 				{
-					buf.append(WicketURLEncoder.QUERY_INSTANCE.encode(value,
+					buf.append(UrlEncoder.QUERY_INSTANCE.encode(value,
 						Charset.forName(getCharacterEncoding())));
 				}
 				if (iterator.hasNext())
@@ -1202,7 +1202,7 @@ public class MockHttpServletRequest impl
 	 */
 	public void setPath(final String path)
 	{
-		this.path = WicketURLDecoder.PATH_INSTANCE.decode(path,
+		this.path = UrlDecoder.PATH_INSTANCE.decode(path,
 			Charset.forName(getCharacterEncoding()));
 	}
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/IRequestablePage.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/IRequestablePage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/component/IRequestablePage.java Thu Mar 18 01:08:25 2010
@@ -17,6 +17,7 @@
 package org.apache.wicket.request.component;
 
 import org.apache.wicket.page.IManageablePage;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java Thu Mar 18 01:08:25 2010
@@ -26,17 +26,20 @@ import org.apache.wicket.Session;
 import org.apache.wicket.ThreadContext;
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.request.ClientInfo;
+import org.apache.wicket.request.IExceptionMapper;
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
+import org.apache.wicket.request.RequestHandlerStack;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.UrlRenderer;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.IPageProvider;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.lang.Checks;
 import org.slf4j.Logger;
@@ -316,7 +319,7 @@ public class RequestCycle extends Reques
 	}
 
 	/**
-	 * @see org.apache.wicket.request.cycle.RequestHandlerStack#getRequestCycle()
+	 * @see org.apache.wicket.request.RequestHandlerStack#getRequestCycle()
 	 */
 	@Override
 	protected RequestCycle getRequestCycle()
@@ -419,7 +422,7 @@ public class RequestCycle extends Reques
 	}
 
 	/**
-	 * @see org.apache.wicket.request.cycle.RequestHandlerStack#detach()
+	 * @see org.apache.wicket.request.RequestHandlerStack#detach()
 	 */
 	@Override
 	public void detach()

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycleContext.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycleContext.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycleContext.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/cycle/RequestCycleContext.java Thu Mar 18 01:08:25 2010
@@ -17,6 +17,7 @@
 package org.apache.wicket.request.cycle;
 
 import org.apache.wicket.Response;
+import org.apache.wicket.request.IExceptionMapper;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageClassRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageClassRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageClassRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageClassRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -18,7 +18,7 @@ package org.apache.wicket.request.handle
 
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 /**
  * Request handler that works with page class.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageProvider.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/IPageProvider.java Thu Mar 18 01:08:25 2010
@@ -18,8 +18,8 @@ package org.apache.wicket.request.handle
 
 import org.apache.wicket.protocol.http.PageExpiredException;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.StalePageException;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java Thu Mar 18 01:08:25 2010
@@ -18,7 +18,7 @@ package org.apache.wicket.request.handle
 
 import org.apache.wicket.request.component.IRequestableComponent;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageProvider.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/PageProvider.java Thu Mar 18 01:08:25 2010
@@ -23,9 +23,9 @@ import org.apache.wicket.protocol.http.P
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.IPageSource;
 import org.apache.wicket.request.mapper.StalePageException;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -20,11 +20,11 @@ import org.apache.wicket.RequestListener
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.component.IRequestableComponent;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.IComponentRequestHandler;
 import org.apache.wicket.request.handler.IPageAndComponentProvider;
 import org.apache.wicket.request.handler.IPageRequestHandler;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -18,9 +18,9 @@ package org.apache.wicket.request.handle
 
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.IPageClassRequestHandler;
 import org.apache.wicket.request.handler.IPageProvider;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -23,13 +23,13 @@ import org.apache.wicket.protocol.http.W
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.component.IRequestableComponent;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.IComponentRequestHandler;
 import org.apache.wicket.request.handler.IPageAndComponentProvider;
 import org.apache.wicket.request.handler.IPageRequestHandler;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -20,11 +20,11 @@ import org.apache.wicket.Application;
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.IPageClassRequestHandler;
 import org.apache.wicket.request.handler.IPageProvider;
 import org.apache.wicket.request.handler.IPageRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -20,7 +20,7 @@ import java.util.Locale;
 
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.lang.Checks;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java Thu Mar 18 01:08:25 2010
@@ -18,7 +18,7 @@ package org.apache.wicket.request.handle
 
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.util.lang.Checks;
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java Thu Mar 18 01:08:25 2010
@@ -22,7 +22,6 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
@@ -32,6 +31,7 @@ import org.apache.wicket.request.handler
 import org.apache.wicket.request.mapper.info.ComponentInfo;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.info.PageInfo;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
  * 
  * @author Matej Knopp
  */
-public abstract class AbstractBookmarkableMapper extends AbstractMapper
+public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
 {
 	private static Logger logger = LoggerFactory.getLogger(AbstractBookmarkableMapper.class);
 

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java (from r924086, wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java&r1=924086&r2=924578&rev=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java Thu Mar 18 01:08:25 2010
@@ -19,13 +19,10 @@ package org.apache.wicket.request.mapper
 import org.apache.wicket.Application;
 import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.request.IRequestMapper;
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
-import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
 import org.apache.wicket.util.lang.Checks;
 import org.apache.wicket.util.lang.WicketObjects;
 import org.apache.wicket.util.string.Strings;
@@ -35,12 +32,12 @@ import org.apache.wicket.util.string.Str
  * 
  * @author Matej Knopp
  */
-public abstract class AbstractMapper implements IRequestMapper
+public abstract class AbstractComponentMapper extends AbstractMapper implements IRequestMapper
 {
 	/**
 	 * Construct.
 	 */
-	public AbstractMapper()
+	public AbstractComponentMapper()
 	{
 	}
 
@@ -76,68 +73,6 @@ public abstract class AbstractMapper imp
 	}
 
 	/**
-	 * If the string is in a placeholder format ${key} this method returns the key.
-	 * 
-	 * @param s
-	 * @return placeholder key or <code>null</code> if string is not in right format
-	 */
-	protected static String getPlaceholder(String s)
-	{
-		if (s == null || s.length() < 4 || !s.startsWith("${") || !s.endsWith("}"))
-		{
-			return null;
-		}
-		else
-		{
-			return s.substring(2, s.length() - 1);
-		}
-	}
-
-	/**
-	 * Returns true if the given url starts with specified segments. Segments that contain
-	 * placelhoders are not compared.
-	 * 
-	 * @param url
-	 * @param segments
-	 * @return <code>true</code> if the URL starts with the specified segments, <code>false</code>
-	 *         otherwise
-	 */
-	/*
-	 * TODO its funny to have a dependency in this method on the #getPlaceHolder method because we
-	 * are forcing everyone who extends this to use the ${placeholder} syntax. We should move
-	 * #getPlaceHolder out and rewrite this method to have no dependency on it and match only exact
-	 * paths. The mappers that use the syntax will have to provide their own implementations.
-	 * 
-	 * Either that or have a pluggable placeholder syntax Placeholder { string start, string end}
-	 */
-	protected boolean urlStartsWith(Url url, String... segments)
-	{
-		if (url == null)
-		{
-			return false;
-		}
-		else
-		{
-			if (url.getSegments().size() < segments.length)
-			{
-				return false;
-			}
-			else
-			{
-				for (int i = 0; i < segments.length; ++i)
-				{
-					if (segments[i].equals(url.getSegments().get(i)) == false &&
-						getPlaceholder(segments[i]) == null)
-					{
-						return false;
-					}
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
 	 * Extracts the {@link PageComponentInfo} from the URL. The {@link PageComponentInfo} is encoded
 	 * as the very first query parameter and the parameter consists of name only (no value).
 	 * 
@@ -198,104 +133,4 @@ public abstract class AbstractMapper imp
 
 		return WicketObjects.resolveClass(name);
 	}
-
-	/**
-	 * Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
-	 * 
-	 * @param request
-	 * @param segmentsToSkip
-	 *            how many URL segments should be skipped because they "belong" to the
-	 *            {@link IRequestMapper}
-	 * @param encoder
-	 * @return PageParameters instance
-	 */
-	protected PageParameters extractPageParameters(Request request, int segmentsToSkip,
-		IPageParametersEncoder encoder)
-	{
-		Checks.argumentNotNull(request, "request");
-		Checks.argumentNotNull(encoder, "encoder");
-
-		// strip the segments and first query parameter from URL
-		Url urlCopy = new Url(request.getUrl());
-		while (segmentsToSkip > 0 && urlCopy.getSegments().isEmpty() == false)
-		{
-			urlCopy.getSegments().remove(0);
-			--segmentsToSkip;
-		}
-
-		if (!urlCopy.getQueryParameters().isEmpty() &&
-			Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue()))
-		{
-			urlCopy.getQueryParameters().remove(0);
-		}
-
-		PageParameters decoded = encoder.decodePageParameters(request.requestWithUrl(urlCopy));
-		return decoded;
-	}
-
-	/**
-	 * Encodes the given {@link PageParameters} to the URL using the given
-	 * {@link IPageParametersEncoder}. The original URL object is unchanged.
-	 * 
-	 * @param url
-	 * @param pageParameters
-	 * @param encoder
-	 * @return URL with encoded parameters
-	 */
-	protected Url encodePageParameters(Url url, PageParameters pageParameters,
-		IPageParametersEncoder encoder)
-	{
-		Checks.argumentNotNull(url, "url");
-		Checks.argumentNotNull(encoder, "encoder");
-
-		if (pageParameters == null)
-		{
-			pageParameters = new PageParameters();
-		}
-
-		Url parametersUrl = encoder.encodePageParameters(pageParameters);
-		if (parametersUrl != null)
-		{
-			// copy the url
-			url = new Url(url);
-
-			for (String s : parametersUrl.getSegments())
-			{
-				url.getSegments().add(s);
-			}
-			for (QueryParameter p : parametersUrl.getQueryParameters())
-			{
-				url.getQueryParameters().add(p);
-			}
-		}
-
-		return url;
-	}
-
-	/**
-	 * Convenience method for representing mountPath as array of segments
-	 * 
-	 * @param mountPath
-	 * @return array of path segments
-	 */
-	protected String[] getMountSegments(String mountPath)
-	{
-		if (mountPath.startsWith("/"))
-		{
-			mountPath = mountPath.substring(1);
-		}
-		Url url = Url.parse(mountPath);
-
-		if (url.getSegments().isEmpty())
-		{
-			throw new IllegalArgumentException("Mount path must have at least one segment.");
-		}
-
-		String[] res = new String[url.getSegments().size()];
-		for (int i = 0; i < res.length; ++i)
-		{
-			res[i] = url.getSegments().get(i);
-		}
-		return res;
-	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapper.java Thu Mar 18 01:08:25 2010
@@ -28,7 +28,7 @@ import org.apache.wicket.util.string.Str
  * 
  * @author Matej Knopp
  */
-public abstract class AbstractResourceReferenceMapper extends AbstractMapper
+public abstract class AbstractResourceReferenceMapper extends AbstractComponentMapper
 {
 
 	protected static String encodeResourceReferenceAttributes(

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java Thu Mar 18 01:08:25 2010
@@ -19,10 +19,10 @@ package org.apache.wicket.request.mapper
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
 import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
-import org.apache.wicket.request.mapper.parameters.SimplePageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParametersEncoder;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.lang.WicketObjects;
 
@@ -62,7 +62,7 @@ class BasicResourceReferenceMapper exten
 	 */
 	public BasicResourceReferenceMapper()
 	{
-		this(new SimplePageParametersEncoder());
+		this(new PageParametersEncoder());
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java Thu Mar 18 01:08:25 2010
@@ -19,10 +19,10 @@ package org.apache.wicket.request.mapper
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
-import org.apache.wicket.request.mapper.parameters.SimplePageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParametersEncoder;
 import org.apache.wicket.util.lang.Checks;
 
 /**
@@ -70,7 +70,7 @@ public class BookmarkableMapper extends 
 	 */
 	public BookmarkableMapper()
 	{
-		this(new SimplePageParametersEncoder());
+		this(new PageParametersEncoder());
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/HomePageMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/HomePageMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/HomePageMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/HomePageMapper.java Thu Mar 18 01:08:25 2010
@@ -27,7 +27,7 @@ import org.apache.wicket.request.handler
  * 
  * @author Matej Knopp
  */
-public class HomePageMapper extends AbstractMapper
+public class HomePageMapper extends AbstractComponentMapper
 {
 
 	public int getCompatibilityScore(Request request)

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/IPageSource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/IPageSource.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/IPageSource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/IPageSource.java Thu Mar 18 01:08:25 2010
@@ -17,7 +17,7 @@
 package org.apache.wicket.request.mapper;
 
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 
 /**
  * Interface for objects that are capable of getting and creating page instance.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java Thu Mar 18 01:08:25 2010
@@ -21,10 +21,10 @@ import java.lang.ref.WeakReference;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
-import org.apache.wicket.request.mapper.parameters.SimplePageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
+import org.apache.wicket.request.mapper.parameters.PageParametersEncoder;
 import org.apache.wicket.util.lang.Checks;
 
 /**
@@ -87,7 +87,7 @@ public class MountedMapper extends Abstr
 	 */
 	public MountedMapper(String mountPath, Class<? extends IRequestablePage> pageClass)
 	{
-		this(mountPath, pageClass, new SimplePageParametersEncoder());
+		this(mountPath, pageClass, new PageParametersEncoder());
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/PageInstanceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/PageInstanceMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/PageInstanceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/PageInstanceMapper.java Thu Mar 18 01:08:25 2010
@@ -44,7 +44,7 @@ import org.apache.wicket.request.mapper.
  * 
  * @author Matej Knopp
  */
-public class PageInstanceMapper extends AbstractMapper
+public class PageInstanceMapper extends AbstractComponentMapper
 {
 	/**
 	 * Construct.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java Thu Mar 18 01:08:25 2010
@@ -17,7 +17,7 @@
 package org.apache.wicket.request.mapper;
 
 import org.apache.wicket.request.mapper.parameters.IPageParametersEncoder;
-import org.apache.wicket.request.mapper.parameters.SimplePageParametersEncoder;
+import org.apache.wicket.request.mapper.parameters.PageParametersEncoder;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.NullProvider;
@@ -56,6 +56,6 @@ public class ResourceReferenceMapper ext
 	 */
 	public ResourceReferenceMapper()
 	{
-		this(new SimplePageParametersEncoder(), new NullProvider<String>());
+		this(new PageParametersEncoder(), new NullProvider<String>());
 	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/IResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/IResource.java?rev=924578&r1=924577&r2=924578&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/IResource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/IResource.java Thu Mar 18 01:08:25 2010
@@ -20,8 +20,8 @@ import java.io.Serializable;
 
 import org.apache.wicket.Response;
 import org.apache.wicket.request.Request;
-import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.resource.ResourceRequestHandler;
+import org.apache.wicket.request.mapper.parameters.PageParameters;
 import org.apache.wicket.util.lang.Checks;
 
 /**