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/23 09:44:07 UTC

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

Branch: refs/heads/camel-2.16.x
Commit: c450a474598ffb59746566eb648a15c5684743d6
Parents: 535055b
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Dec 22 10:52:30 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Dec 23 09:43:41 2015 +0100

----------------------------------------------------------------------
 .../camel/catalog/EndpointValidationResult.java | 42 ++++++++++++++++----
 .../apache/camel/catalog/CamelCatalogTest.java  |  9 +++++
 2 files changed, 44 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c450a474/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 ece32b6..8f463fd 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
@@ -29,6 +29,7 @@ import java.util.Set;
 public class EndpointValidationResult implements Serializable {
 
     private final String uri;
+    private int errors;
 
     // component
     private String syntaxError;
@@ -52,6 +53,10 @@ public class EndpointValidationResult implements Serializable {
         return uri;
     }
 
+    public int getNumberOfErrors() {
+        return errors;
+    }
+
     public boolean isSuccess() {
         boolean ok = syntaxError == null && unknownComponent == null
                 && unknown == null && required == null;
@@ -64,31 +69,42 @@ public class EndpointValidationResult implements Serializable {
 
     public void addSyntaxError(String syntaxError) {
         this.syntaxError = syntaxError;
+        errors++;
     }
 
     public void addUnknownComponent(String name) {
         this.unknownComponent = name;
+        errors++;
     }
 
     public void addUnknown(String name) {
         if (unknown == null) {
             unknown = new LinkedHashSet<String>();
         }
-        unknown.add(name);
+        if (!unknown.contains(name)) {
+            unknown.add(name);
+            errors++;
+        }
     }
 
     public void addRequired(String name) {
         if (required == null) {
             required = new LinkedHashSet<String>();
         }
-        required.add(name);
+        if (!required.contains(name)) {
+            required.add(name);
+            errors++;
+        }
     }
 
     public void addInvalidEnum(String name, String value) {
         if (invalidEnum == null) {
             invalidEnum = new LinkedHashMap<String, String>();
         }
-        invalidEnum.put(name, value);
+        if (!invalidEnum.containsKey(name)) {
+            invalidEnum.put(name, value);
+            errors++;
+        }
     }
 
     public void addInvalidEnumChoices(String name, String[] choices) {
@@ -102,28 +118,40 @@ public class EndpointValidationResult implements Serializable {
         if (invalidReference == null) {
             invalidReference = new LinkedHashMap<String, String>();
         }
-        invalidReference.put(name, value);
+        if (!invalidReference.containsKey(name)) {
+            invalidReference.put(name, value);
+            errors++;
+        }
     }
 
     public void addInvalidBoolean(String name, String value) {
         if (invalidBoolean == null) {
             invalidBoolean = new LinkedHashMap<String, String>();
         }
-        invalidBoolean.put(name, value);
+        if (!invalidBoolean.containsKey(name)) {
+            invalidBoolean.put(name, value);
+            errors++;
+        }
     }
 
     public void addInvalidInteger(String name, String value) {
         if (invalidInteger == null) {
             invalidInteger = new LinkedHashMap<String, String>();
         }
-        invalidInteger.put(name, value);
+        if (!invalidInteger.containsKey(name)) {
+            invalidInteger.put(name, value);
+            errors++;
+        }
     }
 
     public void addInvalidNumber(String name, String value) {
         if (invalidNumber == null) {
             invalidNumber = new LinkedHashMap<String, String>();
         }
-        invalidNumber.put(name, value);
+        if (!invalidNumber.containsKey(name)) {
+            invalidNumber.put(name, value);
+            errors++;
+        }
     }
 
     public String getSyntaxError() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c450a474/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 b2fb872..e096244 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
@@ -401,20 +401,24 @@ public class CamelCatalogTest {
         result = catalog.validateEndpointProperties("log:mylog?level=WARN&foo=bar");
         assertFalse(result.isSuccess());
         assertTrue(result.getUnknown().contains("foo"));
+        assertEquals(1, result.getNumberOfErrors());
 
         // enum
         result = catalog.validateEndpointProperties("jms:unknown:myqueue");
         assertFalse(result.isSuccess());
         assertEquals("unknown", result.getInvalidEnum().get("destinationType"));
+        assertEquals(1, result.getNumberOfErrors());
 
         // reference okay
         result = catalog.validateEndpointProperties("jms:queue:myqueue?jmsKeyFormatStrategy=#key");
         assertTrue(result.isSuccess());
+        assertEquals(0, result.getNumberOfErrors());
 
         // reference
         result = catalog.validateEndpointProperties("jms:queue:myqueue?jmsKeyFormatStrategy=key");
         assertFalse(result.isSuccess());
         assertEquals("key", result.getInvalidReference().get("jmsKeyFormatStrategy"));
+        assertEquals(1, result.getNumberOfErrors());
 
         // okay
         result = catalog.validateEndpointProperties("yammer:MESSAGES?accessToken=aaa&consumerKey=bbb&consumerSecret=ccc&useJson=true&initialDelay=500");
@@ -423,6 +427,7 @@ public class CamelCatalogTest {
         // required / boolean / integer
         result = catalog.validateEndpointProperties("yammer:MESSAGES?accessToken=aaa&consumerKey=&useJson=no&initialDelay=five");
         assertFalse(result.isSuccess());
+        assertEquals(4, result.getNumberOfErrors());
         assertTrue(result.getRequired().contains("consumerKey"));
         assertTrue(result.getRequired().contains("consumerSecret"));
         assertEquals("no", result.getInvalidBoolean().get("useJson"));
@@ -431,21 +436,25 @@ public class CamelCatalogTest {
         // okay
         result = catalog.validateEndpointProperties("mqtt:myqtt?reconnectBackOffMultiplier=2.5");
         assertTrue(result.isSuccess());
+        assertEquals(0, result.getNumberOfErrors());
 
         // number
         result = catalog.validateEndpointProperties("mqtt:myqtt?reconnectBackOffMultiplier=five");
         assertFalse(result.isSuccess());
         assertEquals("five", result.getInvalidNumber().get("reconnectBackOffMultiplier"));
+        assertEquals(1, result.getNumberOfErrors());
 
         // unknown component
         result = catalog.validateEndpointProperties("foo:bar?me=you");
         assertFalse(result.isSuccess());
         assertTrue(result.getUnknownComponent().equals("foo"));
+        assertEquals(1, result.getNumberOfErrors());
 
         // invalid boolean but default value
         result = catalog.validateEndpointProperties("log:output?showAll=ggg");
         assertFalse(result.isSuccess());
         assertEquals("ggg", result.getInvalidBoolean().get("showAll"));
+        assertEquals(1, result.getNumberOfErrors());
     }
 
     @Test