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] ----