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}");
}