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 2024/03/28 11:49:30 UTC
(camel) branch camel-4.4.x updated: CAMEL-20615: camel-yaml-dsl - Fix variableReceive when using route as top elemenet
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-4.4.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.4.x by this push:
new 16ee811004c CAMEL-20615: camel-yaml-dsl - Fix variableReceive when using route as top elemenet
16ee811004c is described below
commit 16ee811004cf5073da9bb143c6c3a03e92c17e83
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Mar 28 12:49:04 2024 +0100
CAMEL-20615: camel-yaml-dsl - Fix variableReceive when using route as top elemenet
---
.../apache/camel/dsl/yaml/common/YamlSupport.java | 3 ++
.../apache/camel/dsl/yaml/FromVariableTest.groovy | 46 ++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlSupport.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlSupport.java
index 1c2b53f465f..245f8f1b815 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlSupport.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlSupport.java
@@ -178,6 +178,9 @@ public final class YamlSupport {
// steps must be set on the route
setSteps(route, val);
break;
+ case "variableReceive":
+ // is handled in FromDefinitionSerializer
+ break;
default:
throw new UnsupportedFieldException(val, key);
}
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FromVariableTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FromVariableTest.groovy
index 5112cb1a9ca..841751929f3 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FromVariableTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FromVariableTest.groovy
@@ -67,4 +67,50 @@ class FromVariableTest extends YamlTestSupport {
MockEndpoint.assertIsSatisfied(context)
}
+ def "routeFromVariable"() {
+ setup:
+ loadRoutes '''
+ - route:
+ from:
+ uri: "direct:start"
+ variableReceive: "myKey"
+ steps:
+ - setHeader:
+ name: foo
+ constant: "456"
+ - setHeader:
+ name: bar
+ constant: "Murphy"
+ - transform:
+ simple: "Bye ${body}"
+ - to: "mock:foo"
+ - setBody:
+ simple: "${variable:myKey}"
+ - to: "mock:result"
+ '''
+
+ withMock('mock:foo') {
+ expectedBodiesReceived 'Bye '
+ whenAnyExchangeReceived { e -> {
+ Map m = e.getVariable("header:myKey", Map.class)
+ Assertions.assertNotNull(m)
+ Assertions.assertEquals(1, m.size())
+ Assertions.assertEquals(123, m.get("foo"))
+ }}
+ }
+ withMock('mock:result') {
+ expectedBodiesReceived 'World'
+ }
+
+ when:
+ context.start()
+
+ withTemplate {
+ to('direct:start').withBody('World').withHeader("foo", 123).send()
+ }
+
+ then:
+ MockEndpoint.assertIsSatisfied(context)
+ }
+
}