This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-examples.git
commit 1a77a4913f280b6ed4ea5f4cbf1196ed814ce006 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Tue Sep 29 08:28:32 2020 +0200 Camel-AWS2-Eventbridge: Implementation --- .../aws2-eventbridge-creator/pom.xml | 2 +- .../org/apache/camel/example/MyRouteBuilder.java | 31 +++++++++++++++++-- .../src/main/resources/application.properties | 11 +++---- .../src/main/resources/eventpattern.json | 35 ++++++++++++++++++++++ .../aws2-s3-events-inject/pom.xml | 2 +- .../org/apache/camel/example/MyRouteBuilder.java | 6 ++-- .../src/main/resources/application.properties | 8 ++--- .../aws2-sqs-consumer/pom.xml | 4 --- .../org/apache/camel/example/MyRouteBuilder.java | 4 +-- .../src/main/resources/application.properties | 10 +++---- 10 files changed, 87 insertions(+), 26 deletions(-) diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml index 9e67e36..fc4a236 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml @@ -64,7 +64,7 @@ <!-- we use these 2 camel components in this example --> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-bean</artifactId> + <artifactId>camel-timer</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java index 206ea2c..690ba44 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -16,7 +16,16 @@ */ package org.apache.camel.example; +import java.util.ArrayList; +import java.util.List; + +import org.apache.camel.Exchange; +import org.apache.camel.Processor; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; +import org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeOperations; +import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants; + +import software.amazon.awssdk.services.eventbridge.model.Target; /** * To use the endpoint DSL then we must extend EndpointRouteBuilder instead of RouteBuilder @@ -26,7 +35,25 @@ public class MyRouteBuilder extends EndpointRouteBuilder { @Override public void configure() throws Exception { - from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) - .log("The content is ${body}"); + from(timer("fire").repeatCount("1")) + .setHeader(EventbridgeConstants.RULE_NAME, constant("s3-events-rule")) + .to(aws2Eventbridge("default") + .operation(EventbridgeOperations.putRule) + .eventPatternFile("file:src/main/resources/eventpattern.json")) + .process(new Processor() { + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "s3-events-rule"); + Target target = Target.builder().id("sqs-queue").arn("arn:aws:sqs:eu-west-1:780410022472:camel-connector-test") + .build(); + List<Target> targets = new ArrayList<Target>(); + targets.add(target); + exchange.getIn().setHeader(EventbridgeConstants.TARGETS, targets); + } + }) + .to(aws2Eventbridge("default") + .operation(EventbridgeOperations.putTargets)) + .log("All set, enjoy!"); } } diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties index 77bc0d3..085166c 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties @@ -17,10 +17,11 @@ # to configure camel main # here you can configure options on camel main (see MainConfigurationProperties class) -camel.main.name = AWS2-S3-Consumer +camel.main.name = AWS2-Eventbridge-rule-creator # properties used in the route -camel.component.aws2-s3.accessKey=xxxx -camel.component.aws2-s3.secretKey=yyyy -camel.component.aws2-s3.region=region -bucketName=camel +camel.component.aws2-eventbridge.accessKey=xxxx +camel.component.aws2-eventbridge.secretKey=yyyy +camel.component.aws2-eventbridge.region=region +sqs-target=target-sqs-arn +sqs-target-id=sqs-queue diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json new file mode 100644 index 0000000..96cd573 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json @@ -0,0 +1,35 @@ +{ + "source": [ + "aws.s3" + ], + "detail": { + "eventSource": [ + "s3.amazonaws.com" + ], + "eventName": [ + "DeleteBucket", + "DeleteBucketCors", + "DeleteBucketLifecycle", + "DeleteBucketPolicy", + "DeleteBucketReplication", + "DeleteBucketTagging", + "DeleteBucketWebsite", + "CreateBucket", + "PutBucketAcl", + "PutBucketCors", + "PutBucketLifecycle", + "PutBucketPolicy", + "PutBucketLogging", + "PutBucketNotification", + "PutBucketReplication", + "PutBucketTagging", + "PutBucketRequestPayment", + "PutBucketVersioning", + "PutBucketWebsite", + "PutBucketEncryption", + "DeleteBucketEncryption", + "DeleteBucketPublicAccessBlock", + "PutBucketPublicAccessBlock" + ] + } +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml index 2e02f1b..4f19b01 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml @@ -64,7 +64,7 @@ <!-- we use these 2 camel components in this example --> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-bean</artifactId> + <artifactId>camel-timer</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java index 206ea2c..2e3a781 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -26,7 +26,9 @@ public class MyRouteBuilder extends EndpointRouteBuilder { @Override public void configure() throws Exception { - from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) - .log("The content is ${body}"); + from(timer("fire").repeatCount("1")) + .setBody(constant("Camel rocks")) + .to(aws2S3("{{bucketName}}").keyName("firstfile")) + .stop(); } } diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties index 77bc0d3..2317b2f 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties @@ -17,10 +17,10 @@ # to configure camel main # here you can configure options on camel main (see MainConfigurationProperties class) -camel.main.name = AWS2-S3-Consumer +camel.main.name = AWS2-S3-Events-Inject # properties used in the route -camel.component.aws2-s3.accessKey=xxxx -camel.component.aws2-s3.secretKey=yyyy +camel.component.aws2-s3.accessKey=xxxxx +camel.component.aws2-s3.secretKey=yyyyy camel.component.aws2-s3.region=region -bucketName=camel +bucketName=camel-bucket diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml index 44a94f3..1c543d0 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml @@ -64,10 +64,6 @@ <!-- we use these 2 camel components in this example --> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-bean</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> <artifactId>camel-aws2-sqs</artifactId> </dependency> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java index 206ea2c..caa2048 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -26,7 +26,7 @@ public class MyRouteBuilder extends EndpointRouteBuilder { @Override public void configure() throws Exception { - from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) - .log("The content is ${body}"); + from(aws2Sqs("{{sqs-queue-name}}").deleteAfterRead(true)) + .log("${body}"); } } diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties index 77bc0d3..57c38c9 100644 --- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties @@ -17,10 +17,10 @@ # to configure camel main # here you can configure options on camel main (see MainConfigurationProperties class) -camel.main.name = AWS2-S3-Consumer +camel.main.name = AWS2-SQS-Consumer # properties used in the route -camel.component.aws2-s3.accessKey=xxxx -camel.component.aws2-s3.secretKey=yyyy -camel.component.aws2-s3.region=region -bucketName=camel +camel.component.aws2-sqs.accessKey=xxxx +camel.component.aws2-sqs.secretKey=yyyy +camel.component.aws2-sqs.regionregion +sqs-queue-name=queue-name