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:50 UTC

[camel] 04/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 0ba443762bb0cf0f49bb06cf90b86dd2461afd3d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Apr 6 07:02:14 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../org/apache/camel/builder/BuilderSupport.java    | 21 +++++++++++++++++----
 .../camel/builder/DeadLetterChannelBuilder.java     |  1 +
 .../aggregator/BodyOnlyAggregationStrategyTest.java |  7 +++----
 3 files changed, 21 insertions(+), 8 deletions(-)

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 d528efde45e..fd0d67e9b1c 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
@@ -26,6 +26,7 @@ import org.apache.camel.Endpoint;
 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.language.DatasonnetExpression;
 import org.apache.camel.model.language.ExchangePropertyExpression;
 import org.apache.camel.model.language.HeaderExpression;
@@ -437,10 +438,22 @@ public abstract class BuilderSupport implements CamelContextAware {
      * @param  deadLetterUri uri to the dead letter endpoint storing dead messages
      * @return               the builder
      */
-    public DeadLetterChannelBuilder deadLetterChannel(String deadLetterUri) {
-        return new DeadLetterChannelBuilder(deadLetterUri);
-    }
-
+    public DeadLetterChannelDefinition deadLetterChannel(String deadLetterUri) {
+        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.
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
index 7bc8e032255..323e431c065 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
@@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory;
  * A builder of a <a href="http://camel.apache.org/dead-letter-channel.html">Dead Letter Channel</a>
  */
 @Configurer
+@Deprecated
 public class DeadLetterChannelBuilder extends DefaultErrorHandlerBuilder implements DeadLetterChannelProperties {
 
     public DeadLetterChannelBuilder() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java
index ab577c834fb..854d781a8e7 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java
@@ -18,9 +18,9 @@ package org.apache.camel.processor.aggregator;
 
 import org.apache.camel.AggregationStrategy;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExtendedExchange;
-import org.apache.camel.builder.DeadLetterChannelBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
@@ -45,11 +45,10 @@ public class BodyOnlyAggregationStrategyTest extends ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                DeadLetterChannelBuilder deadLetterChannelBuilder = deadLetterChannel("direct:error");
-                deadLetterChannelBuilder.setUseOriginalMessage(true);
+                ErrorHandlerFactory dh = deadLetterChannel("direct:error").useOriginalMessage();
 
                 from("direct:failingRoute")
-                        .errorHandler(deadLetterChannelBuilder)
+                        .errorHandler(dh)
                         .to("mock:failingRoute")
                         .throwException(new RuntimeException("Boem!"));