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-karaf.git
The following commit(s) were added to refs/heads/main by this push: new a4b9658b Errorhandler in dsl (#144) a4b9658b is described below commit a4b9658bb8afc991d0ec514c7a8bfc38a4652f8b Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Apr 8 09:52:58 2022 +0200 Errorhandler in dsl (#144) CAMEL-16834: error handler in DSL model --- .../camel/blueprint/CamelErrorHandlerFactoryBean.java | 16 ++++++++-------- .../org/apache/camel/blueprint/ErrorHandlerType.java | 18 +++++++++--------- .../camel/blueprint/handler/CamelNamespaceHandler.java | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java index fd6e7ded..60d459ee 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java @@ -27,8 +27,8 @@ import javax.xml.bind.annotation.XmlTransient; import org.apache.camel.CamelContext; import org.apache.camel.Processor; -import org.apache.camel.builder.DefaultErrorHandlerBuilder; -import org.apache.camel.builder.ErrorHandlerBuilder; +import org.apache.camel.builder.LegacyDefaultErrorHandlerBuilder; +import org.apache.camel.builder.LegacyErrorHandlerBuilder; import org.apache.camel.core.xml.AbstractCamelFactoryBean; import org.apache.camel.model.RedeliveryPolicyDefinition; import org.apache.camel.processor.errorhandler.RedeliveryPolicy; @@ -37,7 +37,7 @@ import org.osgi.service.blueprint.container.BlueprintContainer; @XmlRootElement(name = "errorHandler") @XmlAccessorType(XmlAccessType.FIELD) -public class CamelErrorHandlerFactoryBean extends AbstractCamelFactoryBean<ErrorHandlerBuilder> { +public class CamelErrorHandlerFactoryBean extends AbstractCamelFactoryBean<LegacyErrorHandlerBuilder> { @XmlAttribute private ErrorHandlerType type = ErrorHandlerType.DefaultErrorHandler; @@ -67,10 +67,10 @@ public class CamelErrorHandlerFactoryBean extends AbstractCamelFactoryBean<Error private BlueprintContainer blueprintContainer; @Override - public ErrorHandlerBuilder getObject() throws Exception { - ErrorHandlerBuilder errorHandler = getObjectType().newInstance(); - if (errorHandler instanceof DefaultErrorHandlerBuilder) { - DefaultErrorHandlerBuilder handler = (DefaultErrorHandlerBuilder) errorHandler; + public LegacyErrorHandlerBuilder getObject() throws Exception { + LegacyErrorHandlerBuilder errorHandler = getObjectType().newInstance(); + if (errorHandler instanceof LegacyDefaultErrorHandlerBuilder) { + LegacyDefaultErrorHandlerBuilder handler = (LegacyDefaultErrorHandlerBuilder) errorHandler; if (deadLetterUri != null) { handler.setDeadLetterUri(deadLetterUri); } @@ -109,7 +109,7 @@ public class CamelErrorHandlerFactoryBean extends AbstractCamelFactoryBean<Error } @Override - public Class<? extends ErrorHandlerBuilder> getObjectType() { + public Class<? extends LegacyErrorHandlerBuilder> getObjectType() { return type.getTypeAsClass(); } diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java index 72a0d6f2..6ce9e116 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java @@ -19,16 +19,16 @@ package org.apache.camel.blueprint; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlType; -import org.apache.camel.builder.DeadLetterChannelBuilder; -import org.apache.camel.builder.DefaultErrorHandlerBuilder; -import org.apache.camel.builder.ErrorHandlerBuilder; -import org.apache.camel.builder.NoErrorHandlerBuilder; +import org.apache.camel.builder.LegacyDeadLetterChannelBuilder; +import org.apache.camel.builder.LegacyDefaultErrorHandlerBuilder; +import org.apache.camel.builder.LegacyErrorHandlerBuilder; +import org.apache.camel.builder.LegacyNoErrorHandlerBuilder; /** * Used to configure the errorHandler type */ @XmlType -@XmlEnum(String.class) +@XmlEnum public enum ErrorHandlerType { DefaultErrorHandler, DeadLetterChannel, NoErrorHandler; @@ -38,14 +38,14 @@ public enum ErrorHandlerType { * * @return the class which represents the selected type. */ - public Class<? extends ErrorHandlerBuilder> getTypeAsClass() { + public Class<? extends LegacyErrorHandlerBuilder> getTypeAsClass() { switch (this) { case DefaultErrorHandler: - return DefaultErrorHandlerBuilder.class; + return LegacyDefaultErrorHandlerBuilder.class; case DeadLetterChannel: - return DeadLetterChannelBuilder.class; + return LegacyDeadLetterChannelBuilder.class; case NoErrorHandler: - return NoErrorHandlerBuilder.class; + return LegacyNoErrorHandlerBuilder.class; default: throw new IllegalArgumentException("Unknown error handler: " + this); } diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java index a84d087a..69f43657 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java @@ -35,6 +35,13 @@ import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import org.apache.camel.blueprint.CamelRouteConfigurationContextFactoryBean; +import org.apache.camel.builder.LegacyDeadLetterChannelBuilder; +import org.apache.camel.builder.LegacyDefaultErrorHandlerBuilder; +import org.apache.camel.builder.LegacyNoErrorHandlerBuilder; +import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier; +import org.apache.camel.reifier.errorhandler.LegacyDeadLetterChannelReifier; +import org.apache.camel.reifier.errorhandler.LegacyDefaultErrorHandlerReifier; +import org.apache.camel.reifier.errorhandler.LegacyNoErrorHandlerReifier; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; @@ -127,6 +134,13 @@ import static org.osgi.service.blueprint.reflect.ServiceReferenceMetadata.AVAILA */ public class CamelNamespaceHandler implements NamespaceHandler { + static { + // legacy camel-blueprint error-handling using its own model and parsers + ErrorHandlerReifier.registerReifier(LegacyDeadLetterChannelBuilder.class, LegacyDeadLetterChannelReifier::new); + ErrorHandlerReifier.registerReifier(LegacyDefaultErrorHandlerBuilder.class, LegacyDefaultErrorHandlerReifier::new); + ErrorHandlerReifier.registerReifier(LegacyNoErrorHandlerBuilder.class, LegacyNoErrorHandlerReifier::new); + } + public static final String BLUEPRINT_NS = "http://camel.apache.org/schema/blueprint"; public static final String SPRING_NS = "http://camel.apache.org/schema/spring";