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 2023/07/17 05:13:12 UTC

[camel] branch main updated: CAMEL-19343: Add limitation to docs

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 cf43ec4ad34 CAMEL-19343: Add limitation to docs
cf43ec4ad34 is described below

commit cf43ec4ad34f16795b487bbe78eddfd7ee1808d4
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jul 17 07:13:01 2023 +0200

    CAMEL-19343: Add limitation to docs
---
 .../modules/ROOT/pages/route-template.adoc         | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/pages/route-template.adoc b/docs/user-manual/modules/ROOT/pages/route-template.adoc
index 8b08497f9a6..68b41e855ff 100644
--- a/docs/user-manual/modules/ROOT/pages/route-template.adoc
+++ b/docs/user-manual/modules/ROOT/pages/route-template.adoc
@@ -254,6 +254,40 @@ And in YAML DSL
         value: "5s"
 ----
 
+=== Using template parameters with Java DSL simple builder
+
+When using Java DSL and simple language then beware that you should
+not use the _simple fluent builder_ when defining the simple expressions/predicates.
+
+For example given the following route template in Java DSL:
+
+[source,java]
+----
+public class MyRouteTemplates extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        routeTemplate("myTemplate")
+            .templateParameter("name")
+            .templateParameter("color")
+            .from("direct:{{name}}")
+                .choice()
+                    .when(simple("{{color}}").isEqualTo("red"))
+                        .to("direct:red")
+                    .otherwise()
+                        .to("color:other")
+                .end();
+    }
+}
+----
+
+Then notice how the simple predicate is using _simple fluent builder_ `simple("{{color}}").isEqualTo("red")`.
+This is **not supported** with route templates and would not work when creating multiple routes from the template.
+
+Instead, the simple expression should be a literal String value _only_ as follows:
+
+    .when(simple("'{{color}}' == 'red'")
+
 === Using hardcoded node IDs in route templates
 
 If route templates contains hardcoded node IDs then routes created from templates will use the same IDs