CAMEL-8509: camel-catalog - Add api to parse endpoint uri and reverse

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

Branch: refs/heads/camel-2.15.x
Commit: d98526b731c6aa3ce8efb3d0d9dc30d2270358b3
Parents: f2f46fa
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Mar 26 17:29:54 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Mar 26 17:30:13 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/catalog/DefaultCamelCatalog.java  | 11 +++++++++++
 .../org/apache/camel/catalog/CamelCatalogTest.java     | 13 ++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d98526b7/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 cd4a11b..2ea2d56 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
@@ -662,6 +662,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
 
         // build the endpoint
         StringBuilder sb = new StringBuilder();
+        int range = 0;
         for (int i = 0; i < options.size(); i++) {
             String key = options.get(i);
             String key2 = options2.get(i);
@@ -672,7 +673,17 @@ public class DefaultCamelCatalog implements CamelCatalog {
                 sb.append(token);
                 sb.append(key2);
             }
+            range++;
         }
+        // append any extra options that was in surplus for the last
+        while (range < options2.size()) {
+            String token = tokens[range];
+            String key2 = options2.get(range);
+            sb.append(token);
+            sb.append(key2);
+            range++;
+        }
+
         if (!copy.isEmpty()) {
             sb.append('?');
             String query = createQueryString(copy);

http://git-wip-us.apache.org/repos/asf/camel/blob/d98526b7/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 6f9f510..0f1b4d0 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
@@ -92,7 +92,18 @@ public class CamelCatalogTest extends TestCase {
     }
 
     @Test
-    public void testAsEndpointUriMap() throws Exception {
+    public void testAsEndpointUriMapFile() throws Exception {
+        Map<String, String> map = new HashMap<String, String>();
+        map.put("directoryName", "src/data/inbox");
+        map.put("noop", "true");
+        map.put("delay", "5000");
+
+        String uri = catalog.asEndpointUri("file", map);
+        assertEquals("file:src/data/inbox?delay=5000&noop=true", uri);
+    }
+
+    @Test
+    public void testAsEndpointUriMapFtp() throws Exception {
         Map<String, String> map = new HashMap<String, String>();
         map.put("host", "someserver");
         map.put("port", "21");

Reply via email to