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)
+    }
+
 }

Reply via email to