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 2022/12/13 11:37:21 UTC
[camel] 01/07: CAMEL-18748: camel-yaml-dsl - error-handler should be aligned to camel-core-model to be consistent.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit d55f547233982ace56ee043afc1eb797e3c76076
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 13 11:24:43 2022 +0100
CAMEL-18748: camel-yaml-dsl - error-handler should be aligned to camel-core-model to be consistent.
---
.../org/apache/camel/catalog/models.properties | 1 +
.../camel/catalog/models/refErrorHandler.json | 8 +-
.../apache/camel/catalog/schemas/camel-spring.xsd | 22 +++---
.../org/apache/camel/jta/JtaTransactionPolicy.java | 6 +-
.../camel/spring/spi/SpringTransactionPolicy.java | 6 +-
.../services/org/apache/camel/model.properties | 2 +-
.../org/apache/camel/model/errorhandler/jaxb.index | 2 +-
.../camel/model/errorhandler/refErrorHandler.json | 8 +-
.../camel/builder/RefErrorHandlerBuilder.java | 4 +-
.../org/apache/camel/builder/RouteBuilder.java | 4 +-
.../camel/model/RouteConfigurationDefinition.java | 4 +-
.../org/apache/camel/model/RouteDefinition.java | 8 +-
.../model/errorhandler/ErrorHandlerHelper.java | 10 +--
...inition.java => RefErrorHandlerDefinition.java} | 12 +--
.../errorhandler/ErrorHandlerRefReifier.java | 6 +-
.../reifier/errorhandler/ErrorHandlerReifier.java | 4 +-
.../core/xml/AbstractCamelContextFactoryBean.java | 4 +-
.../builder/RouteTemplateErrorHandlerTest.java | 6 +-
...ExceptionErrorHandlerRefIssueTwoRoutesTest.java | 6 +-
...HandledRouteScopedErrorHandlerRefIssueTest.java | 4 +-
...ceptionRouteScopedErrorHandlerRefIssueTest.java | 4 +-
.../java/org/apache/camel/xml/in/ModelParser.java | 18 ++---
.../dsl/yaml/deserializers/ModelDeserializers.java | 90 +++++++++++-----------
.../deserializers/ModelDeserializersResolver.java | 6 +-
.../ErrorHandlerBuilderDeserializer.java | 39 +++++++---
.../generated/resources/schema/camel-yaml-dsl.json | 14 +++-
.../generated/resources/schema/camelYamlDsl.json | 14 +++-
.../apache/camel/dsl/yaml/ErrorHandlerTest.groovy | 50 +++++++-----
28 files changed, 199 insertions(+), 163 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
index 7f67f88211a..021211ec614 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
@@ -125,6 +125,7 @@ random
recipientList
redeliveryPolicy
ref
+refErrorHandler
removeHeader
removeHeaders
removeProperties
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
similarity index 75%
rename from core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json
rename to catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
index b1cc07bde2a..1ed161c24a1 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
@@ -1,12 +1,12 @@
{
"model": {
"kind": "model",
- "name": "errorHandlerRef",
- "title": "Error Handler Ref",
- "description": "Dead letter channel error handler.",
+ "name": "refErrorHandler",
+ "title": "Ref Error Handler",
+ "description": "References to an existing or custom error handler.",
"deprecated": false,
"label": "configuration,error",
- "javaType": "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition",
+ "javaType": "org.apache.camel.model.errorhandler.RefErrorHandlerDefinition",
"abstract": false,
"input": false,
"output": false
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 835018e66b9..0f56ca75b83 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -495,16 +495,6 @@ Camel error handling.
</xs:annotation>
</xs:element>
- <xs:element name="errorHandlerRef" type="tns:errorHandlerRefDefinition">
- <xs:annotation>
- <xs:documentation xml:lang="en">
- <![CDATA[
-Dead letter channel error handler.
- ]]>
- </xs:documentation>
- </xs:annotation>
- </xs:element>
-
<xs:element name="exchangeProperty" type="tns:exchangePropertyExpression">
<xs:annotation>
<xs:documentation xml:lang="en">
@@ -1409,6 +1399,16 @@ Uses an existing expression from the registry.
</xs:annotation>
</xs:element>
+ <xs:element name="refErrorHandler" type="tns:refErrorHandlerDefinition">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ <![CDATA[
+References to an existing or custom error handler.
+ ]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
<xs:element name="removeHeader" type="tns:removeHeaderDefinition">
<xs:annotation>
<xs:documentation xml:lang="en">
@@ -20230,7 +20230,7 @@ Set a reference to a custom Expression to use.
</xs:complexType>
- <xs:complexType name="errorHandlerRefDefinition">
+ <xs:complexType name="refErrorHandlerDefinition">
<xs:complexContent>
diff --git a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
index 855818b0f9b..5cf593559c4 100644
--- a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
+++ b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
@@ -26,8 +26,8 @@ import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
import org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
import org.apache.camel.spi.TransactedPolicy;
import org.slf4j.Logger;
@@ -85,9 +85,9 @@ public abstract class JtaTransactionPolicy implements TransactedPolicy {
ErrorHandlerFactory builder = routeDefinition.getErrorHandlerFactory();
// check if its a ref if so then do a lookup
- if (builder instanceof ErrorHandlerRefDefinition) {
+ if (builder instanceof RefErrorHandlerDefinition) {
// its a reference to a error handler so lookup the reference
- ErrorHandlerRefDefinition builderRef = (ErrorHandlerRefDefinition) builder;
+ RefErrorHandlerDefinition builderRef = (RefErrorHandlerDefinition) builder;
String ref = builderRef.getRef();
// only lookup if there was explicit an error handler builder configured
// otherwise its just the "default" that has not explicit been configured
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
index a0ba6d41273..6e81f051553 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
@@ -25,7 +25,7 @@ import org.apache.camel.builder.SpringTransactionErrorHandlerBuilder;
import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
import org.apache.camel.spi.TransactedPolicy;
@@ -89,9 +89,9 @@ public class SpringTransactionPolicy implements TransactedPolicy {
ErrorHandlerFactory builder = routeDefinition.getErrorHandlerFactory();
// check if its a ref if so then do a lookup
- if (builder instanceof ErrorHandlerRefDefinition) {
+ if (builder instanceof RefErrorHandlerDefinition) {
// its a reference to a error handler so lookup the reference
- ErrorHandlerRefDefinition builderRef = (ErrorHandlerRefDefinition) builder;
+ RefErrorHandlerDefinition builderRef = (RefErrorHandlerDefinition) builder;
String ref = builderRef.getRef();
// only lookup if there was explicit an error handler builder configured
// otherwise its just the "default" that has not explicit been configured
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
index 7d811da70d4..4a8d56954e0 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
@@ -44,7 +44,6 @@ doTry
dynamicRouter
enrich
errorHandler
-errorHandlerRef
exchangeProperty
expression
failover
@@ -126,6 +125,7 @@ random
recipientList
redeliveryPolicy
ref
+refErrorHandler
removeHeader
removeHeaders
removeProperties
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
index 1daaba1595c..9106a928630 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
@@ -1,7 +1,7 @@
# Generated by camel build tools - do NOT edit this file!
DeadLetterChannelDefinition
DefaultErrorHandlerDefinition
-ErrorHandlerRefDefinition
JtaTransactionErrorHandlerDefinition
NoErrorHandlerDefinition
+RefErrorHandlerDefinition
SpringTransactionErrorHandlerDefinition
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
similarity index 75%
rename from catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json
rename to core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
index b1cc07bde2a..1ed161c24a1 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
@@ -1,12 +1,12 @@
{
"model": {
"kind": "model",
- "name": "errorHandlerRef",
- "title": "Error Handler Ref",
- "description": "Dead letter channel error handler.",
+ "name": "refErrorHandler",
+ "title": "Ref Error Handler",
+ "description": "References to an existing or custom error handler.",
"deprecated": false,
"label": "configuration,error",
- "javaType": "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition",
+ "javaType": "org.apache.camel.model.errorhandler.RefErrorHandlerDefinition",
"abstract": false,
"input": false,
"output": false
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
index 3dff0b56746..2ed67cbb05c 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
@@ -16,12 +16,12 @@
*/
package org.apache.camel.builder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
/**
* Ref error handler as a builder.
*/
-public class RefErrorHandlerBuilder extends ErrorHandlerRefDefinition {
+public class RefErrorHandlerBuilder extends RefErrorHandlerDefinition {
public RefErrorHandlerBuilder() {
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
index aebce342988..d2eaf24ba07 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -47,7 +47,7 @@ import org.apache.camel.model.RouteTemplatesDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.model.TemplatedRouteDefinition;
import org.apache.camel.model.TemplatedRoutesDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.rest.RestConfigurationDefinition;
import org.apache.camel.model.rest.RestDefinition;
import org.apache.camel.model.rest.RestsDefinition;
@@ -439,7 +439,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
if (resource != null) {
getRouteCollection().setResource(resource);
}
- setErrorHandlerFactory(new ErrorHandlerRefDefinition(ref));
+ setErrorHandlerFactory(new RefErrorHandlerDefinition(ref));
}
/**
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
index 0d509cef27d..e05e44873cb 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
@@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.ErrorHandlerFactory;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.spi.Metadata;
/**
@@ -150,7 +150,7 @@ public class RouteConfigurationDefinition extends OptionalIdentifiedDefinition<R
*/
public RouteConfigurationDefinition errorHandler(String ref) {
ErrorHandlerDefinition def = new ErrorHandlerDefinition();
- def.setErrorHandlerType(new ErrorHandlerRefDefinition(ref));
+ def.setErrorHandlerType(new RefErrorHandlerDefinition(ref));
setErrorHandler(def);
return this;
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
index a16dd9709a6..534ae072df8 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -42,7 +42,7 @@ import org.apache.camel.RouteTemplateContext;
import org.apache.camel.ShutdownRoute;
import org.apache.camel.ShutdownRunningTask;
import org.apache.camel.builder.EndpointConsumerBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.rest.RestBindingDefinition;
import org.apache.camel.model.rest.RestDefinition;
import org.apache.camel.spi.AsEndpointUri;
@@ -1026,7 +1026,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition>
// we use an specific error handler ref (from Spring DSL) then wrap that
// with a error handler build ref so Camel knows its not just the
// default one
- setErrorHandlerFactory(new ErrorHandlerRefDefinition(errorHandlerRef));
+ setErrorHandlerFactory(new RefErrorHandlerDefinition(errorHandlerRef));
}
}
@@ -1106,11 +1106,11 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition>
private ErrorHandlerFactory createErrorHandlerBuilder() {
if (errorHandlerRef != null) {
- return new ErrorHandlerRefDefinition(errorHandlerRef);
+ return new RefErrorHandlerDefinition(errorHandlerRef);
}
// return a reference to the default error handler
- return new ErrorHandlerRefDefinition(ErrorHandlerRefDefinition.DEFAULT_ERROR_HANDLER_BUILDER);
+ return new RefErrorHandlerDefinition(RefErrorHandlerDefinition.DEFAULT_ERROR_HANDLER_BUILDER);
}
public ErrorHandlerFactory getErrorHandlerFactory() {
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
index 7a50e52f45c..352fb51645f 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
@@ -54,8 +54,8 @@ public final class ErrorHandlerHelper {
// see if there has been configured a error handler builder on the route
source = route.getErrorHandlerFactory();
// check if its also a ref with no error handler configuration like me
- if (source instanceof ErrorHandlerRefDefinition) {
- ErrorHandlerRefDefinition other = (ErrorHandlerRefDefinition) source;
+ if (source instanceof RefErrorHandlerDefinition) {
+ RefErrorHandlerDefinition other = (RefErrorHandlerDefinition) source;
String otherRef = other.getRef();
if (!isErrorHandlerFactoryConfigured(otherRef)) {
// the other has also no explicit error handler configured
@@ -90,8 +90,8 @@ public final class ErrorHandlerHelper {
protected static ErrorHandlerFactory lookupErrorHandlerFactory(CamelContext camelContext) {
ErrorHandlerFactory answer = camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory();
- if (answer instanceof ErrorHandlerRefDefinition) {
- ErrorHandlerRefDefinition other = (ErrorHandlerRefDefinition) answer;
+ if (answer instanceof RefErrorHandlerDefinition) {
+ RefErrorHandlerDefinition other = (RefErrorHandlerDefinition) answer;
String otherRef = other.getRef();
if (isErrorHandlerFactoryConfigured(otherRef)) {
answer = CamelContextHelper.lookup(camelContext, otherRef, ErrorHandlerFactory.class);
@@ -112,7 +112,7 @@ public final class ErrorHandlerHelper {
* This is for instance used by the transacted policy to setup a TransactedErrorHandlerBuilder in camel-spring.
*/
public static boolean isErrorHandlerFactoryConfigured(String ref) {
- return !ErrorHandlerRefDefinition.DEFAULT_ERROR_HANDLER_BUILDER.equals(ref);
+ return !RefErrorHandlerDefinition.DEFAULT_ERROR_HANDLER_BUILDER.equals(ref);
}
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
similarity index 86%
rename from core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java
rename to core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
index d4842f98095..68286e76142 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
@@ -25,12 +25,12 @@ import org.apache.camel.ErrorHandlerFactory;
import org.apache.camel.spi.Metadata;
/**
- * Dead letter channel error handler.
+ * References to an existing or custom error handler.
*/
@Metadata(label = "configuration,error")
-@XmlRootElement(name = "errorHandlerRef")
+@XmlRootElement(name = "refErrorHandler")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ErrorHandlerRefDefinition extends BaseErrorHandlerDefinition {
+public class RefErrorHandlerDefinition extends BaseErrorHandlerDefinition {
public static final String DEFAULT_ERROR_HANDLER_BUILDER = "CamelDefaultErrorHandlerBuilder";
@@ -38,10 +38,10 @@ public class ErrorHandlerRefDefinition extends BaseErrorHandlerDefinition {
@Metadata(javaType = "org.apache.camel.ErrorHandlerFactory")
private String ref;
- public ErrorHandlerRefDefinition() {
+ public RefErrorHandlerDefinition() {
}
- public ErrorHandlerRefDefinition(String ref) {
+ public RefErrorHandlerDefinition(String ref) {
this.ref = ref;
}
@@ -70,7 +70,7 @@ public class ErrorHandlerRefDefinition extends BaseErrorHandlerDefinition {
/**
* References to an existing or custom error handler.
*/
- public ErrorHandlerRefDefinition ref(String ref) {
+ public RefErrorHandlerDefinition ref(String ref) {
setRef(ref);
return this;
}
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
index 7c7ad90db6d..e09ab4c61c8 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
@@ -21,13 +21,13 @@ import org.apache.camel.Processor;
import org.apache.camel.Route;
import org.apache.camel.model.ModelCamelContext;
import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.util.ObjectHelper;
-public class ErrorHandlerRefReifier extends ErrorHandlerReifier<ErrorHandlerRefDefinition> {
+public class ErrorHandlerRefReifier extends ErrorHandlerReifier<RefErrorHandlerDefinition> {
public ErrorHandlerRefReifier(Route route, ErrorHandlerFactory definition) {
- super(route, (ErrorHandlerRefDefinition) definition);
+ super(route, (RefErrorHandlerDefinition) definition);
}
@Override
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
index 639ca1587bf..f69e479752d 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
@@ -36,7 +36,7 @@ import org.apache.camel.model.OnExceptionDefinition;
import org.apache.camel.model.RedeliveryPolicyDefinition;
import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
import org.apache.camel.processor.errorhandler.ErrorHandlerSupport;
import org.apache.camel.processor.errorhandler.ExceptionPolicy;
@@ -97,7 +97,7 @@ public abstract class ErrorHandlerReifier<T extends ErrorHandlerFactory> extends
return new DefaultErrorHandlerReifier(route, (DefaultErrorHandlerDefinition) definition);
} else if (definition instanceof NoErrorHandlerDefinition) {
return new NoErrorHandlerReifier(route, definition);
- } else if (definition instanceof ErrorHandlerRefDefinition) {
+ } else if (definition instanceof RefErrorHandlerDefinition) {
return new ErrorHandlerRefReifier(route, definition);
}
diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
index 4d4a8e0797a..44ce432a275 100644
--- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
+++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
@@ -90,7 +90,7 @@ import org.apache.camel.model.TemplatedRouteDefinition;
import org.apache.camel.model.ThreadPoolProfileDefinition;
import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
import org.apache.camel.model.dataformat.DataFormatsDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.rest.RestConfigurationDefinition;
import org.apache.camel.model.rest.RestContainer;
import org.apache.camel.model.rest.RestDefinition;
@@ -1202,7 +1202,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex
}
if (getErrorHandlerRef() != null) {
context.adapt(ExtendedCamelContext.class)
- .setErrorHandlerFactory(new ErrorHandlerRefDefinition(getErrorHandlerRef()));
+ .setErrorHandlerFactory(new RefErrorHandlerDefinition(getErrorHandlerRef()));
}
if (getAutoStartup() != null) {
context.setAutoStartup(CamelContextHelper.parseBoolean(context, getAutoStartup()));
diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
index 6b31dd78b8d..9177c514c84 100644
--- a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.builder;
import org.apache.camel.Channel;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.engine.DefaultRoute;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
import org.apache.camel.processor.errorhandler.NoErrorHandler;
import org.junit.jupiter.api.Test;
@@ -50,13 +50,13 @@ public class RouteTemplateErrorHandlerTest {
});
assertThat(context.getRouteDefinitions()).first().satisfies(d -> {
- assertThat(d.getErrorHandlerFactory()).isInstanceOfSatisfying(ErrorHandlerRefDefinition.class, h -> {
+ assertThat(d.getErrorHandlerFactory()).isInstanceOfSatisfying(RefErrorHandlerDefinition.class, h -> {
assertThat(h.getRef()).isEqualTo("myErrorHandler");
});
});
assertThat(context.getRouteTemplateDefinitions()).first().satisfies(d -> {
- assertThat(d.route().getErrorHandlerFactory()).isInstanceOfSatisfying(ErrorHandlerRefDefinition.class, h -> {
+ assertThat(d.route().getErrorHandlerFactory()).isInstanceOfSatisfying(RefErrorHandlerDefinition.class, h -> {
assertThat(h.getRef()).isEqualTo("myErrorHandler");
});
});
diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
index 0925ea4062a..cb0ff48f81a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
@@ -21,7 +21,7 @@ import java.io.IOException;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.builder.DeadLetterChannelBuilder;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.spi.Registry;
import org.junit.jupiter.api.Test;
@@ -66,10 +66,10 @@ public class ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest extends C
public void configure() throws Exception {
onException(IllegalArgumentException.class).handled(true).to("mock:handled").end();
- from("direct:foo").errorHandler(new ErrorHandlerRefDefinition("myDLC")).to("mock:foo")
+ from("direct:foo").errorHandler(new RefErrorHandlerDefinition("myDLC")).to("mock:foo")
.throwException(new IOException("Damn IO"));
- from("direct:start").errorHandler(new ErrorHandlerRefDefinition("myDLC")).to("mock:a")
+ from("direct:start").errorHandler(new RefErrorHandlerDefinition("myDLC")).to("mock:a")
.throwException(new IllegalArgumentException("Damn"));
}
};
diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
index 686cb590c45..537a1e4bc69 100644
--- a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
@@ -20,7 +20,7 @@ import org.apache.camel.CamelExecutionException;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.builder.DeadLetterChannelBuilder;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.spi.Registry;
import org.junit.jupiter.api.Test;
@@ -61,7 +61,7 @@ public class ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTe
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:start").errorHandler(new ErrorHandlerRefDefinition("myDLC"))
+ from("direct:start").errorHandler(new RefErrorHandlerDefinition("myDLC"))
.onException(IllegalArgumentException.class).handled(false).to("mock:handled").end()
.to("mock:a").throwException(new IllegalArgumentException("Damn"));
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
index 0c8766ce1eb..d4e55425dd4 100644
--- a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.issues;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.builder.DeadLetterChannelBuilder;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.spi.Registry;
import org.junit.jupiter.api.Test;
@@ -54,7 +54,7 @@ public class ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest extends
onException(IllegalArgumentException.class).handled(true).to("mock:handled").end();
- from("direct:start").errorHandler(new ErrorHandlerRefDefinition("myDLC")).to("mock:a")
+ from("direct:start").errorHandler(new RefErrorHandlerDefinition("myDLC")).to("mock:a")
.throwException(new IllegalArgumentException("Damn"));
}
};
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 297e9f235fe..3fec7222c02 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -2584,15 +2584,6 @@ public class ModelParser extends BaseParser {
protected DefaultErrorHandlerDefinition doParseDefaultErrorHandlerDefinition() throws IOException, XmlPullParserException {
return doParse(new DefaultErrorHandlerDefinition(), defaultErrorHandlerDefinitionAttributeHandler(), defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
}
- protected ErrorHandlerRefDefinition doParseErrorHandlerRefDefinition() throws IOException, XmlPullParserException {
- return doParse(new ErrorHandlerRefDefinition(), (def, key, val) -> {
- if ("ref".equals(key)) {
- def.setRef(val);
- return true;
- }
- return identifiedTypeAttributeHandler().accept(def, key, val);
- }, noElementHandler(), noValueHandler());
- }
protected JtaTransactionErrorHandlerDefinition doParseJtaTransactionErrorHandlerDefinition() throws IOException, XmlPullParserException {
return doParse(new JtaTransactionErrorHandlerDefinition(),
transactionErrorHandlerDefinitionAttributeHandler(), defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
@@ -2611,6 +2602,15 @@ public class ModelParser extends BaseParser {
return doParse(new NoErrorHandlerDefinition(),
identifiedTypeAttributeHandler(), noElementHandler(), noValueHandler());
}
+ protected RefErrorHandlerDefinition doParseRefErrorHandlerDefinition() throws IOException, XmlPullParserException {
+ return doParse(new RefErrorHandlerDefinition(), (def, key, val) -> {
+ if ("ref".equals(key)) {
+ def.setRef(val);
+ return true;
+ }
+ return identifiedTypeAttributeHandler().accept(def, key, val);
+ }, noElementHandler(), noValueHandler());
+ }
protected SpringTransactionErrorHandlerDefinition doParseSpringTransactionErrorHandlerDefinition() throws IOException, XmlPullParserException {
return doParse(new SpringTransactionErrorHandlerDefinition(),
transactionErrorHandlerDefinitionAttributeHandler(), defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index 44b8fc6a07e..c145a00e276 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -167,9 +167,9 @@ import org.apache.camel.model.dataformat.ZipDeflaterDataFormat;
import org.apache.camel.model.dataformat.ZipFileDataFormat;
import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
import org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
import org.apache.camel.model.language.CSimpleExpression;
import org.apache.camel.model.language.ConstantExpression;
@@ -4783,50 +4783,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
}
}
- @YamlType(
- nodes = {
- "error-handler-ref",
- "errorHandlerRef"
- },
- types = org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition.class,
- order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
- properties = {
- @YamlProperty(name = "id", type = "string"),
- @YamlProperty(name = "ref", type = "string", required = true)
- }
- )
- public static class ErrorHandlerRefDefinitionDeserializer extends YamlDeserializerBase<ErrorHandlerRefDefinition> {
- public ErrorHandlerRefDefinitionDeserializer() {
- super(ErrorHandlerRefDefinition.class);
- }
-
- @Override
- protected ErrorHandlerRefDefinition newInstance() {
- return new ErrorHandlerRefDefinition();
- }
-
- @Override
- protected boolean setProperty(ErrorHandlerRefDefinition target, String propertyKey,
- String propertyName, Node node) {
- switch(propertyKey) {
- case "id": {
- String val = asText(node);
- target.setId(val);
- break;
- }
- case "ref": {
- String val = asText(node);
- target.setRef(val);
- break;
- }
- default: {
- return false;
- }
- }
- return true;
- }
- }
-
@YamlType(
nodes = {
"exchange-property",
@@ -11644,6 +11600,50 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
}
}
+ @YamlType(
+ nodes = {
+ "ref-error-handler",
+ "refErrorHandler"
+ },
+ types = org.apache.camel.model.errorhandler.RefErrorHandlerDefinition.class,
+ order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+ properties = {
+ @YamlProperty(name = "id", type = "string"),
+ @YamlProperty(name = "ref", type = "string", required = true)
+ }
+ )
+ public static class RefErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<RefErrorHandlerDefinition> {
+ public RefErrorHandlerDefinitionDeserializer() {
+ super(RefErrorHandlerDefinition.class);
+ }
+
+ @Override
+ protected RefErrorHandlerDefinition newInstance() {
+ return new RefErrorHandlerDefinition();
+ }
+
+ @Override
+ protected boolean setProperty(RefErrorHandlerDefinition target, String propertyKey,
+ String propertyName, Node node) {
+ switch(propertyKey) {
+ case "id": {
+ String val = asText(node);
+ target.setId(val);
+ break;
+ }
+ case "ref": {
+ String val = asText(node);
+ target.setRef(val);
+ break;
+ }
+ default: {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+
@YamlType(
nodes = "ref",
inline = true,
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index b3ef7d0f564..791739cdd4f 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -129,9 +129,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
case "error-handler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
case "errorHandler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
case "org.apache.camel.model.ErrorHandlerDefinition": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
- case "error-handler-ref": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
- case "errorHandlerRef": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
- case "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
case "exchange-property": return new ModelDeserializers.ExchangePropertyExpressionDeserializer();
case "exchangeProperty": return new ModelDeserializers.ExchangePropertyExpressionDeserializer();
case "org.apache.camel.model.language.ExchangePropertyExpression": return new ModelDeserializers.ExchangePropertyExpressionDeserializer();
@@ -323,6 +320,9 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
case "redelivery-policy": return new ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
case "redeliveryPolicy": return new ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
case "org.apache.camel.model.RedeliveryPolicyDefinition": return new ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
+ case "ref-error-handler": return new ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
+ case "refErrorHandler": return new ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
+ case "org.apache.camel.model.errorhandler.RefErrorHandlerDefinition": return new ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
case "ref": return new ModelDeserializers.RefExpressionDeserializer();
case "org.apache.camel.model.language.RefExpression": return new ModelDeserializers.RefExpressionDeserializer();
case "remove-header": return new ModelDeserializers.RemoveHeaderDefinitionDeserializer();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
index 7dd5981031c..cf4dd57040f 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
@@ -25,8 +25,9 @@ import org.apache.camel.dsl.yaml.common.exception.UnsupportedFieldException;
import org.apache.camel.dsl.yaml.common.exception.YamlDeserializationException;
import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
import org.apache.camel.spi.CamelContextCustomizer;
import org.apache.camel.spi.annotations.YamlIn;
import org.apache.camel.spi.annotations.YamlProperty;
@@ -44,15 +45,22 @@ import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.setDeseri
@YamlIn
@YamlType(
+ inline = false,
nodes = { "error-handler", "errorHandler" },
order = YamlDeserializerResolver.ORDER_DEFAULT,
properties = {
- @YamlProperty(name = "ref", type = "string"),
- @YamlProperty(name = "none", type = "object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"),
- @YamlProperty(name = "log",
- type = "object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
@YamlProperty(name = "dead-letter-channel",
type = "object:org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"),
+ @YamlProperty(name = "default-error-handler",
+ type = "object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
+ @YamlProperty(name = "jta-transaction-error-handler",
+ type = "object:org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"),
+ @YamlProperty(name = "no-error-handler",
+ type = "object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"),
+ @YamlProperty(name = "ref-error-handler",
+ type = "object:org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"),
+ @YamlProperty(name = "spring-transaction-error-handler",
+ type = "object:org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"),
})
public class ErrorHandlerBuilderDeserializer implements ConstructNode {
@@ -77,17 +85,24 @@ public class ErrorHandlerBuilderDeserializer implements ConstructNode {
setDeserializationContext(val, dc);
switch (key) {
- case "ref":
- // special for ref error handler, as it can be manually inlined
- ErrorHandlerRefDefinition def = new ErrorHandlerRefDefinition(asText(val));
- return customizer(def);
- case "none":
- return customizer(asType(val, NoErrorHandlerDefinition.class));
case "deadLetterChannel":
case "dead-letter-channel":
return customizer(asType(val, DeadLetterChannelDefinition.class));
- case "log":
+ case "defaultErrorHandler":
+ case "default-error-handler":
return customizer(asType(val, DefaultErrorHandlerDefinition.class));
+ case "jtaTransactionErrorHandler":
+ case "jta-transaction-error-handler":
+ return customizer(asType(val, JtaTransactionErrorHandlerDefinition.class));
+ case "noErrorHandler":
+ case "no-error-handler":
+ return customizer(asType(val, NoErrorHandlerDefinition.class));
+ case "refErrorHandler":
+ case "ref-error-handler":
+ return customizer(asType(val, RefErrorHandlerDefinition.class));
+ case "springTransactionErrorHandler":
+ case "spring-transaction-error-handler":
+ return customizer(asType(val, JtaTransactionErrorHandlerDefinition.class));
default:
throw new UnsupportedFieldException(val, key);
}
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
index 0db1e83e3a0..da2f97617d6 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
@@ -313,14 +313,20 @@
"dead-letter-channel" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
},
- "log" : {
+ "default-error-handler" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
},
- "none" : {
+ "jta-transaction-error-handler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+ },
+ "no-error-handler" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
},
- "ref" : {
- "type" : "string"
+ "ref-error-handler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+ },
+ "spring-transaction-error-handler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
}
}
},
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index 3c96a564f95..fea8158d6ed 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -220,14 +220,20 @@
"deadLetterChannel" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
},
- "log" : {
+ "defaultErrorHandler" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
},
- "none" : {
+ "jtaTransactionErrorHandler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+ },
+ "noErrorHandler" : {
"$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
},
- "ref" : {
- "type" : "string"
+ "refErrorHandler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+ },
+ "springTransactionErrorHandler" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
}
}
},
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
index 3e288f2ebf1..87d672f2ad5 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
@@ -21,8 +21,8 @@ import org.apache.camel.component.mock.MockEndpoint
import org.apache.camel.dsl.yaml.support.model.MyFailingProcessor
import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition
import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition
import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition
class ErrorHandlerTest extends YamlTestSupport {
@@ -38,7 +38,8 @@ class ErrorHandlerTest extends YamlTestSupport {
dead-letter-uri: "mock:on-error"
redelivery-delay: 0
- error-handler:
- ref: "myErrorHandler"
+ ref-error-handler:
+ ref: "myErrorHandler"
- from:
uri: "direct:start"
steps:
@@ -57,7 +58,7 @@ class ErrorHandlerTest extends YamlTestSupport {
to('direct:start').withBody('hello').send()
}
then:
- context.errorHandlerFactory instanceof ErrorHandlerRefDefinition
+ context.getErrorHandlerFactory() instanceof RefErrorHandlerDefinition
MockEndpoint.assertIsSatisfied(context)
}
@@ -65,56 +66,63 @@ class ErrorHandlerTest extends YamlTestSupport {
setup:
loadRoutes """
- error-handler:
- ref: "myErrorHandler"
+ ref-error-handler:
+ ref: "myErrorHandler"
"""
when:
context.start()
then:
- with(context.errorHandlerFactory, ErrorHandlerRefDefinition) {
+ with(context.getErrorHandlerFactory(), ErrorHandlerRefDefinition) {
ref == 'myErrorHandler'
}
}
- def "error-handler (log)"() {
+ def "error-handler (dead-letter-channel)"() {
setup:
loadRoutes """
- error-handler:
- log:
- use-original-message: true
+ dead-letter-channel:
+ dead-letter-uri: "mock:on-error"
+ redelivery-policy:
+ maximum-redeliveries: 3
"""
when:
context.start()
then:
- with(context.errorHandlerFactory, DefaultErrorHandlerDefinition) {
- useOriginalMessage
+ with(context.getErrorHandlerFactory(), DeadLetterChannelDefinition) {
+ deadLetterUri == 'mock:on-error'
+ redeliveryPolicy.maximumRedeliveries == "3"
}
}
- def "error-handler (dead-letter-channel)"() {
+ def "error-handler (default-error-handler)"() {
setup:
- loadRoutes """
+ loadRoutes """
- error-handler:
- dead-letter-channel:
- dead-letter-uri: "mock:on-error"
+ default-error-handler:
+ useOriginalMessage: true
+ redelivery-policy:
+ maximum-redeliveries: 2
"""
when:
- context.start()
+ context.start()
then:
- with(context.errorHandlerFactory, DeadLetterChannelDefinition) {
- deadLetterUri == 'mock:on-error'
- }
+ with(context.getErrorHandlerFactory(), DefaultErrorHandlerDefinition) {
+ useOriginalMessage == "true"
+ redeliveryPolicy.maximumRedeliveries == "2"
+ }
}
- def "error-handler (none)"() {
+ def "error-handler (no)"() {
setup:
loadRoutes """
- error-handler:
- none: {}
+ no-error-handler: {}
"""
when:
context.start()
then:
- context.errorHandlerFactory instanceof NoErrorHandlerDefinition
+ context.getErrorHandlerFactory() instanceof NoErrorHandlerDefinition
}
}