You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/10/30 21:16:11 UTC

svn commit: r590423 - in /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request: ./ target/coding/ target/component/

Author: jcompagner
Date: Tue Oct 30 13:16:10 2007
New Revision: 590423

URL: http://svn.apache.org/viewvc?rev=590423&view=rev
Log:
extra fix for stateless urls on not stateless pages.
Now the bookmarkablelistenerinterfacerequest will try to resolve the page from the session before creating a new one

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java Tue Oct 30 13:16:10 2007
@@ -238,7 +238,8 @@
 				{
 					return new BookmarkableListenerInterfaceRequestTarget(requestParameters
 							.getPageMapName(), pageClass, params, requestParameters
-							.getComponentPath(), requestParameters.getInterfaceName());
+							.getComponentPath(), requestParameters.getInterfaceName(),
+							requestParameters.getVersionNumber());
 				}
 			}
 			else

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java Tue Oct 30 13:16:10 2007
@@ -62,7 +62,7 @@
 			throw new IllegalArgumentException("Argument bookmarkablePageClass must be not null");
 		}
 
-		this.bookmarkablePageClassRef = new WeakReference(bookmarkablePageClass);
+		bookmarkablePageClassRef = new WeakReference(bookmarkablePageClass);
 		this.pageMapName = pageMapName;
 	}
 
@@ -97,7 +97,8 @@
 			WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, requestParameters);
 			return new BookmarkableListenerInterfaceRequestTarget(pageMapName,
 					(Class)bookmarkablePageClassRef.get(), parameters, requestParameters
-							.getComponentPath(), requestParameters.getInterfaceName());
+							.getComponentPath(), requestParameters.getInterfaceName(),
+					requestParameters.getVersionNumber());
 		}
 		else
 		{
@@ -145,13 +146,13 @@
 			IBookmarkablePageRequestTarget target = (IBookmarkablePageRequestTarget)requestTarget;
 			if (((Class)bookmarkablePageClassRef.get()).equals(target.getPageClass()))
 			{
-				if (this.pageMapName == null)
+				if (pageMapName == null)
 				{
 					return true;
 				}
 				else
 				{
-					return this.pageMapName.equals(target.getPageMapName());
+					return pageMapName.equals(target.getPageMapName());
 				}
 			}
 		}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java Tue Oct 30 13:16:10 2007
@@ -186,7 +186,7 @@
 			WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, requestParameters);
 			return new BookmarkableListenerInterfaceRequestTarget(pageMapName, (Class)pageClassRef
 					.get(), parameters, requestParameters.getComponentPath(), requestParameters
-					.getInterfaceName());
+					.getInterfaceName(), requestParameters.getVersionNumber());
 		}
 		else if (pageId == null)
 		{

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java Tue Oct 30 13:16:10 2007
@@ -118,7 +118,7 @@
 			WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, requestParameters);
 			return new BookmarkableListenerInterfaceRequestTarget(pageMapName,
 					bookmarkablePageClass, parameters, requestParameters.getComponentPath(),
-					requestParameters.getInterfaceName());
+					requestParameters.getInterfaceName(), requestParameters.getVersionNumber());
 		}
 		else
 		{

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java Tue Oct 30 13:16:10 2007
@@ -153,7 +153,8 @@
 		{
 			return new BookmarkableListenerInterfaceRequestTarget(pageMapName,
 					(Class)bookmarkablePageClassRef.get(), parameters, requestParameters
-							.getComponentPath(), requestParameters.getInterfaceName());
+							.getComponentPath(), requestParameters.getInterfaceName(),
+					requestParameters.getVersionNumber());
 		}
 		else
 		{

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java Tue Oct 30 13:16:10 2007
@@ -21,6 +21,7 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.Session;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
 import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -36,6 +37,7 @@
 {
 	private final String componentPath;
 	private final String interfaceName;
+	private final int versionNumber;
 
 	/**
 	 * This constructor is called when a stateless link is clicked on but the page wasn't found in
@@ -47,13 +49,16 @@
 	 * @param pageParameters
 	 * @param componentPath
 	 * @param interfaceName
+	 * @param versionNumber
 	 */
 	public BookmarkableListenerInterfaceRequestTarget(String pageMapName, Class pageClass,
-			PageParameters pageParameters, String componentPath, String interfaceName)
+			PageParameters pageParameters, String componentPath, String interfaceName,
+			int versionNumber)
 	{
 		super(pageMapName, pageClass, pageParameters);
 		this.componentPath = componentPath;
 		this.interfaceName = interfaceName;
+		this.versionNumber = versionNumber;
 	}
 
 	/**
@@ -73,7 +78,7 @@
 			RequestListenerInterface listenerInterface)
 	{
 		this(pageMapName, pageClass, pageParameters, component.getPath(), listenerInterface
-				.getName());
+				.getName(), component.getPage().getCurrentVersionNumber());
 
 		int version = component.getPage().getCurrentVersionNumber();
 
@@ -107,7 +112,15 @@
 
 	public void processEvents(RequestCycle requestCycle)
 	{
-		Page page = getPage(requestCycle);
+		Page page = getPage();
+		if (page == null)
+		{
+			page = Session.get().getPage(getPageMapName(), componentPath, -1);
+			if (page == null)
+			{
+				page = getPage(requestCycle);
+			}
+		}
 		final String pageRelativeComponentPath = Strings.afterFirstPathComponent(componentPath,
 				Component.PATH_SEPARATOR);
 		Component component = page.get(pageRelativeComponentPath);