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 2016/01/03 15:28:23 UTC

[1/9] camel git commit: Camel docs - Add missing option

Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x 9248691dc -> 671246577
  refs/heads/master e49eb8f4e -> effc3f294


Camel docs - Add missing option


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f630a872
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f630a872
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f630a872

Branch: refs/heads/master
Commit: f630a8725564caa916b6c676914d357de07866bc
Parents: e49eb8f
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:04:04 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:04:04 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/component/timer/TimerComponent.java |  1 +
 .../apache/camel/component/timer/TimerEndpoint.java  | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f630a872/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
index 567bc40..cb6fca5 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
@@ -108,6 +108,7 @@ public class TimerComponent extends UriEndpointComponent {
             }
             Date date = sdf.parse(time);
             answer.setTime(date);
+            answer.setPattern(pattern);
         }
 
         setProperties(answer, parameters);

http://git-wip-us.apache.org/repos/asf/camel/blob/f630a872/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index 4b0c6b4..8d63aa2 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -53,9 +53,11 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
     private boolean fixedRate;
     @UriParam(defaultValue = "true", label = "advanced")
     private boolean daemon = true;
-    @UriParam(label = "advanced")
+    @UriParam(label = "advanced", javaType = "java.lang.String")
     private Date time;
     @UriParam(label = "advanced")
+    private String pattern;
+    @UriParam(label = "advanced")
     private Timer timer;
 
     public TimerEndpoint() {
@@ -208,6 +210,17 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
         this.time = time;
     }
 
+    public String getPattern() {
+        return pattern;
+    }
+
+    /**
+     * Allows you to specify a custom Date pattern to use for setting the time option using URI syntax.
+     */
+    public void setPattern(String pattern) {
+        this.pattern = pattern;
+    }
+
     public Timer getTimer(TimerConsumer consumer) {
         if (timer != null) {
             // use custom timer


[4/9] camel git commit: Camel catalog - Improved validation error summary

Posted by da...@apache.org.
Camel catalog - Improved validation error summary


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/67124657
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/67124657
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/67124657

Branch: refs/heads/camel-2.16.x
Commit: 671246577c952e08fe0c013ffa89b4f156aed319
Parents: 9248691
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:18:54 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:19:43 2016 +0100

----------------------------------------------------------------------
 .../camel/catalog/EndpointValidationResult.java | 30 ++++++++++++++++----
 1 file changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/67124657/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 54c8b6a..5ae61b6 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
@@ -23,6 +23,8 @@ import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import static org.apache.camel.catalog.URISupport.isEmpty;
+
 /**
  * Details result of validating endpoint uri.
  */
@@ -271,26 +273,44 @@ public class EndpointValidationResult implements Serializable {
         }
         if (invalidReference != null) {
             for (Map.Entry<String, String> entry : invalidReference.entrySet()) {
-                if (!entry.getValue().startsWith("#")) {
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty reference value");
+                } else if (!entry.getValue().startsWith("#")) {
                     options.put(entry.getKey(), "Invalid reference value: " + entry.getValue() + " must start with #");
                 } else {
-                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue() + " must not be empty");
+                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue());
                 }
             }
         }
         if (invalidBoolean != null) {
             for (Map.Entry<String, String> entry : invalidBoolean.entrySet()) {
-                options.put(entry.getKey(), "Invalid boolean value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty boolean value");
+                } else {
+                    options.put(entry.getKey(), "Invalid boolean value: " + entry.getValue());
+                }
             }
         }
         if (invalidInteger != null) {
             for (Map.Entry<String, String> entry : invalidInteger.entrySet()) {
-                options.put(entry.getKey(), "Invalid integer value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty integer value");
+                } else {
+                    options.put(entry.getKey(), "Invalid integer value: " + entry.getValue());
+                }
             }
         }
         if (invalidNumber != null) {
             for (Map.Entry<String, String> entry : invalidNumber.entrySet()) {
-                options.put(entry.getKey(), "Invalid number value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty number value");
+                } else {
+                    options.put(entry.getKey(), "Invalid number value: " + entry.getValue());
+                }
             }
         }
 


[7/9] camel git commit: CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.

Posted by da...@apache.org.
CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/946ed735
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/946ed735
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/946ed735

Branch: refs/heads/master
Commit: 946ed7357daa98a392c5f2fb9b8f18c35e299c6e
Parents: 3c782db
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 15:00:11 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 15:00:42 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/catalog/DefaultCamelCatalog.java  | 15 ++++-----------
 .../org/apache/camel/catalog/JSonSchemaHelper.java | 17 ++++++++---------
 2 files changed, 12 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/946ed735/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 1c70f40..a4e638a 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
@@ -47,13 +47,13 @@ import static org.apache.camel.catalog.JSonSchemaHelper.getNames;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyDefaultValue;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyEnum;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyKind;
-import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyOptionalPrefix;
 import static org.apache.camel.catalog.JSonSchemaHelper.getRow;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyBoolean;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyInteger;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyNumber;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyObject;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyRequired;
+import static org.apache.camel.catalog.JSonSchemaHelper.stripOptionalPrefixFromName;
 import static org.apache.camel.catalog.URISupport.createQueryString;
 import static org.apache.camel.catalog.URISupport.isEmpty;
 import static org.apache.camel.catalog.URISupport.normalizeUri;
@@ -753,21 +753,14 @@ public class DefaultCamelCatalog implements CamelCatalog {
         // validate all the options
         for (Map.Entry<String, String> property : properties.entrySet()) {
             String name = property.getKey();
-            String optionalPrefix = getPropertyOptionalPrefix(rows, name);
+            // the name may be using an optional prefix, so lets strip that because the options
+            // in the schema are listed without the prefix
+            name = stripOptionalPrefixFromName(rows, name);
             String value = property.getValue();
             boolean placeholder = value.startsWith("{{") || value.startsWith("${") || value.startsWith("$simple{");
             boolean lookup = value.startsWith("#") && value.length() > 1;
 
             Map<String, String> row = getRow(rows, name);
-
-            // maybe the name was using an optional prefix, and if so then lookup without the prefix
-            if (row == null && !isEmpty(optionalPrefix)) {
-                if (name.startsWith(optionalPrefix)) {
-                    name = name.substring(optionalPrefix.length());
-                }
-                row = getRow(rows, name);
-            }
-
             if (row == null) {
                 // unknown option
                 result.addUnknown(name);

http://git-wip-us.apache.org/repos/asf/camel/blob/946ed735/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
index bbfe7c1..2293a7a 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
@@ -233,7 +233,7 @@ public final class JSonSchemaHelper {
         return null;
     }
 
-    public static String getPropertyOptionalPrefix(List<Map<String, String>> rows, String name) {
+    public static String stripOptionalPrefixFromName(List<Map<String, String>> rows, String name) {
         for (Map<String, String> row : rows) {
             String optionalPrefix = null;
             boolean found = false;
@@ -241,20 +241,19 @@ public final class JSonSchemaHelper {
                 optionalPrefix = row.get("optionalPrefix");
             }
             if (row.containsKey("name")) {
-                String key = name;
-                if (optionalPrefix != null && key.startsWith(optionalPrefix)) {
-                    key = key.substring(optionalPrefix.length());
-                    // found the optional prefix so remove it from the key, and lookup again
-                    return getPropertyOptionalPrefix(rows, key);
+                if (optionalPrefix != null && name.startsWith(optionalPrefix)) {
+                    name = name.substring(optionalPrefix.length());
+                    // try again
+                    return stripOptionalPrefixFromName(rows, name);
                 } else {
-                    found = key.equals(row.get("name"));
+                    found = name.equals(row.get("name"));
                 }
             }
             if (found) {
-                return optionalPrefix;
+                return name;
             }
         }
-        return null;
+        return name;
     }
 
     public static String getPropertyEnum(List<Map<String, String>> rows, String name) {


[6/9] camel git commit: CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.

Posted by da...@apache.org.
CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3c782dbf
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3c782dbf
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3c782dbf

Branch: refs/heads/master
Commit: 3c782dbf12c7c8e9a8c799e94907562630711ea3
Parents: 2124507
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:54:35 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:54:35 2016 +0100

----------------------------------------------------------------------
 .../camel/catalog/DefaultCamelCatalog.java      | 11 +++++++++
 .../apache/camel/catalog/JSonSchemaHelper.java  | 24 ++++++++++++++++++++
 .../apache/camel/catalog/CamelCatalogTest.java  | 12 ++++++++++
 3 files changed, 47 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/3c782dbf/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 b8dcc92..1c70f40 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
@@ -47,6 +47,7 @@ import static org.apache.camel.catalog.JSonSchemaHelper.getNames;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyDefaultValue;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyEnum;
 import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyKind;
+import static org.apache.camel.catalog.JSonSchemaHelper.getPropertyOptionalPrefix;
 import static org.apache.camel.catalog.JSonSchemaHelper.getRow;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyBoolean;
 import static org.apache.camel.catalog.JSonSchemaHelper.isPropertyInteger;
@@ -752,11 +753,21 @@ public class DefaultCamelCatalog implements CamelCatalog {
         // validate all the options
         for (Map.Entry<String, String> property : properties.entrySet()) {
             String name = property.getKey();
+            String optionalPrefix = getPropertyOptionalPrefix(rows, name);
             String value = property.getValue();
             boolean placeholder = value.startsWith("{{") || value.startsWith("${") || value.startsWith("$simple{");
             boolean lookup = value.startsWith("#") && value.length() > 1;
 
             Map<String, String> row = getRow(rows, name);
+
+            // maybe the name was using an optional prefix, and if so then lookup without the prefix
+            if (row == null && !isEmpty(optionalPrefix)) {
+                if (name.startsWith(optionalPrefix)) {
+                    name = name.substring(optionalPrefix.length());
+                }
+                row = getRow(rows, name);
+            }
+
             if (row == null) {
                 // unknown option
                 result.addUnknown(name);

http://git-wip-us.apache.org/repos/asf/camel/blob/3c782dbf/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
index a4b27df..bbfe7c1 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
@@ -233,6 +233,30 @@ public final class JSonSchemaHelper {
         return null;
     }
 
+    public static String getPropertyOptionalPrefix(List<Map<String, String>> rows, String name) {
+        for (Map<String, String> row : rows) {
+            String optionalPrefix = null;
+            boolean found = false;
+            if (row.containsKey("optionalPrefix")) {
+                optionalPrefix = row.get("optionalPrefix");
+            }
+            if (row.containsKey("name")) {
+                String key = name;
+                if (optionalPrefix != null && key.startsWith(optionalPrefix)) {
+                    key = key.substring(optionalPrefix.length());
+                    // found the optional prefix so remove it from the key, and lookup again
+                    return getPropertyOptionalPrefix(rows, key);
+                } else {
+                    found = key.equals(row.get("name"));
+                }
+            }
+            if (found) {
+                return optionalPrefix;
+            }
+        }
+        return null;
+    }
+
     public static String getPropertyEnum(List<Map<String, String>> rows, String name) {
         for (Map<String, String> row : rows) {
             String enums = null;

http://git-wip-us.apache.org/repos/asf/camel/blob/3c782dbf/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 cefa765..0b8923f 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
@@ -468,6 +468,18 @@ public class CamelCatalogTest {
         // reference lookup
         result = catalog.validateEndpointProperties("timer://foo?fixedRate=#fixed&delay=#myDelay");
         assertTrue(result.isSuccess());
+
+        // optional consumer. prefix
+        result = catalog.validateEndpointProperties("file:inbox?consumer.delay=5000&consumer.greedy=true");
+        assertTrue(result.isSuccess());
+
+        // optional without consumer. prefix
+        result = catalog.validateEndpointProperties("file:inbox?delay=5000&greedy=true");
+        assertTrue(result.isSuccess());
+
+        // mixed optional without consumer. prefix
+        result = catalog.validateEndpointProperties("file:inbox?delay=5000&consumer.greedy=true");
+        assertTrue(result.isSuccess());
     }
 
     @Test


[2/9] camel git commit: Camel docs - Add missing option

Posted by da...@apache.org.
Camel docs - Add missing option


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/467b3dc6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/467b3dc6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/467b3dc6

Branch: refs/heads/master
Commit: 467b3dc64a6c5907934ed231e1fe3994b860d1be
Parents: f630a87
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:10:06 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:10:06 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/component/timer/TimerEndpoint.java | 2 +-
 .../java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java  | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/467b3dc6/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index 8d63aa2..9473bc7 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -53,7 +53,7 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
     private boolean fixedRate;
     @UriParam(defaultValue = "true", label = "advanced")
     private boolean daemon = true;
-    @UriParam(label = "advanced", javaType = "java.lang.String")
+    @UriParam(label = "advanced")
     private Date time;
     @UriParam(label = "advanced")
     private String pattern;

http://git-wip-us.apache.org/repos/asf/camel/blob/467b3dc6/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
index 686f8d6..f892093 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -131,6 +132,8 @@ public final class JsonSchemaHelper {
             return "string";
         } else if (type.equals(File.class.getName())) {
             return "string";
+        } else if (type.equals(Date.class.getName())) {
+            return "string";
         } else if (type.startsWith("java.lang.Class")) {
             return "string";
         } else if (type.startsWith("java.util.List") || type.startsWith("java.util.Collection")) {


[5/9] camel git commit: CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.

Posted by da...@apache.org.
CAMEL-9470: Component docs - Some options support using an optional prefix such as consumer.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/21245070
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/21245070
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/21245070

Branch: refs/heads/master
Commit: 21245070d3575af7269f794c6840319b9e1f9841
Parents: 4b27324
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:39:27 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:39:27 2016 +0100

----------------------------------------------------------------------
 .../camel/impl/ScheduledPollEndpoint.java       | 30 ++++++++++----------
 .../camel/tools/apt/EipAnnotationProcessor.java |  2 +-
 .../tools/apt/EndpointAnnotationProcessor.java  | 16 ++++++++---
 .../tools/apt/helper/JsonSchemaHelper.java      |  9 +++++-
 .../camel/tools/apt/model/EndpointOption.java   |  9 +++++-
 .../tools/apt/EndpointOptionComparatorTest.java |  8 +++---
 .../java/org/apache/camel/spi/UriParam.java     |  7 +++++
 7 files changed, 55 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
index 28d438a..48420a4 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
@@ -44,41 +44,41 @@ public abstract class ScheduledPollEndpoint extends DefaultEndpoint {
     private static final String QUARTZ_2_SCHEDULER = "org.apache.camel.pollconsumer.quartz2.QuartzScheduledPollConsumerScheduler";
 
     // if adding more options then align with org.apache.camel.impl.ScheduledPollConsumer
-    @UriParam(defaultValue = "true", label = "consumer,scheduler", description = "Whether the scheduler should be auto started.")
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "true", label = "consumer,scheduler", description = "Whether the scheduler should be auto started.")
     private boolean startScheduler = true;
-    @UriParam(defaultValue = "1000", label = "consumer,scheduler", description = "Milliseconds before the first poll starts.")
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "1000", label = "consumer,scheduler", description = "Milliseconds before the first poll starts.")
     private long initialDelay = 1000;
-    @UriParam(defaultValue = "500", label = "consumer,scheduler", description = "Milliseconds before the next poll.")
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "500", label = "consumer,scheduler", description = "Milliseconds before the next poll.")
     private long delay = 500;
-    @UriParam(defaultValue = "MILLISECONDS", label = "consumer,scheduler", description = "Time unit for initialDelay and delay options.")
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "MILLISECONDS", label = "consumer,scheduler", description = "Time unit for initialDelay and delay options.")
     private TimeUnit timeUnit = TimeUnit.MILLISECONDS;
-    @UriParam(defaultValue = "true", label = "consumer,scheduler", description = "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details.")
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "true", label = "consumer,scheduler", description = "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details.")
     private boolean useFixedDelay = true;
-    @UriParam(label = "consumer,advanced", description = "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation"
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,advanced", description = "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation"
             + " to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel.")
     private PollingConsumerPollStrategy pollStrategy = new DefaultPollingConsumerPollStrategy();
-    @UriParam(defaultValue = "TRACE", label = "consumer,scheduler",
+    @UriParam(optionalPrefix = "consumer.", defaultValue = "TRACE", label = "consumer,scheduler",
             description = "The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that.")
     private LoggingLevel runLoggingLevel = LoggingLevel.TRACE;
-    @UriParam(label = "consumer", description = "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead.")
+    @UriParam(optionalPrefix = "consumer.", label = "consumer", description = "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead.")
     private boolean sendEmptyMessageWhenIdle;
-    @UriParam(label = "consumer,scheduler", description = "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages.")
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler", description = "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages.")
     private boolean greedy;
-    @UriParam(enums = "none,spring,quartz2", defaultValue = "none", label = "consumer,scheduler", description = "To use a cron scheduler from either camel-spring or camel-quartz2 component")
+    @UriParam(optionalPrefix = "consumer.", enums = "none,spring,quartz2", defaultValue = "none", label = "consumer,scheduler", description = "To use a cron scheduler from either camel-spring or camel-quartz2 component")
     private ScheduledPollConsumerScheduler scheduler;
     private String schedulerName = "none"; // used when configuring scheduler using a string value
-    @UriParam(label = "consumer,scheduler", description = "To configure additional properties when using a custom scheduler or any of the Quartz2, Spring based scheduler.")
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler", description = "To configure additional properties when using a custom scheduler or any of the Quartz2, Spring based scheduler.")
     private Map<String, Object> schedulerProperties;
-    @UriParam(label = "consumer,scheduler",
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler",
             description = "Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool.")
     private ScheduledExecutorService scheduledExecutorService;
-    @UriParam(label = "consumer,scheduler", description = "To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row."
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler", description = "To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row."
             + " The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again."
             + " When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured.")
     private int backoffMultiplier;
-    @UriParam(label = "consumer,scheduler", description = "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in.")
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler", description = "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in.")
     private int backoffIdleThreshold;
-    @UriParam(label = "consumer,scheduler", description = "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in.")
+    @UriParam(optionalPrefix = "consumer.", label = "consumer,scheduler", description = "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in.")
     private int backoffErrorThreshold;
 
     protected ScheduledPollEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
index e817d64..294804c 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
@@ -207,7 +207,7 @@ public class EipAnnotationProcessor extends AbstractAnnotationProcessor {
             String doc = entry.getDocumentation();
             doc = sanitizeDescription(doc, false);
             buffer.append(JsonSchemaHelper.toJson(entry.getName(), entry.getKind(), entry.isRequired(), entry.getType(), entry.getDefaultValue(), doc,
-                    entry.isDeprecated(), null, null, entry.isEnumType(), entry.getEnums(), entry.isOneOf(), entry.getOneOfTypes()));
+                    entry.isDeprecated(), null, null, entry.isEnumType(), entry.getEnums(), entry.isOneOf(), entry.getOneOfTypes(), null));
         }
         buffer.append("\n  }");
 

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index fc55db8..3dc29af 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -249,8 +249,11 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
                 defaultValue = "false";
             }
 
+            // component options do not have optional prefix
+            String optionalPrefix = "";
+
             buffer.append(JsonSchemaHelper.toJson(entry.getName(), "property", required, entry.getType(), defaultValue, doc,
-                    entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null));
+                    entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null, optionalPrefix));
         }
         buffer.append("\n  },");
 
@@ -294,8 +297,11 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
                 defaultValue = "false";
             }
 
+            // @UriPath options do not have optional prefix
+            String optionalPrefix = "";
+
             buffer.append(JsonSchemaHelper.toJson(entry.getName(), "path", required, entry.getType(), defaultValue, doc,
-                    entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null));
+                    entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null, optionalPrefix));
         }
 
         // sort the endpoint options in the standard order we prefer
@@ -334,9 +340,10 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
                 // fallback as false for boolean types
                 defaultValue = "false";
             }
+            String optionalPrefix = entry.getOptionalPrefix();
 
             buffer.append(JsonSchemaHelper.toJson(entry.getName(), "parameter", required, entry.getType(), defaultValue,
-                    doc, entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null));
+                    doc, entry.isDeprecated(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), entry.getEnums(), false, null, optionalPrefix));
         }
         buffer.append("\n  }");
 
@@ -665,6 +672,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
                     }
                     name = prefix + name;
 
+                    String optionalPrefix = param.optionalPrefix();
                     String defaultValue = param.defaultValue();
                     if (defaultValue == null && metadata != null) {
                         defaultValue = metadata.defaultValue();
@@ -729,7 +737,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
 
                         String group = EndpointHelper.labelAsGroupName(label, componentModel.isConsumerOnly(), componentModel.isProducerOnly());
                         EndpointOption option = new EndpointOption(name, fieldTypeName, required, defaultValue, defaultValueNote,
-                                docComment.trim(), deprecated, group, label, isEnum, enums);
+                                docComment.trim(), optionalPrefix, deprecated, group, label, isEnum, enums);
                         endpointOptions.add(option);
                     }
                 }

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
index f892093..51cf907 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
@@ -41,7 +41,8 @@ public final class JsonSchemaHelper {
     }
 
     public static String toJson(String name, String kind, Boolean required, String type, String defaultValue, String description,
-                                Boolean deprecated, String group, String label, boolean enumType, Set<String> enums, boolean oneOfType, Set<String> oneOffTypes) {
+                                Boolean deprecated, String group, String label, boolean enumType, Set<String> enums,
+                                boolean oneOfType, Set<String> oneOffTypes, String optionalPrefix) {
         String typeName = JsonSchemaHelper.getType(type, enumType);
 
         StringBuilder sb = new StringBuilder();
@@ -95,6 +96,12 @@ public final class JsonSchemaHelper {
             sb.append(", \"javaType\": \"" + type + "\"");
         }
 
+        if (!Strings.isNullOrEmpty(optionalPrefix)) {
+            sb.append(", \"optionalPrefix\": ");
+            String text = safeDefaultValue(optionalPrefix);
+            sb.append(Strings.doubleQuote(text));
+        }
+
         if (deprecated != null) {
             sb.append(", \"deprecated\": ");
             sb.append(Strings.doubleQuote(deprecated.toString()));

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
index 2755167..3a367cf 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
@@ -30,6 +30,7 @@ public final class EndpointOption {
     private String defaultValue;
     private String defaultValueNote;
     private String documentation;
+    private String optionalPrefix;
     private boolean deprecated;
     private String group;
     private String label;
@@ -37,13 +38,15 @@ public final class EndpointOption {
     private Set<String> enums;
 
     public EndpointOption(String name, String type, String required, String defaultValue, String defaultValueNote,
-                          String documentation, boolean deprecated,  String group, String label, boolean enumType, Set<String> enums) {
+                          String documentation, String optionalPrefix, boolean deprecated,  String group, String label,
+                          boolean enumType, Set<String> enums) {
         this.name = name;
         this.type = type;
         this.required = required;
         this.defaultValue = defaultValue;
         this.defaultValueNote = defaultValueNote;
         this.documentation = documentation;
+        this.optionalPrefix = optionalPrefix;
         this.deprecated = deprecated;
         this.group = group;
         this.label = label;
@@ -71,6 +74,10 @@ public final class EndpointOption {
         return documentation;
     }
 
+    public String getOptionalPrefix() {
+        return optionalPrefix;
+    }
+
     public boolean isDeprecated() {
         return deprecated;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/apt/src/test/java/org/apache/camel/tools/apt/EndpointOptionComparatorTest.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/test/java/org/apache/camel/tools/apt/EndpointOptionComparatorTest.java b/tooling/apt/src/test/java/org/apache/camel/tools/apt/EndpointOptionComparatorTest.java
index ceb834f..3d4a4fe 100644
--- a/tooling/apt/src/test/java/org/apache/camel/tools/apt/EndpointOptionComparatorTest.java
+++ b/tooling/apt/src/test/java/org/apache/camel/tools/apt/EndpointOptionComparatorTest.java
@@ -39,10 +39,10 @@ public class EndpointOptionComparatorTest {
         String group3 = EndpointHelper.labelAsGroupName(label3, false, false);
         String group4 = EndpointHelper.labelAsGroupName(label4, false, false);
 
-        EndpointOption op1 = new EndpointOption("first", "string", "true", "", "", "blah", false, group1, label1, false, null);
-        EndpointOption op2 = new EndpointOption("synchronous", "string", "true", "", "", "blah", false, group2, label2, false, null);
-        EndpointOption op3 = new EndpointOption("second", "string", "true", "", "", "blah", false, group3, label3, false, null);
-        EndpointOption op4 = new EndpointOption("country", "string", "true", "", "", "blah", false, group4, label4, false, null);
+        EndpointOption op1 = new EndpointOption("first", "string", "true", "", "", "blah", null, false, group1, label1, false, null);
+        EndpointOption op2 = new EndpointOption("synchronous", "string", "true", "", "", "blah", null, false, group2, label2, false, null);
+        EndpointOption op3 = new EndpointOption("second", "string", "true", "", "", "blah", null, false, group3, label3, false, null);
+        EndpointOption op4 = new EndpointOption("country", "string", "true", "", "", "blah", null, false, group4, label4, false, null);
 
         List<EndpointOption> list = new ArrayList<EndpointOption>();
         list.add(op1);

http://git-wip-us.apache.org/repos/asf/camel/blob/21245070/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriParam.java
----------------------------------------------------------------------
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriParam.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriParam.java
index 59e4bcd..ef45b2f 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriParam.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriParam.java
@@ -84,4 +84,11 @@ public @interface UriParam {
      */
     String javaType() default "";
 
+    /**
+     * If the parameter can be configured with an optional prefix.
+     * <p/>
+     * For example to configure consumer options, the parameters can be prefixed with <tt>consumer.</tt>, eg <tt>consumer.delay=5000</tt>
+     */
+    String optionalPrefix() default "";
+
 }
\ No newline at end of file


[3/9] camel git commit: Camel catalog - Improved validation error summary

Posted by da...@apache.org.
Camel catalog - Improved validation error summary


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4b273246
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4b273246
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4b273246

Branch: refs/heads/master
Commit: 4b2732468f82362322fd3f39fe2844da42186a03
Parents: 467b3dc
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 14:18:54 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 14:18:54 2016 +0100

----------------------------------------------------------------------
 .../camel/catalog/EndpointValidationResult.java | 30 ++++++++++++++++----
 1 file changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4b273246/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 54c8b6a..5ae61b6 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
@@ -23,6 +23,8 @@ import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import static org.apache.camel.catalog.URISupport.isEmpty;
+
 /**
  * Details result of validating endpoint uri.
  */
@@ -271,26 +273,44 @@ public class EndpointValidationResult implements Serializable {
         }
         if (invalidReference != null) {
             for (Map.Entry<String, String> entry : invalidReference.entrySet()) {
-                if (!entry.getValue().startsWith("#")) {
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty reference value");
+                } else if (!entry.getValue().startsWith("#")) {
                     options.put(entry.getKey(), "Invalid reference value: " + entry.getValue() + " must start with #");
                 } else {
-                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue() + " must not be empty");
+                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue());
                 }
             }
         }
         if (invalidBoolean != null) {
             for (Map.Entry<String, String> entry : invalidBoolean.entrySet()) {
-                options.put(entry.getKey(), "Invalid boolean value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty boolean value");
+                } else {
+                    options.put(entry.getKey(), "Invalid boolean value: " + entry.getValue());
+                }
             }
         }
         if (invalidInteger != null) {
             for (Map.Entry<String, String> entry : invalidInteger.entrySet()) {
-                options.put(entry.getKey(), "Invalid integer value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty integer value");
+                } else {
+                    options.put(entry.getKey(), "Invalid integer value: " + entry.getValue());
+                }
             }
         }
         if (invalidNumber != null) {
             for (Map.Entry<String, String> entry : invalidNumber.entrySet()) {
-                options.put(entry.getKey(), "Invalid number value: " + entry.getValue());
+                boolean empty = isEmpty(entry.getValue());
+                if (empty) {
+                    options.put(entry.getKey(), "Empty number value");
+                } else {
+                    options.put(entry.getKey(), "Invalid number value: " + entry.getValue());
+                }
             }
         }
 


[9/9] camel git commit: CAMEL-9470: Add missing errorHandler (consumer) option to component docs

Posted by da...@apache.org.
CAMEL-9470: Add missing errorHandler (consumer) option to component docs


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/effc3f29
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/effc3f29
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/effc3f29

Branch: refs/heads/master
Commit: effc3f294f569858efdf57b35b8526a4377f4c68
Parents: bfc39e0
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 15:21:59 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 15:22:34 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultEndpoint.java  | 28 +++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/effc3f29/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
index 0bf9e74..cf6461e 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.PollingConsumer;
 import org.apache.camel.ResolveEndpointFailedException;
+import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.HasId;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.ServiceSupport;
@@ -61,8 +62,12 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
     private Component component;
     @UriParam(label = "consumer", optionalPrefix = "consumer.", description = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while"
                     + " the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler."
-                    + " By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions,that by default will be logged at WARN/ERROR level and ignored.")
+                    + " By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN/ERROR level and ignored.")
     private boolean bridgeErrorHandler;
+    @UriParam(label = "consumer,advanced", optionalPrefix = "consumer.", description = "To let the consumer use a custom ExceptionHandler."
+            + " Notice if the option bridgeErrorHandler is enabled then this options is not in use."
+            + " By default the consumer will deal with exceptions, that will be logged at WARN/ERROR level and ignored.")
+    private ExceptionHandler exceptionHandler;
     @UriParam(defaultValue = "InOnly", label = "advanced",
             description = "Sets the default exchange pattern when creating an exchange")
     private ExchangePattern exchangePattern = ExchangePattern.InOnly;
@@ -291,12 +296,25 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
      * handled by the routing Error Handler.
      * <p/>
      * By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions,
-     * that by default will be logged at WARN/ERROR level and ignored.
+     * that will be logged at WARN/ERROR level and ignored.
      */
     public void setBridgeErrorHandler(boolean bridgeErrorHandler) {
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
+    public ExceptionHandler getExceptionHandler() {
+        return exceptionHandler;
+    }
+
+    /**
+     * To let the consumer use a custom ExceptionHandler.
+     + Notice if the option bridgeErrorHandler is enabled then this options is not in use.
+     + By default the consumer will deal with exceptions, that will be logged at WARN/ERROR level and ignored.
+     */
+    public void setExceptionHandler(ExceptionHandler exceptionHandler) {
+        this.exceptionHandler = exceptionHandler;
+    }
+
     /**
      * Gets the {@link org.apache.camel.PollingConsumer} queue size, when {@link org.apache.camel.impl.EventDrivenPollingConsumer}
      * is being used. Notice some Camel components may have their own implementation of {@link org.apache.camel.PollingConsumer} and
@@ -496,10 +514,14 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
 
     @Override
     protected void doStart() throws Exception {
-        // the bridgeErrorHandler was orignally configured as consumer.bridgeErrorHandler so map to that style
+        // the bridgeErrorHandler/exceptionHandler was originally configured with consumer. prefix, such as consumer.bridgeErrorHandler=true
+        // so if they have been configured on the endpoint then map to the old naming style
         if (bridgeErrorHandler) {
             getConsumerProperties().put("bridgeErrorHandler", "true");
         }
+        if (exceptionHandler != null) {
+            getConsumerProperties().put("exceptionHandler", exceptionHandler);
+        }
     }
 
     @Override


[8/9] camel git commit: CAMEL-9470: Add missing bridgeErrorHandler option to component docs

Posted by da...@apache.org.
CAMEL-9470: Add missing bridgeErrorHandler option to component docs


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bfc39e0b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bfc39e0b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bfc39e0b

Branch: refs/heads/master
Commit: bfc39e0b996a308ac98e2c4e1e276d7efbe5c163
Parents: 946ed73
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 15:12:54 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 15:12:54 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultEndpoint.java  | 25 +++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/bfc39e0b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
index 24d7f6e..0bf9e74 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
@@ -59,6 +59,10 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
     private EndpointConfiguration endpointConfiguration;
     private CamelContext camelContext;
     private Component component;
+    @UriParam(label = "consumer", optionalPrefix = "consumer.", description = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while"
+                    + " the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler."
+                    + " By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions,that by default will be logged at WARN/ERROR level and ignored.")
+    private boolean bridgeErrorHandler;
     @UriParam(defaultValue = "InOnly", label = "advanced",
             description = "Sets the default exchange pattern when creating an exchange")
     private ExchangePattern exchangePattern = ExchangePattern.InOnly;
@@ -277,6 +281,22 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
         this.synchronous = synchronous;
     }
 
+    public boolean isBridgeErrorHandler() {
+        return bridgeErrorHandler;
+    }
+
+    /**
+     * Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while
+     * the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and
+     * handled by the routing Error Handler.
+     * <p/>
+     * By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions,
+     * that by default will be logged at WARN/ERROR level and ignored.
+     */
+    public void setBridgeErrorHandler(boolean bridgeErrorHandler) {
+        this.bridgeErrorHandler = bridgeErrorHandler;
+    }
+
     /**
      * Gets the {@link org.apache.camel.PollingConsumer} queue size, when {@link org.apache.camel.impl.EventDrivenPollingConsumer}
      * is being used. Notice some Camel components may have their own implementation of {@link org.apache.camel.PollingConsumer} and
@@ -476,7 +496,10 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
 
     @Override
     protected void doStart() throws Exception {
-        // noop
+        // the bridgeErrorHandler was orignally configured as consumer.bridgeErrorHandler so map to that style
+        if (bridgeErrorHandler) {
+            getConsumerProperties().put("bridgeErrorHandler", "true");
+        }
     }
 
     @Override