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