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 2022/08/04 11:34:12 UTC

[camel] branch camel-3.18.x updated: camel-yaml-dsl - Add routeTemplate/route-template as node names for route templates so its similar to the other DSLs.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.18.x by this push:
     new 0b39784bc9a camel-yaml-dsl - Add routeTemplate/route-template as node names for route templates so its similar to the other DSLs.
0b39784bc9a is described below

commit 0b39784bc9a38fb4794459378c9ba1d70247992a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Aug 4 13:32:36 2022 +0200

    camel-yaml-dsl - Add routeTemplate/route-template as node names for route templates so its similar to the other DSLs.
---
 .../dsl/yaml/deserializers/CustomResolver.java     |  4 ++-
 .../apache/camel/dsl/yaml/RouteTemplateTest.groovy | 34 ++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java
index 9a4875b437c..a812f6e6972 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java
@@ -43,13 +43,15 @@ public class CustomResolver implements YamlDeserializerResolver {
             case "org.apache.camel.model.RouteConfigurationDefinition":
                 return new RouteConfigurationDefinitionDeserializer();
             case "template":
+            case "route-template":
+            case "routeTemplate":
             case "org.apache.camel.model.RouteTemplateDefinition":
                 return new RouteTemplateDefinitionDeserializer();
             case "templated-route":
             case "templatedRoute":
             case "org.apache.camel.model.TemplatedRouteDefinition":
                 return new TemplatedRouteDefinitionDeserializer();
-            // TODO: backwards compatible with kamelets 0.7.x
+            // tod = backwards compatible with kamelets 0.7.x
             case "tod":
                 return new ModelDeserializers.ToDynamicDefinitionDeserializer();
             case "org.apache.camel.model.RouteTemplateBeanDefinition":
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 30e53e62b6e..3e9061cc024 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
@@ -420,4 +420,38 @@ class RouteTemplateTest extends YamlTestSupport {
             MockEndpoint.assertIsSatisfied(context)
     }
 
+    def "create route-template with parameters"() {
+        when:
+        loadRoutes """
+                - route-template:
+                    id: "myTemplate"
+                    parameters:
+                      - name: "foo"
+                      - name: "bar"
+                    from:
+                      uri: "direct:{{foo}}"
+                      steps:
+                        - log: "{{bar}}"
+            """
+        then:
+        context.routeTemplateDefinitions.size() == 1
+
+        with(context.routeTemplateDefinitions[0], RouteTemplateDefinition) {
+            id == 'myTemplate'
+            configurer == null
+
+            templateParameters.any {
+                it.name == 'foo'
+            }
+            templateParameters.any {
+                it.name == 'bar'
+            }
+
+            route.input.endpointUri == 'direct:{{foo}}'
+            with(route.outputs[0], LogDefinition) {
+                message == '{{bar}}'
+            }
+        }
+    }
+
 }