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
The following commit(s) were added to refs/heads/main by this push: new 16066a7 CAMEL-17261: camel-yaml-dsl - Add support for loading Camel K KameletBinding file. 16066a7 is described below commit 16066a7ef1f59a481185410705b19b13a02c0778 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Dec 7 15:04:07 2021 +0100 CAMEL-17261: camel-yaml-dsl - Add support for loading Camel K KameletBinding file. --- .../camel/dsl/yaml/YamlRoutesBuilderLoader.java | 10 ++++++++-- .../camel/dsl/yaml/KameletBindingLoaderTest.groovy | 22 ++++++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java index dd370a6..8952b53 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java @@ -215,7 +215,6 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport { route.from(from); // steps in the middle (optional) - // TODO: make steps as Kamelet EIP and not TO Node steps = nodeAt(root, "/spec/steps"); if (steps != null) { SequenceNode sn = asSequenceNode(steps); @@ -223,7 +222,14 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport { MappingNode step = asMappingNode(node); String uri = extractCamelEndpointUri(step); if (uri != null) { - route.to(uri); + // if kamelet then use kamelet eip instead of to + boolean kamelet = uri.startsWith("kamelet:"); + if (kamelet) { + uri = uri.substring(8); + route.kamelet(uri); + } else { + route.to(uri); + } } } } 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 724f867..df2a54d 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 @@ -23,6 +23,7 @@ import org.apache.camel.builder.DefaultErrorHandlerBuilder import org.apache.camel.builder.NoErrorHandlerBuilder import org.apache.camel.component.mock.MockEndpoint import org.apache.camel.dsl.yaml.support.YamlTestSupport +import org.apache.camel.model.KameletDefinition import org.apache.camel.model.ToDefinition class KameletBindingLoaderTest extends YamlTestSupport { @@ -158,6 +159,12 @@ class KameletBindingLoaderTest extends YamlTestSupport { routeId == 'steps-binding' input.endpointUri == 'kamelet:timer-source?message=Camel' outputs.size() == 3 + with (outputs[0], KameletDefinition) { + name == 'prefix-action?prefix=Apache' + } + with (outputs[1], KameletDefinition) { + name == 'prefix-action?prefix=Hello' + } with (outputs[2], ToDefinition) { endpointUri == 'log:info' } @@ -197,6 +204,9 @@ class KameletBindingLoaderTest extends YamlTestSupport { routeId == 'steps-binding' input.endpointUri == 'kamelet:timer-source?message=Camel' outputs.size() == 3 + with (outputs[0], KameletDefinition) { + name == 'prefix-action?prefix=Apache' + } with (outputs[1], ToDefinition) { endpointUri == 'mock:dummy' } @@ -223,24 +233,28 @@ class KameletBindingLoaderTest extends YamlTestSupport { message: "Camel" steps: - uri: mock:dummy + - uri: kamelet:prefix-action?prefix=Apache - uri: mock:dummy2 sink: uri: log:info ''') then: - context.routeDefinitions.size() == 2 + context.routeDefinitions.size() == 3 with (context.routeDefinitions[0]) { routeId == 'steps-binding' input.endpointUri == 'kamelet:timer-source?message=Camel' - outputs.size() == 3 + outputs.size() == 4 with (outputs[0], ToDefinition) { endpointUri == 'mock:dummy' } - with (outputs[1], ToDefinition) { - endpointUri == 'mock:dummy2' + with (outputs[1], KameletDefinition) { + name == 'prefix-action?prefix=Apache' } with (outputs[2], ToDefinition) { + endpointUri == 'mock:dummy2' + } + with (outputs[3], ToDefinition) { endpointUri == 'log:info' } }