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

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new fcc8f12553 Document groovy extension limitations for property 
placeholders in native mode
fcc8f12553 is described below

commit fcc8f1255300540bd23155f49d05b4d1f66113f5
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Fri Apr 11 09:20:05 2025 +0100

    Document groovy extension limitations for property placeholders in native 
mode
---
 .../ROOT/pages/reference/extensions/groovy.adoc    | 28 ++++++++++++++++++----
 .../groovy/runtime/src/main/doc/limitations.adoc   | 27 +++++++++++++++++----
 2 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/groovy.adoc 
b/docs/modules/ROOT/pages/reference/extensions/groovy.adoc
index 8a8fe60be2..75474be117 100644
--- a/docs/modules/ROOT/pages/reference/extensions/groovy.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/groovy.adoc
@@ -48,13 +48,31 @@ endif::[]
 [id="extensions-groovy-camel-quarkus-limitations"]
 == Camel Quarkus limitations
 
-Due to some limitations in GraalVM that prevent to execute even basic scripts 
in native mode, the compilation of the
-Groovy expressions is made with the static compilation enabled which means 
that the types used in your expression must
+[id="extensions-groovy-limitations-native-mode-limitations"]
+=== Native mode limitations
+
+Compilation of Groovy expressions is made with static compilation enabled. 
Which means that the types used in your expressions must
 be known at compile time. Please refer to the 
https://docs.groovy-lang.org/latest/html/documentation/core-semantics.html#static-type-checking[Groovy
 documentation for more details].
 
 This primarily impacts the customization of the Groovy Shell and the handling 
of exchange information.
 In native mode, customizing the Groovy Shell and accessing the following 
exchange variables will not function as expected.
-```
-header, variable, variables, exchangeProperty, exchangeProperties, log, 
attachment
-```
+
+* `attachment`
+* `exchangeProperty`
+* `exchangeProperties`
+* `header`
+* `log`
+* `variable`
+* `variables`
+
+If you use property placeholders within your expressions like.
+
+[source,java]
+----
+from("direct:start")
+    .transform().groovy("println '{{greeting.message}}'");
+----
+
+`greeting.message` will be evaluated once at build time and its value will be 
permanently stored in the native image.
+It is not possible to override the value of the property at runtime. 
Attempting to do so will result in an exception being thrown.
 
diff --git a/extensions/groovy/runtime/src/main/doc/limitations.adoc 
b/extensions/groovy/runtime/src/main/doc/limitations.adoc
index 1681d0d654..a1ee823550 100644
--- a/extensions/groovy/runtime/src/main/doc/limitations.adoc
+++ b/extensions/groovy/runtime/src/main/doc/limitations.adoc
@@ -1,9 +1,26 @@
-Due to some limitations in GraalVM that prevent to execute even basic scripts 
in native mode, the compilation of the
-Groovy expressions is made with the static compilation enabled which means 
that the types used in your expression must
+=== Native mode limitations
+
+Compilation of Groovy expressions is made with static compilation enabled. 
Which means that the types used in your expressions must
 be known at compile time. Please refer to the 
https://docs.groovy-lang.org/latest/html/documentation/core-semantics.html#static-type-checking[Groovy
 documentation for more details].
 
 This primarily impacts the customization of the Groovy Shell and the handling 
of exchange information.
 In native mode, customizing the Groovy Shell and accessing the following 
exchange variables will not function as expected.
-```
-header, variable, variables, exchangeProperty, exchangeProperties, log, 
attachment
-```
\ No newline at end of file
+
+* `attachment`
+* `exchangeProperty`
+* `exchangeProperties`
+* `header`
+* `log`
+* `variable`
+* `variables`
+
+If you use property placeholders within your expressions like.
+
+[source,java]
+----
+from("direct:start")
+    .transform().groovy("println '{{greeting.message}}'");
+----
+
+`greeting.message` will be evaluated once at build time and its value will be 
permanently stored in the native image.
+It is not possible to override the value of the property at runtime. 
Attempting to do so will result in an exception being thrown.

Reply via email to