Author: hiranya
Date: Wed Jan 18 14:36:13 2012
New Revision: 1232907

URL: http://svn.apache.org/viewvc?rev=1232907&view=rev
Log:
Fixing an issue in the URLMappingBasedDispatcher - URL paths with query params 
are not properly matched

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/rest/dispatch/URLMappingHelper.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/rest/URLMappingBasedDispatcherTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/rest/dispatch/URLMappingHelper.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/rest/dispatch/URLMappingHelper.java?rev=1232907&r1=1232906&r2=1232907&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/rest/dispatch/URLMappingHelper.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/rest/dispatch/URLMappingHelper.java
 Wed Jan 18 14:36:13 2012
@@ -63,6 +63,10 @@ public class URLMappingHelper implements
             }
 
             url = RESTUtils.trimSlashes(url);
+            int index = url.indexOf('?');
+            if (index != -1) {
+                url = url.substring(0, index);
+            }
             String[] segments = url.split("/");
             int matchingLength = 0;
             for (int i = 0; i < pathSegments.length; i++) {

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/rest/URLMappingBasedDispatcherTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/rest/URLMappingBasedDispatcherTest.java?rev=1232907&r1=1232906&r2=1232907&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/rest/URLMappingBasedDispatcherTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/rest/URLMappingBasedDispatcherTest.java
 Wed Jan 18 14:36:13 2012
@@ -71,6 +71,22 @@ public class URLMappingBasedDispatcherTe
         handler.process(synCtx);
         assertEquals(PROP_VALUE, synCtx.getProperty(PROP_NAME));
 
+        synCtx = getMessageContext(synapseConfig, false, "/test/foo/bar?a=b", 
"GET");
+        handler.process(synCtx);
+        assertEquals(PROP_VALUE, synCtx.getProperty(PROP_NAME));
+
+        synCtx = getMessageContext(synapseConfig, false, 
"/test/foo/bar/baz?a=b", "GET");
+        handler.process(synCtx);
+        assertEquals(PROP_VALUE, synCtx.getProperty(PROP_NAME));
+
+        synCtx = getMessageContext(synapseConfig, false, "/test/foo/bar/?a=b", 
"GET");
+        handler.process(synCtx);
+        assertEquals(PROP_VALUE, synCtx.getProperty(PROP_NAME));
+
+        synCtx = getMessageContext(synapseConfig, false, "/test/foo/bars?a=b", 
"GET");
+        handler.process(synCtx);
+        assertNull(synCtx.getProperty(PROP_NAME));
+
         synCtx = getMessageContext(synapseConfig, false, "/test/foo/", "GET");
         handler.process(synCtx);
         assertNull(synCtx.getProperty(PROP_NAME));


Reply via email to