You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/11/01 17:34:00 UTC

[2/2] camel git commit: Fixed CamelCatalog to construct endpoint uris for netty endpoints

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/8e169555
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8e169555
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8e169555

Branch: refs/heads/camel-2.16.x
Commit: 8e169555793de37d48cf11b130ad446fb42c569d
Parents: 836eb87
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Nov 1 17:36:13 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Nov 1 17:36:59 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/8e169555/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/8e169555/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