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

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


The following commit(s) were added to refs/heads/master by this push:
     new 51a9727  CAMEL-15704: camel-csimple - Compiled simple language.
51a9727 is described below

commit 51a972729c41e26fbea123f5c68c89ae19325757
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Dec 4 10:47:04 2020 +0100

    CAMEL-15704: camel-csimple - Compiled simple language.
---
 .../camel/catalog/docs/csimple-language.adoc       | 12 +++++++++--
 .../language/csimple/joor/OriginalSimpleTest.java  | 23 ++++++++++++++++++++++
 .../modules/languages/pages/csimple-language.adoc  | 12 +++++++++--
 .../modules/languages/pages/csimple-language.adoc  | 12 +++++++++--
 4 files changed, 53 insertions(+), 6 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/csimple-language.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/csimple-language.adoc
index 8087fe0..2108f7f 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/csimple-language.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/csimple-language.adoc
@@ -190,9 +190,17 @@ The CSimple language supports 2 options, which are listed 
below.
 
 == Limitations
 
-Currently the csimple language does **not** support the _null safe_ operator 
(`?`).
+Currently the csimple language does **not** support:
 
-For example the following script cannot compile:
+- nested functions (aka functions inside functions)
+- the _null safe_ operator (`?`).
+
+For example the following scripts cannot compile:
+
+[source,text]
+----
+    Hello ${bean:greeter(${body}, ${header.counter})}
+----
 
 [source,text]
 ----
diff --git 
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
 
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
index f30184f..6a18995 100644
--- 
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
+++ 
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
@@ -60,6 +60,9 @@ public class OriginalSimpleTest extends LanguageTestSupport {
     @BindToRegistry
     private Animal myAnimal = new Animal("Donkey", 17);
 
+    @BindToRegistry
+    private Greeter greeter = new Greeter();
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
@@ -1922,6 +1925,14 @@ public class OriginalSimpleTest extends 
LanguageTestSupport {
         assertExpression(exp, "99");
     }
 
+    @Test
+    public void testNestedFunction() throws Exception {
+        exchange.getMessage().setBody("Tony");
+        exchange.getMessage().setHeader("counter", 3);
+
+        assertExpression("Hello ${bean:greeter(${body}, ${header.counter})}", 
"Hello TonyTonyTony");
+    }
+
     @Override
     protected String getLanguageName() {
         return "csimple";
@@ -1990,6 +2001,18 @@ public class OriginalSimpleTest extends 
LanguageTestSupport {
         }
     }
 
+    public static final class Greeter {
+
+        public String greetMe(String name, int times) {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < times; i++) {
+                sb.append(name);
+            }
+            return sb.toString();
+        }
+
+    }
+
     public static final class Order {
         private List<OrderLine> lines;
 
diff --git 
a/core/camel-core-languages/src/main/docs/modules/languages/pages/csimple-language.adoc
 
b/core/camel-core-languages/src/main/docs/modules/languages/pages/csimple-language.adoc
index 8087fe0..2108f7f 100644
--- 
a/core/camel-core-languages/src/main/docs/modules/languages/pages/csimple-language.adoc
+++ 
b/core/camel-core-languages/src/main/docs/modules/languages/pages/csimple-language.adoc
@@ -190,9 +190,17 @@ The CSimple language supports 2 options, which are listed 
below.
 
 == Limitations
 
-Currently the csimple language does **not** support the _null safe_ operator 
(`?`).
+Currently the csimple language does **not** support:
 
-For example the following script cannot compile:
+- nested functions (aka functions inside functions)
+- the _null safe_ operator (`?`).
+
+For example the following scripts cannot compile:
+
+[source,text]
+----
+    Hello ${bean:greeter(${body}, ${header.counter})}
+----
 
 [source,text]
 ----
diff --git a/docs/components/modules/languages/pages/csimple-language.adoc 
b/docs/components/modules/languages/pages/csimple-language.adoc
index 0829ff2..8337311 100644
--- a/docs/components/modules/languages/pages/csimple-language.adoc
+++ b/docs/components/modules/languages/pages/csimple-language.adoc
@@ -192,9 +192,17 @@ The CSimple language supports 2 options, which are listed 
below.
 
 == Limitations
 
-Currently the csimple language does **not** support the _null safe_ operator 
(`?`).
+Currently the csimple language does **not** support:
 
-For example the following script cannot compile:
+- nested functions (aka functions inside functions)
+- the _null safe_ operator (`?`).
+
+For example the following scripts cannot compile:
+
+[source,text]
+----
+    Hello ${bean:greeter(${body}, ${header.counter})}
+----
 
 [source,text]
 ----

Reply via email to