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/04/08 07:53:02 UTC
[camel-karaf] branch main updated: Errorhandler in dsl (#144)
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 <cl...@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";