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 2008/11/26 20:13:44 UTC

svn commit: r720949 - in /wicket/trunk/wicket/src/main/java/org/apache/wicket: protocol/http/request/ request/target/coding/ util/string/

Author: ivaynberg
Date: Wed Nov 26 11:13:44 2008
New Revision: 720949

URL: http://svn.apache.org/viewvc?rev=720949&view=rev
Log:
WICKET-1920

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IRequestTargetUrlCodingStrategy.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/Strings.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=720949&r1=720948&r2=720949&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java Wed Nov 26 11:13:44 2008
@@ -1083,7 +1083,7 @@
 				if (path.startsWith(key))
 				{
 					IRequestTargetUrlCodingStrategy strategy = entry.getValue();
-					if (strategy.matches(path))
+					if (strategy.matches(path, caseSensitiveMounts))
 					{
 						return strategy;
 					}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java?rev=720949&r1=720948&r2=720949&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java Wed Nov 26 11:13:44 2008
@@ -251,11 +251,14 @@
 	 * not /mount/pointXXX.
 	 * 
 	 * @param path
+	 * @param caseSensitive
+	 *            whether the strategy should treat <code>path</code> argument with case sensitivity
+	 *            or not
 	 * @return true if matches, false otherwise
 	 */
-	public boolean matches(String path)
+	public boolean matches(String path, boolean caseSensitive)
 	{
-		if (path.startsWith(mountPath))
+		if (Strings.startsWith(path, mountPath, caseSensitive))
 		{
 			/*
 			 * We need to match /mount/point or /mount/point/with/extra/path, but not

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java?rev=720949&r1=720948&r2=720949&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java Wed Nov 26 11:13:44 2008
@@ -75,12 +75,12 @@
 		boolean redirectOnBookmarkableRequest)
 	{
 		super(mountPath);
-		
+
 		if (mountPath.endsWith("/"))
 		{
 			throw new IllegalArgumentException("mountPath can not end with a '/': " + mountPath);
 		}
-		
+
 		pageClassRef = new WeakReference(pageClass);
 		this.redirectOnBookmarkableRequest = redirectOnBookmarkableRequest;
 	}
@@ -280,7 +280,7 @@
 		{
 			ListenerInterfaceRequestTarget target = (ListenerInterfaceRequestTarget)requestTarget;
 			Page page = target.getPage();
-			return (Integer)page.getMetaData(ORIGINAL_TRAILING_SLASHES_COUNT_METADATA_KEY);
+			return page.getMetaData(ORIGINAL_TRAILING_SLASHES_COUNT_METADATA_KEY);
 		}
 		return null;
 	}
@@ -361,7 +361,7 @@
 	 */
 	public static PageParameters getInitialPagePageParameters(Page page)
 	{
-		return (PageParameters)page.getMetaData(PAGE_PARAMETERS_META_DATA_KEY);
+		return page.getMetaData(PAGE_PARAMETERS_META_DATA_KEY);
 	}
 
 	/**
@@ -882,7 +882,7 @@
 	 * @see org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy#matches(java.lang.String)
 	 */
 	@Override
-	public boolean matches(String path)
+	public boolean matches(String path, boolean caseSensitive)
 	{
 		RequestCycle rc = RequestCycle.get();
 
@@ -894,7 +894,7 @@
 			return false;
 		}
 
-		if (path.startsWith(getMountPath()))
+		if (Strings.startsWith(path, getMountPath(), caseSensitive))
 		{
 			/*
 			 * We need to match /mount/point or /mount/point/with/extra/path, but not

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IRequestTargetUrlCodingStrategy.java?rev=720949&r1=720948&r2=720949&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IRequestTargetUrlCodingStrategy.java Wed Nov 26 11:13:44 2008
@@ -68,7 +68,10 @@
 	 * Returns true if this mounter is applicable for the URL path
 	 * 
 	 * @param path
-	 * @return
+	 * @param caseSensitive
+	 *            whether the strategy should treat <code>path</code> argument with case sensitivity
+	 *            or not
+	 * @return true if this strategy matches the path
 	 */
-	boolean matches(String path);
+	boolean matches(String path, boolean caseSensitive);
 }
\ No newline at end of file

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/Strings.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/Strings.java?rev=720949&r1=720948&r2=720949&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/Strings.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/Strings.java Wed Nov 26 11:13:44 2008
@@ -1375,6 +1375,25 @@
 
 	}
 
+	/**
+	 * Extended {@link String#startsWith(String)} with support for case sensitivity
+	 * 
+	 * @param str
+	 * @param prefix
+	 * @param caseSensitive
+	 * @return <code>true</code> if <code>str</code> starts with <code>prefix</code>
+	 */
+	public static boolean startsWith(String str, String prefix, boolean caseSensitive)
+	{
+		if (caseSensitive)
+		{
+			return str.startsWith(prefix);
+		}
+		else
+		{
+			return str.toLowerCase().startsWith(prefix.toLowerCase());
+		}
+	}
 
 	/**
 	 * Private constructor prevents construction.