This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.14.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.14.x by this push: new 70ec033 CAMEL-17437: deadLetterChannel should not eager resolve endpoint from uri in Java DSL. 70ec033 is described below commit 70ec03315e938708128a6ec6be72de10de01ffa6 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Jan 8 11:26:03 2022 +0100 CAMEL-17437: deadLetterChannel should not eager resolve endpoint from uri in Java DSL. --- .../main/java/org/apache/camel/builder/BuilderSupport.java | 2 +- .../org/apache/camel/builder/DeadLetterChannelBuilder.java | 2 ++ .../impl/event/EventNotifierFailureHandledEventsTest.java | 4 ++-- ...DeadLetterChannelBuilderWithInvalidDeadLetterUriTest.java | 12 ++++++------ 4 files changed, 11 insertions(+), 9 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 d6cae2e..91244f0 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 @@ -431,7 +431,7 @@ public abstract class BuilderSupport implements CamelContextAware { * @return the builder */ public DeadLetterChannelBuilder deadLetterChannel(String deadLetterUri) { - return deadLetterChannel(endpoint(deadLetterUri)); + return new DeadLetterChannelBuilder(deadLetterUri); } /** 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 67e49b3..7bc8e03 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 @@ -44,6 +44,8 @@ public class DeadLetterChannelBuilder extends DefaultErrorHandlerBuilder impleme public DeadLetterChannelBuilder(String uri) { setDeadLetterUri(uri); + // DLC do not log exhausted by default + getRedeliveryPolicy().setLogExhausted(false); } @Override diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java index e1d7b9f..979ce7d 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java @@ -91,7 +91,7 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport { ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(11)); assertEquals(true, e0.isDeadLetterChannel(), "should be DLC"); - assertEquals("mock://dead", e0.getDeadLetterUri()); + assertEquals("mock:dead", e0.getDeadLetterUri()); assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12)); assertIsInstanceOf(ExchangeSentEvent.class, events.get(13)); @@ -106,7 +106,7 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport { } SendProcessor send = assertIsInstanceOf(SendProcessor.class, fh); assertEquals("mock://dead", send.getDestination().getEndpointUri()); - assertEquals("mock://dead", e.getDeadLetterUri()); + assertEquals("mock:dead", e.getDeadLetterUri()); // dead letter channel will mark the exchange as completed assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(15)); diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelBuilderWithInvalidDeadLetterUriTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelBuilderWithInvalidDeadLetterUriTest.java index bb0e629..7aa1376 100644 --- a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelBuilderWithInvalidDeadLetterUriTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelBuilderWithInvalidDeadLetterUriTest.java @@ -37,12 +37,11 @@ public class DeadLetterChannelBuilderWithInvalidDeadLetterUriTest extends Contex from("direct:start").to("mock:foo"); } }); + context.start(); fail("Should have thrown an exception"); - } catch (NoSuchEndpointException e) { - assertEquals( - "No endpoint could be found for: xxx, please check your classpath contains the needed Camel component jar.", - e.getMessage()); + } catch (Exception e) { + assertIsInstanceOf(NoSuchEndpointException.class, e.getCause()); } } @@ -57,10 +56,11 @@ public class DeadLetterChannelBuilderWithInvalidDeadLetterUriTest extends Contex from("direct:start").to("mock:foo"); } }); + context.start(); fail("Should have thrown an exception"); - } catch (ResolveEndpointFailedException e) { - assertTrue(e.getMessage().endsWith("Unknown parameters=[{foo=bar}]")); + } catch (Exception e) { + assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause()); } }