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 1079e65e3831 CAMEL-16861: Update docs
1079e65e3831 is described below

commit 1079e65e3831b1322dd4f799cfe06ecc83ede9f2
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Feb 17 14:57:45 2026 +0100

    CAMEL-16861: Update docs
---
 .../docs/modules/eips/pages/scatter-gather.adoc    | 94 +++++++++++++++++++---
 .../main/docs/modules/eips/pages/script-eip.adoc   | 55 ++++++++++++-
 .../modules/eips/pages/selective-consumer.adoc     | 39 ++++++++-
 .../docs/modules/eips/pages/service-activator.adoc | 12 +++
 .../main/docs/modules/eips/pages/setBody-eip.adoc  |  5 +-
 .../docs/modules/eips/pages/setHeader-eip.adoc     | 51 ++++++++++++
 .../org/apache/camel/main/stub/StubEipReifier.java | 15 ++++
 7 files changed, 253 insertions(+), 18 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/scatter-gather.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/scatter-gather.adoc
index 85be17d36943..6aa8f1d34eed 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/scatter-gather.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/scatter-gather.adoc
@@ -38,20 +38,48 @@ together as the Scatter-Gather EIP solution.
 In the following example, we want to call two HTTP services and gather their 
responses into a single message,
 as the response:
 
-[source,xml]
+[tabs]
+====
+
+Java::
++
+[source,java]
+----
+from("servlet:cheese")
+    
.recipientList(constant("http:server1,http:server2")).aggregationStrategy("cheeseAggregator")
+    .to("log:response");
 ----
-<routes>
 
-  <route>
+XML::
++
+[source,xml]
+----
+<route>
     <from uri="servlet:cheese"/>
-    <recipientList aggregationStrategy="cheeseAggregator">
-      <constant>http:server1,http:server2</header>
-    </recipientList>
+        <recipientList aggregationStrategy="cheeseAggregator">
+            <constant>http:server1,http:server2</constant>
+        </recipientList>
     <to uri="log:response"/>
-  </route>
+</route>
+----
 
-</routes>
+YAML::
++
+[source,yaml]
 ----
+- route:
+    from:
+      uri: servlet:cheese
+      steps:
+        - recipientList:
+            aggregationStrategy: cheeseAggregator
+            expression:
+              constant:
+                expression: "http:server1,http:server2"
+        - to:
+            uri: log:response
+----
+====
 
 This is a basic example that only uses basic functionality of the 
xref:recipientList-eip.adoc[Recipient List].
 For more details on how the aggregation works, see the 
xref:recipientList-eip.adoc[Recipient List] documentation.
@@ -65,10 +93,26 @@ and an xref:aggregate-eip.adoc[Aggregate] to pick the best 
quote out of all the
 
 The routes for this are defined as:
 
-[source,xml]
+[tabs]
+====
+
+Java::
++
+[source,java]
+----
+from("direct:start")
+    .recipientList(header("listOfVendors"));
+
+from("seda:quoteAggregator")
+     .aggregate(header("quoteRequestId"))
+        .aggregationStrategy("beerAggregator")
+        .completionTimeout(1000)
+        .to("direct:bestBeer")
+    .end();
 ----
-<routes>
 
+[source,xml]
+----
   <route>
     <from uri="direct:start"/>
     <recipientList>
@@ -85,9 +129,35 @@ The routes for this are defined as:
       <to uri="direct:bestBeer"/>
     </aggregate>
   </route>
+----
 
-</routes>
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: direct:start
+      steps:
+        - recipientList:
+            expression:
+              header:
+                expression: listOfVendors
+- route:
+    from:
+      uri: seda:quoteAggregator
+      steps:
+        - aggregate:
+            aggregationStrategy: beerAggregator
+            completionTimeout: 1000
+            correlationExpression:
+              header:
+                expression: quoteRequestId
+            steps:
+              - to:
+                  uri: direct:bestBeer
 ----
+====
 
 So in the first route, you see that the xref:recipientList-eip.adoc[Recipient 
List] is looking at the
 listOfVendors header for the list of recipients. So, we need to send a message 
like:
@@ -127,7 +197,7 @@ public class MyVendor {
 }
 ----
 
-And are loaded up in XML like this:
+And are loaded up in Spring XML like this:
 
 [source,xml]
 ----
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/script-eip.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/script-eip.adoc
index eeb8f597f12f..34ce183b5906 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/script-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/script-eip.adoc
@@ -33,6 +33,7 @@ The route below will read the file contents and call a groovy 
script
 
 [tabs]
 ====
+
 Java::
 +
 [source,java]
@@ -54,9 +55,9 @@ XML::
   <to uri="bean:myServiceBean.processLine"/>
 </route>
 ----
-
++
 Mind that you can use _CDATA_ if the script uses `< >` etc:
-
++
 [source,xml]
 ----
 <route>
@@ -67,6 +68,25 @@ Mind that you can use _CDATA_ if the script uses `< >` etc:
   <to uri="bean:myServiceBean.processLine"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: file:inbox
+      steps:
+        - script:
+            expression:
+              groovy:
+                expression: >
+                 some groovy code goes here
+                 that can be in multiple
+                 lines and have a lot of code
+        - to:
+            uri: bean:myServiceBean.processLine
+----
 ====
 
 === Scripting Context
@@ -78,6 +98,20 @@ The scripting context has access to the current `Exchange` 
and can essentially c
 You can refer to external script files instead of inlining the script.
 For example, to load a groovy script from the classpath, you need to prefix 
the value with `resource:` as shown:
 
+[tabs]
+====
+
+Java::
++
+[source,java]
+----
+from("file:inbox")
+  .script().groovy("resource:classpath:com/foo/myscript.groovy")
+  .to("bean:myServiceBean.processLine");
+----
+
+XML::
++
 [source,xml]
 ----
 <route>
@@ -89,5 +123,22 @@ For example, to load a groovy script from the classpath, 
you need to prefix the
 </route>
 ----
 
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: file:inbox
+      steps:
+        - script:
+            expression:
+              groovy:
+                expression: resource:classpath:com/foo/myscript.groovy
+        - to:
+            uri: bean:myServiceBean.processLine
+----
+====
+
 You can also refer to the script from the file system with `file:` instead of 
`classpath:`
 such as `file:/var/myscript.groovy`
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/selective-consumer.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/selective-consumer.adoc
index c131d4ee704b..2f9b3f6f46a6 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/selective-consumer.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/selective-consumer.adoc
@@ -43,6 +43,24 @@ XML::
   <to uri="bean:red"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: jms
+      parameters:
+        destinationType: queue
+        destinationName: hello
+        selector: color='red'
+      steps:
+        - to:
+            uri: bean
+            parameters:
+              beanName: red
+----
 ====
 
 === Selective Consumer using Filter EIP
@@ -57,8 +75,8 @@ Java::
 [source,java]
 ----
 from("seda:colors")
-    .filter(header("color").isEqualTo("red"))
-        .to("bean:red")
+    .filter(simple("${header.color} == 'red'"))
+        .to("bean:red");
 ----
 
 XML::
@@ -73,4 +91,21 @@ XML::
     </filter>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: seda:colors
+      steps:
+        - filter:
+            expression:
+              simple:
+                expression: "${header.color} == 'red'"
+            steps:
+              - to:
+                  uri: bean:red
+----
 ====
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/service-activator.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/service-activator.adoc
index c84fcef24177..7b7eb87aa6f6 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/service-activator.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/service-activator.adoc
@@ -44,4 +44,16 @@ XML::
   <to uri="bean:myService"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: direct:invokeMyService
+      steps:
+        - to:
+            uri: bean:myService
+----
 ====
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/setBody-eip.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/setBody-eip.adoc
index 6ccec590b102..4b398d2d11e3 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/setBody-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/setBody-eip.adoc
@@ -77,8 +77,9 @@ YAML::
       uri: direct:cheese
       steps:
         - setBody:
-            simple:
-              expression: Hello ${body}
+            expression:
+              simple:
+                expression: "Hello ${body}"
         - to:
             uri: log:hello
 ----
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/setHeader-eip.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/setHeader-eip.adoc
index c1091c0bfde2..c24383594a7c 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/setHeader-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/setHeader-eip.adoc
@@ -47,6 +47,23 @@ XML::
     <to uri="direct:b"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: direct:a
+      steps:
+        - setHeader:
+            name: myHeader
+            expression:
+              constant:
+                expression: test
+        - to:
+            uri: direct:b
+----
 ====
 
 In the example, the header value is a 
xref:components:languages:constant-language.adoc[constant].
@@ -85,6 +102,23 @@ XML::
     <to uri="direct:b"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: direct:a
+      steps:
+        - setHeader:
+            name: randomNumber
+            expression:
+              simple:
+                expression: "${random(1,100)}"
+        - to:
+            uri: direct:b
+----
 ====
 
 See 
xref:components:languages:jsonpath-language.adoc#_using_header_as_input[JSONPath]
 for another example.
@@ -118,6 +152,23 @@ XML::
     <to uri="direct:b"/>
 </route>
 ----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+    from:
+      uri: direct:a
+      steps:
+        - setHeader:
+            name: foo
+            expression:
+              header:
+                expression: bar
+        - to:
+            uri: direct:b
+----
 ====
 
 If you need to set several headers on the message, see 
xref:eips:setHeaders-eip.adoc[Set Headers].
diff --git 
a/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubEipReifier.java
 
b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubEipReifier.java
index 5383cc71c261..c6622c94b7c9 100644
--- 
a/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubEipReifier.java
+++ 
b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubEipReifier.java
@@ -26,6 +26,7 @@ import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.model.BeanDefinition;
 import org.apache.camel.model.KameletDefinition;
+import org.apache.camel.model.ScriptDefinition;
 import org.apache.camel.model.ThrowExceptionDefinition;
 import org.apache.camel.model.language.MethodCallExpression;
 import org.apache.camel.processor.DisabledProcessor;
@@ -126,6 +127,20 @@ public class StubEipReifier {
                 return fac.createProcessor(camelContext, definitionName, args);
             }
         });
+
+        // stub programming language scripts
+        ProcessorReifier.registerReifier(ScriptDefinition.class,
+                (route, processorDefinition) -> {
+                    if (processorDefinition instanceof ScriptDefinition sd) {
+                        return new ProcessorReifier<>(route, sd) {
+                            @Override
+                            public Processor createProcessor() throws 
Exception {
+                                return new DisabledProcessor();
+                            }
+                        };
+                    }
+                    return null;
+                });
     }
 
 }

Reply via email to