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.git
commit c2e6268c0ad854d1f8eb5e926d6590cc68b9cc13 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Dec 7 11:41:43 2021 +0100 CAMEL-17261: camel-yaml-dsl - Add support for loading Camel K KameletBinding file. WIP. --- .../camel/dsl/yaml/KameletBindingLoaderTest.groovy | 64 +++++++++++++++++++++- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy index 7e27750..166bdc5 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy @@ -16,17 +16,19 @@ */ package org.apache.camel.dsl.yaml +import org.apache.camel.Exchange +import org.apache.camel.Processor import org.apache.camel.builder.DeadLetterChannelBuilder +import org.apache.camel.component.mock.MockEndpoint import org.apache.camel.dsl.yaml.support.YamlTestSupport import org.apache.camel.model.ToDefinition -import org.apache.camel.processor.errorhandler.DeadLetterChannel class KameletBindingLoaderTest extends YamlTestSupport { @Override def doSetup() { context.start() } -/* + def "kamelet binding from kamelet to kamelet"() { when: loadBindings(''' @@ -280,7 +282,7 @@ class KameletBindingLoaderTest extends YamlTestSupport { } } } -*/ + def "kamelet binding with error handler"() { when: @@ -341,4 +343,60 @@ class KameletBindingLoaderTest extends YamlTestSupport { } } + def "kamelet binding with error handler move to dlq"() { + when: + + context.registry.bind 'chaos', new Processor() { + @Override + void process(Exchange exchange) throws Exception { + throw new IllegalArgumentException("Forced"); + } + }; + + loadBindings(''' + apiVersion: camel.apache.org/v1alpha1 + kind: KameletBinding + metadata: + name: timer-event-source + spec: + source: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1 + name: timer-source + properties: + message: "Hello world!" + steps: + - uri: bean:chaos + sink: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: log-sink + errorHandler: + dead-letter-channel: + endpoint: + uri: mock:dead + parameters: + maximumRedeliveries: 3 + redeliveryDelay: 100 + ''') + then: + context.routeDefinitions.size() == 3 + + MockEndpoint mock = context.getEndpoint("mock:dead", MockEndpoint.class) + mock.expectedMinimumMessageCount(1) + + mock.assertIsSatisfied() + + with (context.routeDefinitions[0]) { + errorHandlerFactory != null + errorHandlerFactory instanceof DeadLetterChannelBuilder + var eh = errorHandlerFactory as DeadLetterChannelBuilder + eh.deadLetterUri == 'mock:dead' + eh.redeliveryPolicy.maximumRedeliveries == 3 + eh.redeliveryPolicy.redeliveryDelay == 100 + } + } + }