This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new cb4f00f  Enable Aws2TestEnvContext to handle setting up Quarkus AWS 
configuration properties
cb4f00f is described below

commit cb4f00f44a7bdb613dbd174da32a5cef913a8b0e
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Thu Sep 30 10:07:11 2021 +0100

    Enable Aws2TestEnvContext to handle setting up Quarkus AWS configuration 
properties
    
    Fixes #3137
---
 .../aws2/ddb/it/Aws2DdbQuarkusClientTest.java      |  5 +-
 .../aws2/ddb/it/Aws2DdbTestEnvCustomizer.java      | 26 +---------
 .../component/aws2/s3/it/Aws2S3Resource.java       | 24 ++++++++++
 .../src/main/resources/application.properties      |  6 ---
 .../aws2/s3/it/Aws2S3QuarkusClientTest.java        |  5 +-
 .../aws2/s3/it/Aws2S3TestEnvCustomizer.java        | 24 ----------
 .../src/main/resources/application.properties      | 20 --------
 .../src/main/resources/application.properties      | 24 ----------
 .../src/main/resources/application.properties      | 24 ----------
 .../src/main/resources/application.properties      | 20 --------
 .../src/main/resources/application.properties      | 22 ---------
 .../src/main/resources/application.properties      | 22 ---------
 .../src/main/resources/application.properties      | 24 ----------
 .../quarkus/test/support/aws2/Aws2TestConfig.java  | 47 ++++++++++++++++++
 .../test/support/aws2/Aws2TestEnvContext.java      | 56 +++++++++++-----------
 .../test/support/aws2/Aws2TestResource.java        | 20 ++++++--
 16 files changed, 123 insertions(+), 246 deletions(-)

diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientTest.java
 
b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientTest.java
index a4cfee5..989d0e2 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientTest.java
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.ResourceArg;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
@@ -40,7 +41,9 @@ import 
software.amazon.awssdk.services.dynamodb.model.TableStatus;
 import static org.hamcrest.CoreMatchers.is;
 
 @QuarkusTest
-@QuarkusTestResource(Aws2TestResource.class)
+@QuarkusTestResource(value = Aws2TestResource.class, initArgs = {
+        @ResourceArg(name = "awsQuarkusClientTest", value = "true")
+})
 class Aws2DdbQuarkusClientTest {
 
     private static final Logger LOG = 
Logger.getLogger(Aws2DdbQuarkusClientTest.class);
diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTestEnvCustomizer.java
 
b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTestEnvCustomizer.java
index 652ee00..034f70c 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTestEnvCustomizer.java
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTestEnvCustomizer.java
@@ -18,8 +18,6 @@ package org.apache.camel.quarkus.component.aws2.ddb.it;
 
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -44,7 +42,7 @@ public class Aws2DdbTestEnvCustomizer implements 
Aws2TestEnvCustomizer {
 
     @Override
     public Service[] localstackServices() {
-        return new Service[] { Service.DYNAMODB, Service.DYNAMODB_STREAMS };
+        return new Service[] { Service.DYNAMODB };
     }
 
     @Override
@@ -83,28 +81,6 @@ public class Aws2DdbTestEnvCustomizer implements 
Aws2TestEnvCustomizer {
                 envContext.closeable(() -> 
client.deleteTable(DeleteTableRequest.builder().tableName(table).build()));
             }
         }
-
-        Map<String, String> envContextProperties = envContext.getProperies();
-        String accessKey = 
envContextProperties.get("camel.component.aws2-ddb.access-key");
-        String secretKey = 
envContextProperties.get("camel.component.aws2-ddb.secret-key");
-        String region = 
envContextProperties.get("camel.component.aws2-ddb.region");
-
-        
envContext.property("quarkus.dynamodb.aws.credentials.static-provider.access-key-id",
 accessKey);
-        
envContext.property("quarkus.dynamodb.aws.credentials.static-provider.secret-access-key",
 secretKey);
-        envContext.property("quarkus.dynamodb.aws.region", region);
-        envContext.property("quarkus.dynamodb.aws.credentials.type", "static");
-
-        // Propagate localstack environment config to Quarkus AWS if required
-        Optional<String> overrideEndpoint = envContextProperties
-                .keySet()
-                .stream()
-                .filter(key -> key.endsWith("uri-endpoint-override"))
-                .findFirst();
-
-        if (overrideEndpoint.isPresent()) {
-            String endpoint = envContextProperties.get(overrideEndpoint.get());
-            envContext.property("quarkus.dynamodb.endpoint-override", 
endpoint);
-        }
     }
 
     private CreateTableRequest.Builder createTableRequest(String tableName, 
String keyColumn) {
diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Resource.java
 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Resource.java
index 7a831d7..8472c33 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Resource.java
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Resource.java
@@ -32,6 +32,7 @@ import java.util.stream.Collectors;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
+import javax.inject.Named;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.FormParam;
@@ -48,13 +49,20 @@ import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.aws2.s3.AWS2S3Constants;
 import org.apache.camel.component.aws2.s3.AWS2S3Operations;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.core.ResponseInputStream;
+import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.services.s3.S3Client;
+import software.amazon.awssdk.services.s3.S3ClientBuilder;
 import software.amazon.awssdk.services.s3.model.Bucket;
 import software.amazon.awssdk.services.s3.model.GetObjectResponse;
 import software.amazon.awssdk.services.s3.model.NoSuchBucketException;
 import software.amazon.awssdk.services.s3.model.S3Object;
+import software.amazon.awssdk.services.s3.presigner.S3Presigner;
 
 @Path("/aws2")
 @ApplicationScoped
@@ -72,6 +80,22 @@ public class Aws2S3Resource {
     @ConfigProperty(name = "aws-s3.bucket-name")
     String bucketName;
 
+    @javax.enterprise.inject.Produces
+    @Named
+    public S3Presigner s3Presigner(S3ClientBuilder clientBuilder) {
+        // createDownloadLink operations require the presigner
+        // This could be simplified via 
https://github.com/quarkusio/quarkus/issues/13611
+        Config config = ConfigProvider.getConfig();
+        String accessKey = 
config.getValue("quarkus.s3.aws.credentials.static-provider.access-key-id", 
String.class);
+        String secretKey = 
config.getValue("quarkus.s3.aws.credentials.static-provider.secret-access-key", 
String.class);
+        String region = config.getValue("quarkus.s3.aws.region", String.class);
+
+        return 
S3Presigner.builder().credentialsProvider(StaticCredentialsProvider.create(
+                AwsBasicCredentials.create(accessKey, secretKey)))
+                .region(Region.of(region))
+                .build();
+    }
+
     @Path("s3/object/{key}")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/resources/application.properties
 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/resources/application.properties
index be39e69..1ab9e47 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/resources/application.properties
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/main/resources/application.properties
@@ -15,12 +15,6 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 #
-# Camel :: AWS2 options
-#
-camel.component.aws2-s3.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-s3.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-s3.region=${AWS_REGION:us-east-1}
-#
 # Quarkus :: S3 Client options
 #
 quarkus.s3.sync-client.type=apache
diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3QuarkusClientTest.java
 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3QuarkusClientTest.java
index 4223c1b..6f3ede2 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3QuarkusClientTest.java
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3QuarkusClientTest.java
@@ -20,6 +20,7 @@ import java.util.UUID;
 import java.util.stream.Stream;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.ResourceArg;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
@@ -32,7 +33,9 @@ import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
 
 @QuarkusTest
-@QuarkusTestResource(Aws2TestResource.class)
+@QuarkusTestResource(value = Aws2TestResource.class, initArgs = {
+        @ResourceArg(name = "awsQuarkusClientTest", value = "true")
+})
 class Aws2S3QuarkusClientTest {
 
     @Test
diff --git 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3TestEnvCustomizer.java
 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3TestEnvCustomizer.java
index 81deeb5..a9dd8cf 100644
--- 
a/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3TestEnvCustomizer.java
+++ 
b/integration-test-groups/aws2-quarkus-client/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3TestEnvCustomizer.java
@@ -17,8 +17,6 @@
 package org.apache.camel.quarkus.component.aws2.s3.it;
 
 import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
 
 import org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvContext;
 import org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer;
@@ -43,27 +41,5 @@ public class Aws2S3TestEnvCustomizer implements 
Aws2TestEnvCustomizer {
         
s3Client.createBucket(CreateBucketRequest.builder().bucket(bucketName).build());
         envContext.property("aws-s3.bucket-name", bucketName);
         envContext.closeable(() -> 
s3Client.deleteBucket(DeleteBucketRequest.builder().bucket(bucketName).build()));
-
-        Map<String, String> envContextProperties = envContext.getProperies();
-        String accessKey = 
envContextProperties.get("camel.component.aws2-s3.access-key");
-        String secretKey = 
envContextProperties.get("camel.component.aws2-s3.secret-key");
-        String region = 
envContextProperties.get("camel.component.aws2-s3.region");
-
-        
envContext.property("quarkus.s3.aws.credentials.static-provider.access-key-id", 
accessKey);
-        
envContext.property("quarkus.s3.aws.credentials.static-provider.secret-access-key",
 secretKey);
-        envContext.property("quarkus.s3.aws.region", region);
-        envContext.property("quarkus.s3.aws.credentials.type", "static");
-
-        // Propagate localstack environment config to Quarkus AWS if required
-        Optional<String> overrideEndpoint = envContextProperties
-                .keySet()
-                .stream()
-                .filter(key -> key.endsWith("uri-endpoint-override"))
-                .findFirst();
-
-        if (overrideEndpoint.isPresent()) {
-            String endpoint = envContextProperties.get(overrideEndpoint.get());
-            envContext.property("quarkus.s3.endpoint-override", endpoint);
-        }
     }
 }
diff --git 
a/integration-test-groups/aws2/aws2-cw/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-cw/src/main/resources/application.properties
deleted file mode 100644
index 8f24b45..0000000
--- 
a/integration-test-groups/aws2/aws2-cw/src/main/resources/application.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-cw.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-cw.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-cw.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-test-groups/aws2/aws2-ddb/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-ddb/src/main/resources/application.properties
deleted file mode 100644
index ea1c7a8..0000000
--- 
a/integration-test-groups/aws2/aws2-ddb/src/main/resources/application.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-ddb.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-ddb.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-ddb.region=${AWS_REGION:us-east-1}
-
-camel.component.aws2-ddbstream.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-ddbstream.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-ddbstream.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-test-groups/aws2/aws2-kinesis/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-kinesis/src/main/resources/application.properties
deleted file mode 100644
index e7a4c2d..0000000
--- 
a/integration-test-groups/aws2/aws2-kinesis/src/main/resources/application.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-kinesis.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-kinesis.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-kinesis.region=${AWS_REGION:us-east-1}
-
-camel.component.aws2-kinesis-firehose.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-kinesis-firehose.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-kinesis-firehose.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-test-groups/aws2/aws2-lambda/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-lambda/src/main/resources/application.properties
deleted file mode 100644
index f8883f8..0000000
--- 
a/integration-test-groups/aws2/aws2-lambda/src/main/resources/application.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-lambda.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-lambda.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-lambda.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-test-groups/aws2/aws2-s3/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-s3/src/main/resources/application.properties
deleted file mode 100644
index 745bd72..0000000
--- 
a/integration-test-groups/aws2/aws2-s3/src/main/resources/application.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-#
-# Camel :: AWS2 options
-#
-camel.component.aws2-s3.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-s3.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-s3.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-test-groups/aws2/aws2-ses/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-ses/src/main/resources/application.properties
deleted file mode 100644
index a55a15a..0000000
--- 
a/integration-test-groups/aws2/aws2-ses/src/main/resources/application.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-ses.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-ses.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-ses.region=${AWS_REGION:us-east-1}
-
-mailslurp.api.key=${MAILSLURP_API_KEY}
diff --git 
a/integration-test-groups/aws2/aws2-sqs-sns/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws2-sqs-sns/src/main/resources/application.properties
deleted file mode 100644
index 777210a..0000000
--- 
a/integration-test-groups/aws2/aws2-sqs-sns/src/main/resources/application.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.component.aws2-sns.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-sns.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-sns.region=${AWS_REGION:us-east-1}
-
-camel.component.aws2-sqs.access-key=${AWS_ACCESS_KEY}
-camel.component.aws2-sqs.secret-key=${AWS_SECRET_KEY}
-camel.component.aws2-sqs.region=${AWS_REGION:us-east-1}
diff --git 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestConfig.java
 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestConfig.java
new file mode 100644
index 0000000..1a72d2b
--- /dev/null
+++ 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestConfig.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.test.support.aws2;
+
+public class Aws2TestConfig {
+    private final String accessKey;
+    private final String accessSecret;
+    private final String region;
+    private final boolean awsQuarkusClientTest;
+
+    public Aws2TestConfig(String accessKey, String accessSecret, String 
region, boolean awsQuarkusClientTest) {
+        this.accessKey = accessKey;
+        this.accessSecret = accessSecret;
+        this.region = region;
+        this.awsQuarkusClientTest = awsQuarkusClientTest;
+    }
+
+    public String getAccessKey() {
+        return accessKey;
+    }
+
+    public String getAccessSecret() {
+        return accessSecret;
+    }
+
+    public String getRegion() {
+        return region;
+    }
+
+    public boolean isAwsQuarkusClientTest() {
+        return awsQuarkusClientTest;
+    }
+}
diff --git 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
index 883a2a0..3d4f18e 100644
--- 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
+++ 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
@@ -46,32 +46,36 @@ public class Aws2TestEnvContext {
     private final ArrayList<AutoCloseable> closeables = new ArrayList<>();
     private final Map<Service, ? extends SdkClient> clients = new 
EnumMap<>(Service.class);
     private final Map<String, String> properties = new LinkedHashMap<>();
-    private final String accessKey;
-    private final String secretKey;
-    private final String region;
     private final Optional<LocalStackContainer> localstack;
+    private final Aws2TestConfig aws2TestConfig;
 
-    public Aws2TestEnvContext(String accessKey, String secretKey, String 
region, Optional<LocalStackContainer> localstack,
+    public Aws2TestEnvContext(Aws2TestConfig aws2TestConfig, 
Optional<LocalStackContainer> localstack,
             Service[] exportCredentialsServices) {
-        this.accessKey = accessKey;
-        this.secretKey = secretKey;
-        this.region = region;
         this.localstack = localstack;
-
-        localstack.ifPresent(ls -> {
-            for (Service service : exportCredentialsServices) {
-                String s = camelServiceAcronym(service);
-                if (s != null) {
-                    properties.put("camel.component.aws2-" + s + 
".access-key", accessKey);
-                    properties.put("camel.component.aws2-" + s + 
".secret-key", secretKey);
-                    properties.put("camel.component.aws2-" + s + ".region", 
region);
-
-                    properties.put("camel.component.aws2-" + s + 
".override-endpoint", "true");
-                    properties.put("camel.component.aws2-" + s + 
".uri-endpoint-override",
-                            ls.getEndpointOverride(service).toString());
-                }
+        this.aws2TestConfig = aws2TestConfig;
+
+        for (Service service : exportCredentialsServices) {
+            if (aws2TestConfig.isAwsQuarkusClientTest()) {
+                String prefix = String.format("quarkus.%s", service.getName());
+                properties.put(prefix + 
".aws.credentials.static-provider.access-key-id", 
aws2TestConfig.getAccessKey());
+                properties.put(prefix + 
".aws.credentials.static-provider.secret-access-key",
+                        aws2TestConfig.getAccessSecret());
+                properties.put(prefix + ".aws.region", 
aws2TestConfig.getRegion());
+                properties.put(prefix + ".aws.credentials.type", "static");
+                localstack.ifPresent(ls -> {
+                    properties.put(prefix + ".endpoint-override", 
ls.getEndpointOverride(service).toString());
+                });
+            } else {
+                String prefix = String.format("camel.component.aws2-%s", 
camelServiceAcronym(service));
+                properties.put(prefix + ".access-key", 
aws2TestConfig.getAccessSecret());
+                properties.put(prefix + ".secret-key", 
aws2TestConfig.getAccessSecret());
+                properties.put(prefix + ".region", aws2TestConfig.getRegion());
+                properties.put(prefix + ".override-endpoint", "true");
+                localstack.ifPresent(ls -> {
+                    properties.put(prefix + ".uri-endpoint-override", 
ls.getEndpointOverride(service).toString());
+                });
             }
-        });
+        }
     }
 
     /**
@@ -141,13 +145,13 @@ public class Aws2TestEnvContext {
             Supplier<B> builderSupplier) {
         B builder = builderSupplier.get()
                 
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(
-                        accessKey, secretKey)));
-        builder.region(Region.of(region));
+                        aws2TestConfig.getAccessKey(), 
aws2TestConfig.getAccessSecret())));
+        builder.region(Region.of(aws2TestConfig.getRegion()));
 
         if (localstack.isPresent()) {
             builder
                     
.endpointOverride(localstack.get().getEndpointOverride(service))
-                    .region(Region.of(region));
+                    .region(Region.of(aws2TestConfig.getRegion()));
         } else if (service == Service.IAM) {
             /* Avoid UnknownHostException: iam.eu-central-1.amazonaws.com */
             builder.endpointOverride(URI.create("https://iam.amazonaws.com";));
@@ -189,8 +193,4 @@ public class Aws2TestEnvContext {
             return service.name().toLowerCase(Locale.ROOT);
         }
     }
-
-    public String getRegion() {
-        return region;
-    }
 }
diff --git 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestResource.java
 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestResource.java
index 9864311..e0c6260 100644
--- 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestResource.java
+++ 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestResource.java
@@ -38,6 +38,13 @@ public final class Aws2TestResource implements 
QuarkusTestResourceLifecycleManag
     private static final Logger LOG = 
LoggerFactory.getLogger(Aws2TestResource.class);
 
     private Aws2TestEnvContext envContext;
+    private boolean awsQuarkusClientTest;
+
+    @Override
+    public void init(Map<String, String> initArgs) {
+        String awsQuarkusClientTest = initArgs.get("awsQuarkusClientTest");
+        this.awsQuarkusClientTest = awsQuarkusClientTest != null && 
awsQuarkusClientTest.equals("true");
+    }
 
     @SuppressWarnings("resource")
     @Override
@@ -77,16 +84,17 @@ public final class Aws2TestResource implements 
QuarkusTestResourceLifecycleManag
             localstack.withLogConsumer(new Slf4jLogConsumer(LOG));
             localstack.start();
 
-            envContext = new Aws2TestEnvContext(localstack.getAccessKey(), 
localstack.getSecretKey(), localstack.getRegion(),
-                    Optional.of(localstack), exportCredentialsServices);
-
+            Aws2TestConfig config = new 
Aws2TestConfig(localstack.getAccessKey(), localstack.getSecretKey(),
+                    localstack.getRegion(), awsQuarkusClientTest);
+            envContext = new Aws2TestEnvContext(config, 
Optional.of(localstack), exportCredentialsServices);
         } else {
             if (!startMockBackend && !realCredentialsProvided) {
                 throw new IllegalStateException(
                         "Set AWS_ACCESS_KEY, AWS_SECRET_KEY and AWS_REGION env 
vars if you set CAMEL_QUARKUS_START_MOCK_BACKEND=false");
             }
             MockBackendUtils.logRealBackendUsed();
-            envContext = new Aws2TestEnvContext(realKey, realSecret, 
realRegion, Optional.empty(), new Service[0]);
+            Aws2TestConfig config = new Aws2TestConfig(realKey, realSecret, 
realRegion, awsQuarkusClientTest);
+            envContext = new Aws2TestEnvContext(config, Optional.empty(), new 
Service[0]);
         }
 
         customizers.forEach(customizer -> customizer.customize(envContext));
@@ -96,7 +104,9 @@ public final class Aws2TestResource implements 
QuarkusTestResourceLifecycleManag
 
     @Override
     public void stop() {
-        envContext.close();
+        if (envContext != null) {
+            envContext.close();
+        }
     }
 
     @Override

Reply via email to