Camel-AWS2-Eventbridge: Implementation
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 @@
@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 @@
@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 @@
@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