You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/12/21 13:43:01 UTC

[7/8] camel git commit: Camel catalog - Add api to validate endpoint uri

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/521424b7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/521424b7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/521424b7

Branch: refs/heads/camel-2.16.x
Commit: 521424b7cadde6e76ebd77470624e9c4a561f473
Parents: 7caf775
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Dec 20 15:59:02 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Dec 21 13:42:38 2015 +0100

----------------------------------------------------------------------
 .../apache/camel/catalog/DefaultCamelCatalog.java |  4 +++-
 .../apache/camel/catalog/ValidationResult.java    | 18 ++++++++++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/521424b7/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 2580536..efb5db4 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
@@ -691,8 +691,9 @@ public class DefaultCamelCatalog implements CamelCatalog {
                 // but we can only check if the value is not a placeholder
                 String enums = getPropertyEnum(rows, name);
                 if (!placeholder && enums != null) {
+                    String[] choices = enums.split(",");
                     boolean found = false;
-                    for (String s : enums.split(",")) {
+                    for (String s : choices) {
                         if (value.equalsIgnoreCase(s)) {
                             found = true;
                             break;
@@ -700,6 +701,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
                     }
                     if (!found) {
                         result.addInvalidEnum(name, value);
+                        result.addInvalidEnumChoices(name, choices);
                     }
                 }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/521424b7/platforms/catalog/src/main/java/org/apache/camel/catalog/ValidationResult.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/ValidationResult.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/ValidationResult.java
index 4450133..40aacb3 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/ValidationResult.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/ValidationResult.java
@@ -17,11 +17,15 @@
 package org.apache.camel.catalog;
 
 import java.io.Serializable;
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+/**
+ * Details result of validating endpoint uri.
+ */
 public class ValidationResult implements Serializable {
 
     private final String uri;
@@ -34,6 +38,7 @@ public class ValidationResult implements Serializable {
     private Set<String> unknown;
     private Set<String> required;
     private Map<String, String> invalidEnum;
+    private Map<String, String[]> invalidEnumChoices;
     private Map<String, String> invalidBoolean;
     private Map<String, String> invalidInteger;
     private Map<String, String> invalidNumber;
@@ -44,7 +49,7 @@ public class ValidationResult implements Serializable {
 
     public boolean isSuccess() {
         return syntaxError == null && unknownComponent == null
-                && unknown == null && required == null && invalidEnum == null
+                && unknown == null && required == null && invalidEnum == null && invalidEnumChoices == null
                 && invalidBoolean == null && invalidInteger == null && invalidNumber == null;
     }
 
@@ -77,6 +82,13 @@ public class ValidationResult implements Serializable {
         invalidEnum.put(name, value);
     }
 
+    public void addInvalidEnumChoices(String name, String[] choices) {
+        if (invalidEnumChoices == null) {
+            invalidEnumChoices = new LinkedHashMap<String, String[]>();
+        }
+        invalidEnumChoices.put(name, choices);
+    }
+
     public void addInvalidBoolean(String name, String value) {
         if (invalidBoolean == null) {
             invalidBoolean = new LinkedHashMap<String, String>();;
@@ -160,7 +172,9 @@ public class ValidationResult implements Serializable {
         }
         if (invalidEnum != null) {
             for (Map.Entry<String, String> entry : invalidEnum.entrySet()) {
-                options.put(entry.getKey(), "Invalid enum value: " + entry.getValue());
+                String[] choices = invalidEnumChoices.get(entry.getKey());
+                String str = Arrays.asList(choices).toString();
+                options.put(entry.getKey(), "Invalid enum value: " + entry.getValue() + ". Possible values: " + str);
             }
         }
         if (invalidBoolean != null) {