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 2009/04/06 13:30:33 UTC

svn commit: r762285 - in /wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket: ./ request/encoder/ request/encoder/parameters/ request/handler/

Author: knopp
Date: Mon Apr  6 11:30:32 2009
New Revision: 762285

URL: http://svn.apache.org/viewvc?rev=762285&view=rev
Log: (empty)

Modified:
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/BookmarkableEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/MountedEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/ResourceReferenceEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/PageParametersEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/SimplePageParametersEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java Mon Apr  6 11:30:32 2009
@@ -310,7 +310,6 @@
 				}
 				;
 			}
-			;
 			set(null);
 		}
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java Mon Apr  6 11:30:32 2009
@@ -21,11 +21,11 @@
 import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.RequestHandlerEncoder;
-import org.apache.wicket.request.RequestParameters;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
 import org.apache.wicket.request.encoder.info.PageComponentInfo;
 import org.apache.wicket.request.encoder.parameters.PageParametersEncoder;
+import org.apache.wicket.request.request.Request;
 import org.apache.wicket.util.lang.Check;
 import org.apache.wicket.util.lang.Classes;
 import org.apache.wicket.util.string.Strings;
@@ -180,22 +180,21 @@
 	/**
 	 * Extracts {@link PageParameters} from the URL using the given {@link PageParametersEncoder}.
 	 * 
-	 * @param url
-	 * @param requestParameters
+	 * @param request
 	 * @param segmentsToSkip
 	 *            how many URL segments should be skipped because they "belong" to the
 	 *            {@link RequestHandlerEncoder}
 	 * @param encoder
 	 * @return PageParameters instance
 	 */
-	protected PageParameters extractPageParameters(Url url, RequestParameters requestParameters, int segmentsToSkip,
+	protected PageParameters extractPageParameters(Request request, int segmentsToSkip,
 			PageParametersEncoder encoder)
 	{
-		Check.argumentNotNull(url, "url");
+		Check.argumentNotNull(request, "request");
 		Check.argumentNotNull(encoder, "encoder");
 		
 		// strip the segments and first query parameter from URL
-		Url urlCopy = new Url(url);
+		Url urlCopy = new Url(request.getUrl());
 		while (segmentsToSkip > 0 && urlCopy.getSegments().isEmpty() == false)
 		{
 			urlCopy.getSegments().remove(0);
@@ -207,7 +206,7 @@
 			urlCopy.getQueryParameters().remove(0);
 		}
 
-		PageParameters decoded = encoder.decodePageParameters(urlCopy, requestParameters);
+		PageParameters decoded = encoder.decodePageParameters(request.requestWithUrl(urlCopy));
 		return decoded != null ? decoded : new PageParameters();
 	}
 

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/BookmarkableEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/BookmarkableEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/BookmarkableEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/BookmarkableEncoder.java Mon Apr  6 11:30:32 2009
@@ -102,8 +102,7 @@
 			Class<? extends IPage> pageClass = getPageClass(className);
 
 			// extract the PageParameters from URL if there are any
-			PageParameters pageParameters = extractPageParameters(url,
-				request.getRequestParameters(), 3, pageParametersEncoder);
+			PageParameters pageParameters = extractPageParameters(request, 3, pageParametersEncoder);
 
 			return new UrlInfo(info, pageClass, pageParameters);
 		}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/MountedEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/MountedEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/MountedEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/MountedEncoder.java Mon Apr  6 11:30:32 2009
@@ -59,7 +59,6 @@
 	/** bookmarkable page class. */
 	protected final WeakReference<Class<? extends IPage>> pageClass;
 
-
 	/**
 	 * Construct.
 	 * 
@@ -68,7 +67,7 @@
 	 * @param pageParametersEncoder
 	 */
 	public MountedEncoder(String mountPath, Class<? extends IPage> pageClass,
-		PageParametersEncoder pageParametersEncoder)
+			PageParametersEncoder pageParametersEncoder)
 	{
 		Check.argumentNotEmpty(mountPath, "mountPath");
 		Check.argumentNotNull(pageClass, "pageClass");
@@ -104,8 +103,7 @@
 			return info;
 		}
 		// check if the URL is long enough and starts with the proper segments
-		else if (url.getSegments().size() >= mountSegments.length &&
-			urlStartsWith(url, mountSegments))
+		else if (url.getSegments().size() >= mountSegments.length && urlStartsWith(url, mountSegments))
 		{
 			// try to extract page and component information from URL
 			PageComponentInfo info = getPageComponentInfo(url);
@@ -113,8 +111,7 @@
 			Class<? extends IPage> pageClass = this.pageClass.get();
 
 			// extract the PageParameters from URL if there are any
-			PageParameters pageParameters = extractPageParameters(url,
-				request.getRequestParameters(), mountSegments.length, pageParametersEncoder);
+			PageParameters pageParameters = extractPageParameters(request, mountSegments.length, pageParametersEncoder);
 
 			// check if there are placeholders in mount segments
 			for (int i = 0; i < mountSegments.length; ++i)
@@ -186,9 +183,9 @@
 	}
 
 	/**
-	 * If this method returns <code>true</code> and application home page class is same as the
-	 * class mounted with this encoder, request to home page will result in a redirect to the
-	 * mounted path.
+	 * If this method returns <code>true</code> and application home page class is same as the class
+	 * mounted with this encoder, request to home page will result in a redirect to the mounted
+	 * path.
 	 * 
 	 * @return whether this encode should respond to home page request when home page class is same
 	 *         as mounted class.
@@ -215,7 +212,7 @@
 			return 0;
 		}
 	}
-	
+
 	@Override
 	protected boolean checkPageClass(Class<? extends IPage> pageClass)
 	{

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/ResourceReferenceEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/ResourceReferenceEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/ResourceReferenceEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/ResourceReferenceEncoder.java Mon Apr  6 11:30:32 2009
@@ -33,6 +33,7 @@
  * {@link ResourceReference}s.
  * <p>
  * Decodes and encodes the following URLs:
+ * 
  * <pre>
  *    /wicket/resource/org.apache.wicket.ResourceScope/name
  *    /wicket/resource/org.apache.wicket.ResourceScope/name?en
@@ -67,8 +68,8 @@
 	public RequestHandler decode(Request request)
 	{
 		Url url = request.getUrl();
-		if (url.getSegments().size() >= 4 &&
-			urlStartsWith(url, getContext().getNamespace(), getContext().getResourceIdentifier()))
+		if (url.getSegments().size() >= 4
+				&& urlStartsWith(url, getContext().getNamespace(), getContext().getResourceIdentifier()))
 		{
 			String className = url.getSegments().get(2);
 			StringBuilder name = new StringBuilder();
@@ -84,22 +85,21 @@
 			ResourceReferenceAttributes attributes = getResourceReferenceAttributes(url);
 
 			// extract the PageParameters from URL if there are any
-			PageParameters pageParameters = extractPageParameters(url,
-				request.getRequestParameters(), url.getSegments().size(), pageParametersEncoder);
+			PageParameters pageParameters = extractPageParameters(request, url.getSegments().size(),
+					pageParametersEncoder);
 
 			Class<?> scope = resolveClass(className);
 			if (scope != null)
 			{
-				ResourceReference res = getContext().getResourceReferenceRegistry()
-					.getResourceReference(scope, name.toString(), attributes.locale,
-						attributes.style, false);
+				ResourceReference res = getContext().getResourceReferenceRegistry().getResourceReference(scope,
+						name.toString(), attributes.locale, attributes.style, false);
 				if (res != null)
 				{
 					Resource resource = res.getResource();
 					if (resource != null)
 					{
-						ResourceRequestHandler handler = new ResourceRequestHandler(resource,
-							attributes.locale, attributes.style, pageParameters);
+						ResourceRequestHandler handler = new ResourceRequestHandler(resource, attributes.locale,
+								attributes.style, pageParameters);
 						return handler;
 					}
 				}
@@ -122,7 +122,7 @@
 	{
 		if (requestHandler instanceof ResourceReferenceRequestHandler)
 		{
-			ResourceReferenceRequestHandler referenceRequestHandler = (ResourceReferenceRequestHandler)requestHandler;
+			ResourceReferenceRequestHandler referenceRequestHandler = (ResourceReferenceRequestHandler) requestHandler;
 			ResourceReference reference = referenceRequestHandler.getResourceReference();
 			Url url = new Url();
 			url.getSegments().add(getContext().getNamespace());

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/PageParametersEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/PageParametersEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/PageParametersEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/PageParametersEncoder.java Mon Apr  6 11:30:32 2009
@@ -18,8 +18,8 @@
 
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.request.RequestHandler;
-import org.apache.wicket.request.RequestParameters;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.request.Request;
 
 /**
  * Encoder that can encode and decode {@link PageParameters} to/from URL.
@@ -41,11 +41,8 @@
 	 * Decodes the given URL to {@link PageParameters}. The URL will have all
 	 * {@link RequestHandler} specified segments/parameters stripped.
 	 * 
-	 * @param url
-	 * @param parameters
-	 *            provides all request (GET and POST) parameters. Some encoders might require the
-	 *            POST parameters which are not part of the URL
+	 * @param request
 	 * @return {@link PageParameters} instance
 	 */
-	public PageParameters decodePageParameters(Url url, RequestParameters parameters);
+	public PageParameters decodePageParameters(Request requuest);
 }

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/SimplePageParametersEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/SimplePageParametersEncoder.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/SimplePageParametersEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/parameters/SimplePageParametersEncoder.java Mon Apr  6 11:30:32 2009
@@ -19,9 +19,9 @@
 import java.util.List;
 
 import org.apache.wicket.PageParameters;
-import org.apache.wicket.request.RequestParameters;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
+import org.apache.wicket.request.request.Request;
 import org.apache.wicket.util.string.StringValue;
 
 /**
@@ -38,18 +38,18 @@
 	{
 	}
 
-	public PageParameters decodePageParameters(Url url, RequestParameters requestParameters)
+	public PageParameters decodePageParameters(Request request)
 	{
 		PageParameters parameters = new PageParameters();
 		
 		int i = 0;
-		for (String s : url.getSegments())
+		for (String s : request.getUrl().getSegments())
 		{
 			parameters.setIndexedParameter(i, s);
 			++i;
 		}
 		
-		for (QueryParameter p : url.getQueryParameters())
+		for (QueryParameter p : request.getUrl().getQueryParameters())
 		{
 			parameters.addNamedParameter(p.getName(), p.getValue());
 		}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java?rev=762285&r1=762284&r2=762285&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java Mon Apr  6 11:30:32 2009
@@ -201,7 +201,7 @@
 		IPage page = null;
 
 		boolean freshCreated = false;
-		
+
 		if (pageId != null)
 		{
 			page = pageSource.getPageInstance(pageId);
@@ -267,12 +267,17 @@
 	private void setPageParameters(PageParameters pageParameters)
 	{
 		Check.argumentNotNull(pageParameters, "pageParameters");
-				
+
 		this.pageParameters = pageParameters;
 	}
-	
+
 	private void touchPageInstance()
 	{
-		Application.get().getPageManager().touchPage(pageInstance);
+		// If there is application accessible from current thread touch
+		// the page instance
+		if (Application.exists())
+		{
+			Application.get().getPageManager().touchPage(pageInstance);
+		}
 	}
 }