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

Reply via email to