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 [EMAIL PROTECTED] 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.


Reply via email to