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

commit c0ac6c0139cc7fe4f54d3b8944c29bb3c187f80b
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Oct 16 21:34:31 2020 +0200

    CAMEL-15697: camel-joor - Camel expression langauge using jOOR runtime java 
compiled.
---
 .../apache/camel/catalog/docs/joor-language.adoc   | 46 +++++++++++++++++++---
 .../camel-joor/src/main/docs/joor-language.adoc    | 46 +++++++++++++++++++---
 .../modules/languages/pages/joor-language.adoc     | 46 +++++++++++++++++++---
 3 files changed, 123 insertions(+), 15 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/joor-language.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/joor-language.adoc
index 3703f2c..0088364 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/joor-language.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/joor-language.adoc
@@ -34,9 +34,9 @@ The jOOR language supports 4 options, which are listed below.
 |===
 // language options: END
 
-=== Variables
+== Variables
 
-The jOOR language allows the following variables to be used in the script
+The jOOR language allows the following variables to be used in the script:
 
 [width="100%",cols="2,1m,7",options="header"]
 |===
@@ -47,7 +47,7 @@ The jOOR language allows the following variables to be used 
in the script
 | body | Object | The message body
 |===
 
-=== Sample
+== Sample
 
 For example to transform the message using jOOR language to upper case
 
@@ -70,7 +70,7 @@ And in XML DSL:
 </route>
 ----
 
-=== Multi statements
+== Multi statements
 
 It is possible to include multiple statements, for example where we in the 
first statement gets the `user` header.
 And then in the 2nd statement we return a value whether the user is `null` or 
not.
@@ -91,8 +91,44 @@ from("seda:orders")
   .to("seda:user");
 ----
 
-=== Limitations
+== Hot re-load
 
+You can turn of pre compilation for the jOOR language and then Camel will 
recompile the script for each message.
+You can externalize the code into a resource file, which will be reloaded on 
each message as shown:
+
+[source,java]
+----
+JoorLanguage joor = (JoorLanguage) context.resolveLanguage("joor");
+joor.setPreCompile(false);
+
+from("jms:incoming")
+    .transform().joor("resource:file:src/main/resources/orders.joor")
+    .to("jms:orders");
+----
+
+Here the jOOR script is externalized into the file 
`src/main/resources/orders.joor` which allows you to edit this source
+file while running the Camel application and try the changes with 
hot-reloading.
+
+In XML DSL its a little bit easier as you can turn off pre-compilation in the 
`<joor>` XML element:
+
+[source,xml]
+----
+<route>
+    <from uri="jms:incoming"/>
+    <transform>
+      <joor 
preCompile="false">resource:file:src/main/resources/orders.joor</joor>
+    </transform>
+    <to uri="jms:orders"/>
+</route>
+----
+
+== Limitations
+
+The jOOR Camel language is only supported as a block of Java code that gets 
compiled into a Java class with a single method.
+The code that you can write is therefore limited to a number of Java 
statements.
+
+The supported runtime is intended for Java standalone, Spring Boot, Camel 
Quarkus and other microservices runtimes.
+It is not supported in OSGi, Camel Karaf or any kind of Java Application 
Server runtime.
 
 == Dependencies
 
diff --git a/components/camel-joor/src/main/docs/joor-language.adoc 
b/components/camel-joor/src/main/docs/joor-language.adoc
index 3703f2c..0088364 100644
--- a/components/camel-joor/src/main/docs/joor-language.adoc
+++ b/components/camel-joor/src/main/docs/joor-language.adoc
@@ -34,9 +34,9 @@ The jOOR language supports 4 options, which are listed below.
 |===
 // language options: END
 
-=== Variables
+== Variables
 
-The jOOR language allows the following variables to be used in the script
+The jOOR language allows the following variables to be used in the script:
 
 [width="100%",cols="2,1m,7",options="header"]
 |===
@@ -47,7 +47,7 @@ The jOOR language allows the following variables to be used 
in the script
 | body | Object | The message body
 |===
 
-=== Sample
+== Sample
 
 For example to transform the message using jOOR language to upper case
 
@@ -70,7 +70,7 @@ And in XML DSL:
 </route>
 ----
 
-=== Multi statements
+== Multi statements
 
 It is possible to include multiple statements, for example where we in the 
first statement gets the `user` header.
 And then in the 2nd statement we return a value whether the user is `null` or 
not.
@@ -91,8 +91,44 @@ from("seda:orders")
   .to("seda:user");
 ----
 
-=== Limitations
+== Hot re-load
 
+You can turn of pre compilation for the jOOR language and then Camel will 
recompile the script for each message.
+You can externalize the code into a resource file, which will be reloaded on 
each message as shown:
+
+[source,java]
+----
+JoorLanguage joor = (JoorLanguage) context.resolveLanguage("joor");
+joor.setPreCompile(false);
+
+from("jms:incoming")
+    .transform().joor("resource:file:src/main/resources/orders.joor")
+    .to("jms:orders");
+----
+
+Here the jOOR script is externalized into the file 
`src/main/resources/orders.joor` which allows you to edit this source
+file while running the Camel application and try the changes with 
hot-reloading.
+
+In XML DSL its a little bit easier as you can turn off pre-compilation in the 
`<joor>` XML element:
+
+[source,xml]
+----
+<route>
+    <from uri="jms:incoming"/>
+    <transform>
+      <joor 
preCompile="false">resource:file:src/main/resources/orders.joor</joor>
+    </transform>
+    <to uri="jms:orders"/>
+</route>
+----
+
+== Limitations
+
+The jOOR Camel language is only supported as a block of Java code that gets 
compiled into a Java class with a single method.
+The code that you can write is therefore limited to a number of Java 
statements.
+
+The supported runtime is intended for Java standalone, Spring Boot, Camel 
Quarkus and other microservices runtimes.
+It is not supported in OSGi, Camel Karaf or any kind of Java Application 
Server runtime.
 
 == Dependencies
 
diff --git a/docs/components/modules/languages/pages/joor-language.adoc 
b/docs/components/modules/languages/pages/joor-language.adoc
index 6d69884..716daea 100644
--- a/docs/components/modules/languages/pages/joor-language.adoc
+++ b/docs/components/modules/languages/pages/joor-language.adoc
@@ -36,9 +36,9 @@ The jOOR language supports 4 options, which are listed below.
 |===
 // language options: END
 
-=== Variables
+== Variables
 
-The jOOR language allows the following variables to be used in the script
+The jOOR language allows the following variables to be used in the script:
 
 [width="100%",cols="2,1m,7",options="header"]
 |===
@@ -49,7 +49,7 @@ The jOOR language allows the following variables to be used 
in the script
 | body | Object | The message body
 |===
 
-=== Sample
+== Sample
 
 For example to transform the message using jOOR language to upper case
 
@@ -72,7 +72,7 @@ And in XML DSL:
 </route>
 ----
 
-=== Multi statements
+== Multi statements
 
 It is possible to include multiple statements, for example where we in the 
first statement gets the `user` header.
 And then in the 2nd statement we return a value whether the user is `null` or 
not.
@@ -93,8 +93,44 @@ from("seda:orders")
   .to("seda:user");
 ----
 
-=== Limitations
+== Hot re-load
 
+You can turn of pre compilation for the jOOR language and then Camel will 
recompile the script for each message.
+You can externalize the code into a resource file, which will be reloaded on 
each message as shown:
+
+[source,java]
+----
+JoorLanguage joor = (JoorLanguage) context.resolveLanguage("joor");
+joor.setPreCompile(false);
+
+from("jms:incoming")
+    .transform().joor("resource:file:src/main/resources/orders.joor")
+    .to("jms:orders");
+----
+
+Here the jOOR script is externalized into the file 
`src/main/resources/orders.joor` which allows you to edit this source
+file while running the Camel application and try the changes with 
hot-reloading.
+
+In XML DSL its a little bit easier as you can turn off pre-compilation in the 
`<joor>` XML element:
+
+[source,xml]
+----
+<route>
+    <from uri="jms:incoming"/>
+    <transform>
+      <joor 
preCompile="false">resource:file:src/main/resources/orders.joor</joor>
+    </transform>
+    <to uri="jms:orders"/>
+</route>
+----
+
+== Limitations
+
+The jOOR Camel language is only supported as a block of Java code that gets 
compiled into a Java class with a single method.
+The code that you can write is therefore limited to a number of Java 
statements.
+
+The supported runtime is intended for Java standalone, Spring Boot, Camel 
Quarkus and other microservices runtimes.
+It is not supported in OSGi, Camel Karaf or any kind of Java Application 
Server runtime.
 
 == Dependencies
 

Reply via email to