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