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 55c8430 CAMEL-16630: camel-core - Allow to use groovy script for
aggregation strategy pojo.
55c8430 is described below
commit 55c84300ee42a19dd869b14298fc9d4563ab6570
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jun 30 10:03:35 2021 +0200
CAMEL-16630: camel-core - Allow to use groovy script for aggregation
strategy pojo.
---
.../apache/camel/dsl/yaml/RouteTemplateTest.groovy | 45 ++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
index abc2982..cbf9f77 100644
---
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
+++
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
@@ -375,4 +375,49 @@ class RouteTemplateTest extends YamlTestSupport {
MockEndpoint.assertIsSatisfied(context)
}
+ def "create template with groovy"() {
+ setup:
+ loadRoutes """
+ - template:
+ id: "myTemplate"
+ beans:
+ - name: "myAgg"
+ type: "groovy"
+ script: "class MaxAgg { int agg(int s1, int s2) {
return Math.max(s1, s2) }}; new MaxAgg()"
+ from:
+ uri: "direct:route"
+ steps:
+ - aggregate:
+ strategy-ref: "{{myAgg}}"
+ completion-size: 2
+ correlation-expression:
+ header: "StockSymbol"
+ steps:
+ - to: "mock:result"
+ """
+ withMock('mock:result') {
+ expectedMessageCount 2
+ expectedBodiesReceived '101', '200'
+ }
+ when:
+ context.addRouteFromTemplate('myId', 'myTemplate', [:])
+ context.start()
+
+ withTemplate {
+ to('direct:route').withBody('99').withHeader('StockSymbol',
1).send()
+ to('direct:route').withBody('101').withHeader('StockSymbol',
1).send()
+ to('direct:route').withBody('200').withHeader('StockSymbol',
2).send()
+ to('direct:route').withBody('199').withHeader('StockSymbol',
2).send()
+ }
+ then:
+ context.routeTemplateDefinitions.size() == 1
+
+ with(context.routeTemplateDefinitions[0], RouteTemplateDefinition)
{
+ id == 'myTemplate'
+ templateBeans.size() == 1
+ }
+
+ MockEndpoint.assertIsSatisfied(context)
+ }
+
}