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");