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 <[email protected]> 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 } }
