Repository: camel Updated Branches: refs/heads/camel-2.16.x 532de5b92 -> 81cf42c8d refs/heads/master bf93058b3 -> 9fae6153a
Camel catalog - Fix asEndpointUri when using placeholders in the syntax part. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9fae6153 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9fae6153 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9fae6153 Branch: refs/heads/master Commit: 9fae6153a751f7379bc2125c120918836c14fc74 Parents: bf93058 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Feb 5 13:01:53 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Feb 5 13:01:53 2016 +0100 ---------------------------------------------------------------------- .../org/apache/camel/catalog/DefaultCamelCatalog.java | 7 +++++++ .../org/apache/camel/catalog/CamelCatalogTest.java | 13 +++++++++++++ 2 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9fae6153/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 b3478cc..47af8b2 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 @@ -1326,11 +1326,18 @@ public class DefaultCamelCatalog implements CamelCatalog { options.add(s); } + // need to preserve {{ and }} from the syntax + // (we need to use words only as its provisional placeholders) + syntax = syntax.replaceAll("\\{\\{", "BEGINCAMELPLACEHOLDER"); + syntax = syntax.replaceAll("\\}\\}", "ENDCAMELPLACEHOLDER"); + // parse the syntax into each options Matcher matcher2 = SYNTAX_PATTERN.matcher(syntax); List<String> options2 = new ArrayList<String>(); while (matcher2.find()) { String s = matcher2.group(1); + s = s.replaceAll("BEGINCAMELPLACEHOLDER", "\\{\\{"); + s = s.replaceAll("ENDCAMELPLACEHOLDER", "\\}\\}"); options2.add(s); } http://git-wip-us.apache.org/repos/asf/camel/blob/9fae6153/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 0589521..ba85f25 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 @@ -343,6 +343,19 @@ public class CamelCatalogTest { } @Test + public void testAsEndpointUriWithplaceholder() throws Exception { + Map<String, String> map = new HashMap<String, String>(); + map.put("query", "{{insert}}"); + assertEquals("sql:{{insert}}", catalog.asEndpointUri("sql", map, false)); + + map.put("useMessageBodyForSql", "true"); + assertEquals("sql:{{insert}}?useMessageBodyForSql=true", catalog.asEndpointUri("sql", map, false)); + + map.put("parametersCount", "{{count}}"); + assertEquals("sql:{{insert}}?parametersCount={{count}}&useMessageBodyForSql=true", catalog.asEndpointUri("sql", map, false)); + } + + @Test public void testEndpointPropertiesJms() throws Exception { Map<String, String> map = catalog.endpointProperties("jms:queue:foo"); assertNotNull(map);