You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/07/30 06:15:19 UTC
[camel] 01/03: CAMEL-15347 - Camel-aws2-s3: moveAfterRead true
bucket not created
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.git
commit fc6ccf43672b96de3d804cbc3a5ac26eb06cbbb4
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Jul 30 08:10:09 2020 +0200
CAMEL-15347 - Camel-aws2-s3: moveAfterRead true bucket not created
---
.../camel/component/aws2/s3/AWS2S3Consumer.java | 35 ++++++++++++++++++++++
.../src/test/resources/log4j2.properties | 2 +-
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java b/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
index acc6eab..154a5d4 100644
--- a/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
+++ b/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
@@ -40,6 +40,7 @@ import software.amazon.awssdk.core.ResponseInputStream;
import software.amazon.awssdk.core.sync.ResponseTransformer;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.CopyObjectRequest;
+import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.model.GetObjectRequest.Builder;
@@ -62,6 +63,40 @@ public class AWS2S3Consumer extends ScheduledBatchPollingConsumer {
public AWS2S3Consumer(AWS2S3Endpoint endpoint, Processor processor) throws NoFactoryAvailableException {
super(endpoint, processor);
}
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+
+ if (getConfiguration().isMoveAfterRead()) {
+ try {
+ ListObjectsRequest.Builder builder = ListObjectsRequest.builder();
+ builder.bucket(getConfiguration().getDestinationBucket());
+ builder.maxKeys(maxMessagesPerPoll);
+ getAmazonS3Client().listObjects(builder.build());
+ LOG.trace("Bucket [{}] already exists", getConfiguration().getDestinationBucket());
+ return;
+ } catch (AwsServiceException ase) {
+ /* 404 means the bucket doesn't exist */
+ if (ase.awsErrorDetails().errorCode().equalsIgnoreCase("404")) {
+ throw ase;
+ }
+ }
+
+ LOG.trace("Destination Bucket [{}] doesn't exist yet", getConfiguration().getDestinationBucket());
+
+ if (getConfiguration().isAutoCreateBucket()) {
+ // creates the new bucket because it doesn't exist yet
+ CreateBucketRequest createBucketRequest = CreateBucketRequest.builder().bucket(getConfiguration().getDestinationBucket()).build();
+
+ LOG.trace("Creating Destination bucket [{}] in region [{}] with request [{}]...", getConfiguration().getDestinationBucket(), getConfiguration().getRegion(), createBucketRequest);
+
+ getAmazonS3Client().createBucket(createBucketRequest);
+
+ LOG.trace("Destination Bucket created");
+ }
+ }
+ }
@Override
protected int poll() throws Exception {
diff --git a/components/camel-aws2-s3/src/test/resources/log4j2.properties b/components/camel-aws2-s3/src/test/resources/log4j2.properties
index a287c66..b4e4ec4 100644
--- a/components/camel-aws2-s3/src/test/resources/log4j2.properties
+++ b/components/camel-aws2-s3/src/test/resources/log4j2.properties
@@ -24,5 +24,5 @@ appender.out.type = Console
appender.out.name = out
appender.out.layout.type = PatternLayout
appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-rootLogger.level = INFO
+rootLogger.level = TRACE
rootLogger.appenderRef.file.ref = file