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}

Reply via email to