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/09/10 16:20:07 UTC

[camel] 02/04: Camel-AWS2-S3: Adding tests with localstack and test containers

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 8d480599dde9c5859126e0b6618131231cec95f9
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Sep 10 16:46:51 2020 +0200

    Camel-AWS2-S3: Adding tests with localstack and test containers
---
 components/camel-aws2-s3/pom.xml                   | 12 ---------
 .../aws2/s3/localstack/Aws2S3BaseTest.java         | 30 +++++++++++++---------
 .../s3/localstack/S3ConsumerLocalstackTest.java    |  4 +--
 3 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/components/camel-aws2-s3/pom.xml b/components/camel-aws2-s3/pom.xml
index 5cf3106..81d292b 100644
--- a/components/camel-aws2-s3/pom.xml
+++ b/components/camel-aws2-s3/pom.xml
@@ -67,18 +67,6 @@
             <artifactId>camel-testcontainers-junit5</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>localstack</artifactId>
-            <version>${testcontainers-version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-s3</artifactId>
-            <version>${aws-java-sdk-version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <profiles>
diff --git a/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/Aws2S3BaseTest.java b/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/Aws2S3BaseTest.java
index 26f459d..555f4f0 100644
--- a/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/Aws2S3BaseTest.java
+++ b/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/Aws2S3BaseTest.java
@@ -1,21 +1,20 @@
 package org.apache.camel.component.aws2.s3.localstack;
 
+import java.net.URI;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.test.testcontainers.junit5.ContainerAwareTestSupport;
+import org.apache.camel.test.testcontainers.junit5.Wait;
 import org.junit.jupiter.api.TestInstance;
 import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.localstack.LocalStackContainer;
-import org.testcontainers.containers.localstack.LocalStackContainer.Service;
-import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
-import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.services.s3.S3Client;
 
 @TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public class Aws2S3BaseTest extends ContainerAwareTestSupport {
 
-    public static final String CONTAINER_IMAGE = "localstack:0.11.4";
+    public static final String CONTAINER_IMAGE = "localstack/localstack:0.11.4";
     public static final String CONTAINER_NAME = "s3";
 
     @Override
@@ -23,10 +22,19 @@ public class Aws2S3BaseTest extends ContainerAwareTestSupport {
         return localstackContainer();
     }
 
-    public static LocalStackContainer localstackContainer() {
-        return new LocalStackContainer()
+    public static GenericContainer localstackContainer() {
+        return new GenericContainer(CONTAINER_IMAGE)
                 .withNetworkAliases(CONTAINER_NAME)
-                .withServices(Service.S3);
+                .withEnv("SERVICES", "s3")
+                .withExposedPorts(4572)
+                .waitingFor(Wait.forListeningPort());
+    }
+
+    public String getS3Url() {
+        return String.format(
+                "%s:%d",
+                getContainerHost(CONTAINER_NAME),
+                getContainerPort(CONTAINER_NAME, 4572));
     }
 
     @Override
@@ -35,10 +43,8 @@ public class Aws2S3BaseTest extends ContainerAwareTestSupport {
         AWS2S3Component s3 = context.getComponent("aws2-s3", AWS2S3Component.class);
         S3Client s3Client = S3Client
                 .builder()
-                .endpointOverride(localstackContainer().getEndpointOverride(LocalStackContainer.Service.S3))
-                .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(
-                        localstackContainer().getAccessKey(), localstackContainer().getSecretKey())))
-                .region(Region.of(localstackContainer().getRegion()))
+                .endpointOverride(URI.create("http://" + getS3Url()))
+                .region(Region.EU_WEST_1)
                 .build();
         s3.getConfiguration().setAmazonS3Client(s3Client);
         return context;
diff --git a/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/S3ConsumerLocalstackTest.java b/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/S3ConsumerLocalstackTest.java
index 541a0c8..ed82771 100644
--- a/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/S3ConsumerLocalstackTest.java
+++ b/components/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/localstack/S3ConsumerLocalstackTest.java
@@ -73,11 +73,11 @@ public class S3ConsumerLocalstackTest extends Aws2S3BaseTest {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                String awsEndpoint = "aws2-s3://mycamel?autoCreateBucket=false";
+                String awsEndpoint = "aws2-s3://mycamel?autoCreateBucket=true";
 
                 from("direct:putObject").startupOrder(1).to(awsEndpoint).to("mock:result");
 
-                from("aws2-s3://mycamel?moveAfterRead=true&destinationBucket=camel-kafka-connector&autoCreateBucket=false&destinationBucketPrefix=RAW(movedPrefix)&destinationBucketSuffix=RAW(movedSuffix)")
+                from("aws2-s3://mycamel?moveAfterRead=true&destinationBucket=camel-kafka-connector&autoCreateBucket=true&destinationBucketPrefix=RAW(movedPrefix)&destinationBucketSuffix=RAW(movedSuffix)")
                         .startupOrder(2).log("${body}");
 
             }