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 2021/12/07 14:04:48 UTC
[camel] branch main updated: CAMEL-17261: camel-yaml-dsl - Add support for loading Camel K KameletBinding file.
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 <cl...@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'
}
}