Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x 836eb87ee -> 8e1695557
  refs/heads/master 47a0c26d8 -> e4934a3ec


Fixed CamelCatalog to construct endpoint uris for netty endpoints


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e4934a3e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e4934a3e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e4934a3e

Branch: refs/heads/master
Commit: e4934a3ec318b76536b44182bacb9c34cd9270d8
Parents: 47a0c26
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Nov 1 17:36:13 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Nov 1 17:36:13 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/camel/catalog/DefaultCamelCatalog.java    | 6 +++++-
 .../test/java/org/apache/camel/catalog/CamelCatalogTest.java  | 7 +++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e4934a3e/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index ed3837c..59e2ded 100644
--- 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -716,6 +716,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
 
         int range = 0;
         boolean first = true;
+        boolean hasQuestionmark = false;
         for (int i = 0; i < options.size(); i++) {
             String key = options.get(i);
             String key2 = options2.get(i);
@@ -726,6 +727,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
                 if (!first) {
                     sb.append(token);
                 }
+                hasQuestionmark |= token.contains("?") || key.contains("?");
                 sb.append(key2);
                 first = false;
             }
@@ -737,11 +739,13 @@ public class DefaultCamelCatalog implements CamelCatalog {
             String key2 = options2.get(range);
             sb.append(token);
             sb.append(key2);
+            hasQuestionmark |= token.contains("?") || key2.contains("?");
             range++;
         }
 
         if (!copy.isEmpty()) {
-            sb.append('?');
+            // the last option may already contain a ? char, if so we should 
use & instead of ?
+            sb.append(hasQuestionmark ? ampersand : '?');
             String query = createQueryString(copy, ampersand);
             sb.append(query);
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/e4934a3e/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index 98962df..5f0b6bb 100644
--- 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -160,6 +160,13 @@ public class CamelCatalogTest extends TestCase {
 
         String uri = catalog.asEndpointUri("netty4-http", map);
         
assertEquals("netty4-http:http:localhost:8080/foo/bar?disconnect=true", uri);
+
+        // lets set a query parameter in the path
+        map.put("path", "foo/bar?verbose=true");
+        map.put("disconnect", "true");
+
+        uri = catalog.asEndpointUri("netty4-http", map);
+        
assertEquals("netty4-http:http:localhost:8080/foo/bar?verbose=true&disconnect=true",
 uri);
     }
 
     @Test

Reply via email to