Fixed CamelCatalog to construct endpoint uris for timer endpoints
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/999fe637 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/999fe637 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/999fe637 Branch: refs/heads/camel-2.16.x Commit: 999fe637b9794ce9a56a1bbf45ab105e29066518 Parents: 8e16955 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Nov 3 15:57:58 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Nov 3 15:58:41 2015 +0100 ---------------------------------------------------------------------- .../apache/camel/catalog/DefaultCamelCatalog.java | 16 +++++++++++----- .../org/apache/camel/catalog/CamelCatalogTest.java | 10 ++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/999fe637/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 59e2ded..5374194 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 @@ -720,14 +720,17 @@ public class DefaultCamelCatalog implements CamelCatalog { for (int i = 0; i < options.size(); i++) { String key = options.get(i); String key2 = options2.get(i); - String token = tokens[i]; + String token = null; + if (tokens.length > i) { + token = tokens[i]; + } // was the option provided? if (properties.containsKey(key)) { - if (!first) { + if (!first && token != null) { sb.append(token); } - hasQuestionmark |= token.contains("?") || key.contains("?"); + hasQuestionmark |= key.contains("?") || (token != null && token.contains("?")); sb.append(key2); first = false; } @@ -735,11 +738,14 @@ public class DefaultCamelCatalog implements CamelCatalog { } // append any extra options that was in surplus for the last while (range < options2.size()) { - String token = tokens[range]; + String token = null; + if (tokens.length > range) { + token = tokens[range]; + } String key2 = options2.get(range); sb.append(token); sb.append(key2); - hasQuestionmark |= token.contains("?") || key2.contains("?"); + hasQuestionmark |= key2.contains("?") || (token != null && token.contains("?")); range++; } http://git-wip-us.apache.org/repos/asf/camel/blob/999fe637/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 5f0b6bb..4b8dc31 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 @@ -170,6 +170,16 @@ public class CamelCatalogTest extends TestCase { } @Test + public void testAsEndpointUriTimer() throws Exception { + Map<String, String> map = new HashMap<String, String>(); + map.put("timerName", "foo"); + map.put("period", "5000"); + + String uri = catalog.asEndpointUri("timer", map); + assertEquals("timer:foo?period=5000", uri); + } + + @Test public void testAsEndpointUriMapJmsRequiredOnly() throws Exception { Map<String, String> map = new HashMap<String, String>(); map.put("destinationName", "foo");