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