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/06 07:17:54 UTC

[camel] 08/09: CAMEL-16834: error handler in model DSL. WIP

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch errorhandler-in-dsl
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 88d1ef09bd7de3a380f17cc2a7ec272feea827ba
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Apr 6 08:57:55 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../errorhandler/transactionErrorHandler.json      |  2 +-
 .../org/apache/camel/builder/BuilderSupport.java   | 26 +++++++---------------
 .../errorhandler/NoErrorHandlerDefinition.java     | 13 ++++++++++-
 3 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/transactionErrorHandler.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/transactionErrorHandler.json
index f9f7610902a..903c5119d04 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/transactionErrorHandler.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/transactionErrorHandler.json
@@ -3,7 +3,7 @@
     "kind": "model",
     "name": "transactionErrorHandler",
     "title": "Transaction Error Handler",
-    "description": "Transactional error handler.",
+    "description": "Transactional error handler (requires either camel-spring or camel-jta using traditional JTA transactions).",
     "deprecated": false,
     "label": "configuration,error",
     "javaType": "org.apache.camel.model.errorhandler.TransactionErrorHandlerDefinition",
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
index fd0d67e9b1c..b21929a1e47 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
@@ -27,6 +27,8 @@ import org.apache.camel.Expression;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
 import org.apache.camel.model.language.DatasonnetExpression;
 import org.apache.camel.model.language.ExchangePropertyExpression;
 import org.apache.camel.model.language.HeaderExpression;
@@ -417,8 +419,8 @@ public abstract class BuilderSupport implements CamelContextAware {
      *
      * @return the builder
      */
-    public DefaultErrorHandlerBuilder defaultErrorHandler() {
-        return new DefaultErrorHandlerBuilder();
+    public DefaultErrorHandlerDefinition defaultErrorHandler() {
+        return new DefaultErrorHandlerDefinition();
     }
 
     /**
@@ -427,8 +429,8 @@ public abstract class BuilderSupport implements CamelContextAware {
      *
      * @return the builder
      */
-    public NoErrorHandlerBuilder noErrorHandler() {
-        return new NoErrorHandlerBuilder();
+    public NoErrorHandlerDefinition noErrorHandler() {
+        return new NoErrorHandlerDefinition();
     }
 
     /**
@@ -442,18 +444,6 @@ public abstract class BuilderSupport implements CamelContextAware {
         return new DeadLetterChannelDefinition(deadLetterUri);
     }
 
-    //    /**
-    //     * <a href="http://camel.apache.org/dead-letter-channel.html">Dead Letter Channel EIP:</a> is a error handler for
-    //     * handling messages that could not be delivered to it's intended destination.
-    //     *
-    //     * @param  deadLetterUri uri to the dead letter endpoint storing dead messages
-    //     * @return               the builder
-    //     */
-    //    @Deprecated
-    //    public DeadLetterChannelBuilder deadLetterChannel(String deadLetterUri) {
-    //        return new DeadLetterChannelBuilder(deadLetterUri);
-    //    }
-    //
     /**
      * <a href="http://camel.apache.org/dead-letter-channel.html">Dead Letter Channel EIP:</a> is a error handler for
      * handling messages that could not be delivered to it's intended destination.
@@ -461,8 +451,8 @@ public abstract class BuilderSupport implements CamelContextAware {
      * @param  deadLetterEndpoint dead letter endpoint storing dead messages
      * @return                    the builder
      */
-    public DeadLetterChannelBuilder deadLetterChannel(Endpoint deadLetterEndpoint) {
-        return new DeadLetterChannelBuilder(deadLetterEndpoint);
+    public DeadLetterChannelDefinition deadLetterChannel(Endpoint deadLetterEndpoint) {
+        return new DeadLetterChannelDefinition(deadLetterEndpoint);
     }
 
     // Properties
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/NoErrorHandlerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/NoErrorHandlerDefinition.java
index 31dfa7284ba..cf6c9d4efed 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/NoErrorHandlerDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/NoErrorHandlerDefinition.java
@@ -20,6 +20,7 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.spi.Metadata;
 
 /**
@@ -28,6 +29,16 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "configuration,error")
 @XmlRootElement(name = "noErrorHandler")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class NoErrorHandlerDefinition extends BaseErrorHandlerDefinition {
+public class NoErrorHandlerDefinition extends BaseErrorHandlerDefinition implements ErrorHandlerBuilder {
 
+    @Override
+    public boolean supportTransacted() {
+        return false;
+    }
+
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        // clone is not needed
+        return this;
+    }
 }