Camel catalog - Add api to validate endpoint uri
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5fb9c98b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5fb9c98b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5fb9c98b Branch: refs/heads/camel-2.16.x Commit: 5fb9c98bfece7b276bfb7523fd40f3440eeb75b6 Parents: 46e3e4a Author: Claus Ibsen <[email protected]> Authored: Thu Dec 24 10:17:53 2015 +0100 Committer: Claus Ibsen <[email protected]> Committed: Thu Dec 24 10:18:28 2015 +0100 ---------------------------------------------------------------------- .../camel/catalog/DefaultCamelCatalog.java | 6 ++++++ .../camel/catalog/EndpointValidationResult.java | 19 ++++++++++++++++++- .../apache/camel/catalog/CamelCatalogTest.java | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5fb9c98b/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 92088a1..10dfd96 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 @@ -693,6 +693,12 @@ public class DefaultCamelCatalog implements CamelCatalog { } } } else { + // default value + String defaultValue = getPropertyDefaultValue(rows, name); + if (defaultValue != null) { + result.addDefaultValue(name, defaultValue); + } + // is required but the value is empty boolean required = isPropertyRequired(rows, name); if (required && isEmpty(value)) { http://git-wip-us.apache.org/repos/asf/camel/blob/5fb9c98b/platforms/catalog/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java index 4c03e2f..dba4032 100644 --- a/platforms/catalog/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java +++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java @@ -45,6 +45,7 @@ public class EndpointValidationResult implements Serializable { private Map<String, String> invalidBoolean; private Map<String, String> invalidInteger; private Map<String, String> invalidNumber; + private Map<String, String> defaultValues; public EndpointValidationResult(String uri) { this.uri = uri; @@ -162,6 +163,13 @@ public class EndpointValidationResult implements Serializable { } } + public void addDefaultValue(String name, String value) { + if (defaultValues == null) { + defaultValues = new LinkedHashMap<String, String>(); + } + defaultValues.put(name, value); + } + public String getSyntaxError() { return syntaxError; } @@ -206,6 +214,10 @@ public class EndpointValidationResult implements Serializable { return invalidNumber; } + public Map<String, String> getDefaultValues() { + return defaultValues; + } + /** * A human readable summary of the validation errors. * @@ -243,8 +255,13 @@ public class EndpointValidationResult implements Serializable { if (invalidEnum != null) { for (Map.Entry<String, String> entry : invalidEnum.entrySet()) { String[] choices = invalidEnumChoices.get(entry.getKey()); + String defaultValue = defaultValues != null ? defaultValues.get(entry.getKey()) : null; String str = Arrays.asList(choices).toString(); - options.put(entry.getKey(), "Invalid enum value: " + entry.getValue() + ". Possible values: " + str); + String msg = "Invalid enum value: " + entry.getValue() + ". Possible values: " + str; + if (defaultValue != null) { + msg += ". Default value: " + defaultValue; + } + options.put(entry.getKey(), msg); } } if (invalidReference != null) { http://git-wip-us.apache.org/repos/asf/camel/blob/5fb9c98b/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 e096244..e3c6d0b 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 @@ -407,6 +407,7 @@ public class CamelCatalogTest { result = catalog.validateEndpointProperties("jms:unknown:myqueue"); assertFalse(result.isSuccess()); assertEquals("unknown", result.getInvalidEnum().get("destinationType")); + assertEquals("queue", result.getDefaultValues().get("destinationType")); assertEquals(1, result.getNumberOfErrors()); // reference okay
