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-kamelets-examples.git
The following commit(s) were added to refs/heads/main by this push:
new 330672f CAMEL-22214: camel-groovy - Allow to pre-load groovy source
files for shared functions and DTOs
330672f is described below
commit 330672fac398efdf682195f95de0e54b879a4441
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jul 14 16:51:13 2025 +0200
CAMEL-22214: camel-groovy - Allow to pre-load groovy source files for
shared functions and DTOs
---
jbang/groovy/OrderDTO.groovy | 10 ++++++++++
jbang/groovy/OrderService.groovy | 5 +++++
jbang/groovy/data/order.json | 4 ++++
jbang/groovy/my-route.camel.yaml | 24 ++++++++++++++++++++++++
4 files changed, 43 insertions(+)
diff --git a/jbang/groovy/OrderDTO.groovy b/jbang/groovy/OrderDTO.groovy
new file mode 100644
index 0000000..a3a371e
--- /dev/null
+++ b/jbang/groovy/OrderDTO.groovy
@@ -0,0 +1,10 @@
+class OrderDTO {
+
+ int id
+ String name
+ String level;
+
+ String toString() {
+ return "Order " + id + " from " + name + " (" + level + ")"
+ }
+}
diff --git a/jbang/groovy/OrderService.groovy b/jbang/groovy/OrderService.groovy
new file mode 100644
index 0000000..7eed31a
--- /dev/null
+++ b/jbang/groovy/OrderService.groovy
@@ -0,0 +1,5 @@
+class OrderService {
+ static boolean isGold(dto) {
+ return dto.id > 1000
+ }
+}
diff --git a/jbang/groovy/data/order.json b/jbang/groovy/data/order.json
new file mode 100644
index 0000000..c66544b
--- /dev/null
+++ b/jbang/groovy/data/order.json
@@ -0,0 +1,4 @@
+{
+ "id": 432,
+ "name": "Acme"
+}
\ No newline at end of file
diff --git a/jbang/groovy/my-route.camel.yaml b/jbang/groovy/my-route.camel.yaml
new file mode 100644
index 0000000..42d7a91
--- /dev/null
+++ b/jbang/groovy/my-route.camel.yaml
@@ -0,0 +1,24 @@
+- route:
+ from:
+ uri: file
+ parameters:
+ directoryName: data
+ noop: true
+ steps:
+ - unmarshal:
+ json:
+ library: Jackson
+ unmarshalType: OrderDTO
+ - setVariable:
+ name: level
+ expression:
+ groovy:
+ expression: |-
+ gold = OrderService.isGold(body)
+ return gold ? "Gold" : "Silver"
+ - script:
+ expression:
+ groovy:
+ expression: body.level = variable.level
+ - log:
+ message: ${body}