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

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


The following commit(s) were added to refs/heads/main by this push:
     new def4d63  Aggregator example
def4d63 is described below

commit def4d63f74b008f8ecf5a50951ba13c91a41e0a6
Author: Marat Gubaidullin <marat.gubaidul...@gmail.com>
AuthorDate: Tue Sep 20 18:25:48 2022 -0400

    Aggregator example
---
 karavan-demo/aggregator/Aggregator.java        | 21 ++++++++++++++++++++
 karavan-demo/aggregator/aggregator.yaml        | 27 ++++++++++++++++++++++++++
 karavan-demo/aggregator/application.properties | 13 +++++++++++++
 karavan-demo/aggregator/file_src/1.txt         |  1 +
 karavan-demo/aggregator/file_src/2.txt         |  1 +
 karavan-demo/aggregator/file_src/3.txt         |  1 +
 6 files changed, 64 insertions(+)

diff --git a/karavan-demo/aggregator/Aggregator.java 
b/karavan-demo/aggregator/Aggregator.java
new file mode 100644
index 0000000..6182b72
--- /dev/null
+++ b/karavan-demo/aggregator/Aggregator.java
@@ -0,0 +1,21 @@
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.Exchange;
+import org.apache.camel.AggregationStrategy;
+import java.util.ArrayList;
+
+@BindToRegistry("aggregator")
+public class Aggregator implements AggregationStrategy {
+
+    public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+        if (oldExchange == null) {
+            return newExchange;
+        }
+
+        String oldBody = oldExchange.getIn().getBody(String.class);
+        String newBody = newExchange.getIn().getBody(String.class);
+        oldExchange.getIn().setBody(oldBody + "+" + newBody);
+        return oldExchange;
+    }
+}
\ No newline at end of file
diff --git a/karavan-demo/aggregator/aggregator.yaml 
b/karavan-demo/aggregator/aggregator.yaml
new file mode 100644
index 0000000..f515714
--- /dev/null
+++ b/karavan-demo/aggregator/aggregator.yaml
@@ -0,0 +1,27 @@
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+  name: testflow
+spec:
+  flows:
+    - route:
+        from:
+          uri: timer:test
+          steps:
+            - setBody:
+                expression:
+                  constant:
+                    expression: Sample message
+            - log:
+                message: ${body}
+            - pollEnrich:
+                expression:
+                  simple:
+                    expression: file:file_src?noop=true
+                aggregationStrategy: '#aggregator'
+                timeout: '1000'
+            - log:
+                message: 'polled: ${body}'
+          parameters:
+            delay: '1000'
+            period: '3000'
diff --git a/karavan-demo/aggregator/application.properties 
b/karavan-demo/aggregator/application.properties
new file mode 100644
index 0000000..397a47f
--- /dev/null
+++ b/karavan-demo/aggregator/application.properties
@@ -0,0 +1,13 @@
+
+camel.jbang.project-id=aggregator
+camel.jbang.project-name=Aggregator
+camel.jbang.project-description=Aggregator
+camel.jbang.gav=org.camel.karavan.demo:aggregator:1.0.0
+camel.jbang.runtime=quarkus
+camel.jbang.quarkusVersion=2.12.2.Final
+camel.jbang.dependencies=mvn:io.quarkus:quarkus-container-image-jib,mvn:org.apache.camel.quarkus:camel-quarkus-microprofile-health,camel:file
+camel.health.enabled=true
+camel.health.exposure-level=full
+quarkus.container-image.group=karavan
+quarkus.container-image.name=aggregator
+quarkus.openshift.labels."app.openshift.io/runtime"=camel
\ No newline at end of file
diff --git a/karavan-demo/aggregator/file_src/1.txt 
b/karavan-demo/aggregator/file_src/1.txt
new file mode 100644
index 0000000..56a6051
--- /dev/null
+++ b/karavan-demo/aggregator/file_src/1.txt
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/karavan-demo/aggregator/file_src/2.txt 
b/karavan-demo/aggregator/file_src/2.txt
new file mode 100644
index 0000000..d8263ee
--- /dev/null
+++ b/karavan-demo/aggregator/file_src/2.txt
@@ -0,0 +1 @@
+2
\ No newline at end of file
diff --git a/karavan-demo/aggregator/file_src/3.txt 
b/karavan-demo/aggregator/file_src/3.txt
new file mode 100644
index 0000000..e440e5c
--- /dev/null
+++ b/karavan-demo/aggregator/file_src/3.txt
@@ -0,0 +1 @@
+3
\ No newline at end of file

Reply via email to