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 14ffedb063 Full support of aws-secret-manager
14ffedb063 is described below

commit 14ffedb063271aa94cf2243409bc7cd0ee1878d4
Author: Jiri Ondrusek <ondrusek.j...@gmail.com>
AuthorDate: Wed Jan 29 13:49:24 2025 +0100

    Full support of aws-secret-manager
---
 .../examples/components/aws-secrets-manager.yml    |   6 +-
 .../reference/extensions/aws-secrets-manager.adoc  |  21 +++-
 extensions-jvm/pom.xml                             |   1 -
 .../aws-secrets-manager/deployment/pom.xml         |   4 +
 .../deployment/AwsSecretsManagerProcessor.java     |  14 ---
 .../aws-secrets-manager/pom.xml                    |   2 +-
 .../aws-secrets-manager/runtime/pom.xml            |   5 +
 .../main/resources/META-INF/quarkus-extension.yaml |   3 +-
 extensions/pom.xml                                 |   1 +
 .../aws2}/aws-secrets-manager/pom.xml              |  29 ++++-
 .../manager/it/AwsSecretsManagerResource.java      |  24 ++++-
 .../manager/it/AwsSecretsManagerRouteBuilder.java  |   0
 .../src/main/resources/application.properties      |   0
 .../secrets/manager/it/AwsSecretsManagerIT.java    |  17 +--
 .../secrets/manager/it/AwsSecretsManagerTest.java  | 117 +++++++++++++--------
 .../it/AwsSecretsManagerTestEnvCustomizer.java     |  17 +--
 .../secrets/manager/it/AwsSecretsManagerUtil.java  |  13 +--
 .../it/CamelContextRefreshOnSecretRefreshIT.java   |  21 ++--
 .../it/CamelContextRefreshOnSecretRefreshTest.java |   9 +-
 .../manager/it/ContextReloadTestProfile.java       |   0
 ...quarkus.test.support.aws2.Aws2TestEnvCustomizer |   0
 integration-test-groups/aws2/pom.xml               |   1 +
 integration-tests-jvm/pom.xml                      |   1 -
 .../test/support/aws2/BaseAws2Resource.java        |  13 ++-
 .../test/support/aws2/Aws2TestEnvContext.java      |  42 ++++----
 integration-tests/aws2-grouped/pom.xml             |  38 +++++++
 26 files changed, 250 insertions(+), 149 deletions(-)

diff --git a/docs/modules/ROOT/examples/components/aws-secrets-manager.yml 
b/docs/modules/ROOT/examples/components/aws-secrets-manager.yml
index 3b55d4b543..7ff494dfc1 100644
--- a/docs/modules/ROOT/examples/components/aws-secrets-manager.yml
+++ b/docs/modules/ROOT/examples/components/aws-secrets-manager.yml
@@ -2,11 +2,11 @@
 # This file was generated by 
camel-quarkus-maven-plugin:update-extension-doc-page
 cqArtifactId: camel-quarkus-aws-secrets-manager
 cqArtifactIdBase: aws-secrets-manager
-cqNativeSupported: false
-cqStatus: Preview
+cqNativeSupported: true
+cqStatus: Stable
 cqDeprecated: false
 cqJvmSince: 2.0.0
-cqNativeSince: n/a
+cqNativeSince: 3.19.0
 cqCamelPartName: aws-secrets-manager
 cqCamelPartTitle: AWS Secrets Manager
 cqCamelPartDescription: Manage secrets using AWS Secrets Manager.
diff --git 
a/docs/modules/ROOT/pages/reference/extensions/aws-secrets-manager.adoc 
b/docs/modules/ROOT/pages/reference/extensions/aws-secrets-manager.adoc
index e604116403..9c49874e04 100644
--- a/docs/modules/ROOT/pages/reference/extensions/aws-secrets-manager.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/aws-secrets-manager.adoc
@@ -4,17 +4,17 @@
 = AWS Secrets Manager
 :linkattrs:
 :cq-artifact-id: camel-quarkus-aws-secrets-manager
-:cq-native-supported: false
-:cq-status: Preview
-:cq-status-deprecation: Preview
+:cq-native-supported: true
+:cq-status: Stable
+:cq-status-deprecation: Stable
 :cq-description: Manage AWS Secrets Manager services using AWS SDK version 2.x.
 :cq-deprecated: false
 :cq-jvm-since: 2.0.0
-:cq-native-since: n/a
+:cq-native-since: 3.19.0
 
 ifeval::[{doc-show-badges} == true]
 [.badges]
-[.badge-key]##JVM since##[.badge-supported]##2.0.0## 
[.badge-key]##Native##[.badge-unsupported]##unsupported##
+[.badge-key]##JVM since##[.badge-supported]##2.0.0## [.badge-key]##Native 
since##[.badge-supported]##3.19.0##
 endif::[]
 
 Manage AWS Secrets Manager services using AWS SDK version 2.x.
@@ -29,6 +29,10 @@ Please refer to the above link for usage and configuration 
details.
 [id="extensions-aws-secrets-manager-maven-coordinates"]
 == Maven coordinates
 
+https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-aws-secrets-manager[Create
 a new project with this extension on {link-quarkus-code-generator}, 
window="_blank"]
+
+Or add the coordinates to your existing project:
+
 [source,xml]
 ----
 <dependency>
@@ -39,3 +43,10 @@ Please refer to the above link for usage and configuration 
details.
 ifeval::[{doc-show-user-guide-link} == true]
 Check the xref:user-guide/index.adoc[User guide] for more information about 
writing Camel Quarkus applications.
 endif::[]
+
+[id="extensions-aws-secrets-manager-ssl-in-native-mode"]
+== SSL in native mode
+
+This extension auto-enables SSL support in native mode. Hence you do not need 
to add
+`quarkus.ssl.native=true` to your `application.properties` yourself. See also
+https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index fcdea01fd9..6e44f46d8c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -37,7 +37,6 @@
         <!-- extensions a..z; do not remove this comment, it is important when 
sorting via  mvn process-resources -Pformat -->
         <module>asn1</module>
         <module>asterisk</module>
-        <module>aws-secrets-manager</module>
         <module>aws-xray</module>
         <module>azure-cosmosdb</module>
         <module>azure-storage-datalake</module>
diff --git a/extensions-jvm/aws-secrets-manager/deployment/pom.xml 
b/extensions/aws-secrets-manager/deployment/pom.xml
similarity index 93%
rename from extensions-jvm/aws-secrets-manager/deployment/pom.xml
rename to extensions/aws-secrets-manager/deployment/pom.xml
index 3713891a74..2e0beaf752 100644
--- a/extensions-jvm/aws-secrets-manager/deployment/pom.xml
+++ b/extensions/aws-secrets-manager/deployment/pom.xml
@@ -34,6 +34,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core-deployment</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws2-deployment</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-secrets-manager</artifactId>
diff --git 
a/extensions-jvm/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
 
b/extensions/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
similarity index 68%
rename from 
extensions-jvm/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
rename to 
extensions/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
index cbeeb1f980..d606e1b61b 100644
--- 
a/extensions-jvm/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
+++ 
b/extensions/aws-secrets-manager/deployment/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/deployment/AwsSecretsManagerProcessor.java
@@ -17,11 +17,7 @@
 package org.apache.camel.quarkus.component.aws.secrets.manager.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.pkg.steps.NativeOrNativeSourcesBuild;
-import org.apache.camel.quarkus.core.JvmOnlyRecorder;
 import org.jboss.logging.Logger;
 
 class AwsSecretsManagerProcessor {
@@ -33,14 +29,4 @@ class AwsSecretsManagerProcessor {
     FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
-
-    /**
-     * Remove this once this extension starts supporting the native mode.
-     */
-    @BuildStep(onlyIf = NativeOrNativeSourcesBuild.class)
-    @Record(value = ExecutionTime.RUNTIME_INIT)
-    void warnJvmInNative(JvmOnlyRecorder recorder) {
-        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
-        recorder.warnJvmInNative(FEATURE); // warn at runtime
-    }
 }
diff --git a/extensions-jvm/aws-secrets-manager/pom.xml 
b/extensions/aws-secrets-manager/pom.xml
similarity index 96%
rename from extensions-jvm/aws-secrets-manager/pom.xml
rename to extensions/aws-secrets-manager/pom.xml
index a73ceac024..3a7e6d8faf 100644
--- a/extensions-jvm/aws-secrets-manager/pom.xml
+++ b/extensions/aws-secrets-manager/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-extensions-jvm</artifactId>
+        <artifactId>camel-quarkus-extensions</artifactId>
         <version>3.19.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/extensions-jvm/aws-secrets-manager/runtime/pom.xml 
b/extensions/aws-secrets-manager/runtime/pom.xml
similarity index 92%
rename from extensions-jvm/aws-secrets-manager/runtime/pom.xml
rename to extensions/aws-secrets-manager/runtime/pom.xml
index e9f88dbf15..f2130a59bd 100644
--- a/extensions-jvm/aws-secrets-manager/runtime/pom.xml
+++ b/extensions/aws-secrets-manager/runtime/pom.xml
@@ -32,6 +32,7 @@
 
     <properties>
         <camel.quarkus.jvmSince>2.0.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>3.19.0</camel.quarkus.nativeSince>
     </properties>
 
     <dependencies>
@@ -47,6 +48,10 @@
             <groupId>org.jboss.logging</groupId>
             <artifactId>commons-logging-jboss-logging</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws2</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/extensions-jvm/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 
b/extensions/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 97%
rename from 
extensions-jvm/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to 
extensions/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index ef8d8a9f19..4699b7392f 100644
--- 
a/extensions-jvm/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ 
b/extensions/aws-secrets-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -26,9 +26,8 @@ description: "Manage AWS Secrets Manager services using AWS 
SDK version 2.x"
 metadata:
   icon-url: 
"https://raw.githubusercontent.com/apache/camel-website/main/antora-ui-camel/src/img/logo-d.svg";
   sponsor: "Apache Software Foundation"
-  unlisted: true
   guide: 
"https://camel.apache.org/camel-quarkus/latest/reference/extensions/aws-secrets-manager.html";
   categories:
   - "integration"
   status:
-  - "preview"
+  - "stable"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 6f54d9a6d4..d93677bda2 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -43,6 +43,7 @@
         <module>avro</module>
         <!--<module>avro-rpc</module> 
https://github.com/apache/camel-quarkus/issues/4462 -->
         <module>aws-bedrock</module>
+        <module>aws-secrets-manager</module>
         <module>aws2-athena</module>
         <module>aws2-cw</module>
         <module>aws2-ddb</module>
diff --git a/integration-tests-jvm/aws-secrets-manager/pom.xml 
b/integration-test-groups/aws2/aws-secrets-manager/pom.xml
similarity index 81%
rename from integration-tests-jvm/aws-secrets-manager/pom.xml
rename to integration-test-groups/aws2/aws-secrets-manager/pom.xml
index e64427907a..79e67e7e90 100644
--- a/integration-tests-jvm/aws-secrets-manager/pom.xml
+++ b/integration-test-groups/aws2/aws-secrets-manager/pom.xml
@@ -23,7 +23,7 @@
         <groupId>org.apache.camel.quarkus</groupId>
         <artifactId>camel-quarkus-build-parent-it</artifactId>
         <version>3.19.0-SNAPSHOT</version>
-        <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
     </parent>
 
     <artifactId>camel-quarkus-integration-test-aws-secrets-manager</artifactId>
@@ -72,6 +72,33 @@
     </dependencies>
 
     <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.native.enabled>true</quarkus.native.enabled>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
         <profile>
             <id>virtualDependencies</id>
             <activation>
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
similarity index 87%
rename from 
integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
index b75644da1b..0bcc15a23f 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerResource.java
@@ -40,6 +40,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants;
 import org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations;
 import org.apache.camel.impl.event.CamelContextReloadedEvent;
+import org.apache.camel.quarkus.test.support.aws2.BaseAws2Resource;
 import org.apache.camel.spi.PeriodTaskResolver;
 import org.apache.camel.support.PluginHelper;
 import org.apache.camel.util.CollectionHelper;
@@ -57,7 +58,7 @@ import 
software.amazon.awssdk.services.secretsmanager.model.UpdateSecretResponse
 
 @Path("/aws-secrets-manager")
 @ApplicationScoped
-public class AwsSecretsManagerResource {
+public class AwsSecretsManagerResource extends BaseAws2Resource {
 
     private static final Logger LOG = 
Logger.getLogger(AwsSecretsManagerResource.class);
 
@@ -69,6 +70,10 @@ public class AwsSecretsManagerResource {
     @Inject
     ProducerTemplate producerTemplate;
 
+    public AwsSecretsManagerResource() {
+        super(null, "camel.component.aws-secrets-manager");
+    }
+
     static final AtomicBoolean contextReloaded = new AtomicBoolean(false);
 
     void onReload(@Observes CamelContextReloadedEvent event) {
@@ -79,7 +84,10 @@ public class AwsSecretsManagerResource {
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    public Response post(@PathParam("operation") String operation, 
@QueryParam("body") String body, Map<String, Object> headers)
+    public Response post(@PathParam("operation") String operation,
+            @QueryParam("body") String body,
+            @QueryParam("useHeaders") boolean useHeaders,
+            Map<String, Object> headers)
             throws Exception {
 
         final Object resultBody;
@@ -95,7 +103,12 @@ public class AwsSecretsManagerResource {
 
         String region = headers.containsKey("region") ? 
String.format("region=%s&", headers.get("region")) : "";
 
-        Exchange ex = 
producerTemplate.send(String.format("aws-secrets-manager://test?%soperation=%s",
 region, operation),
+        String url = useHeaders ? 
String.format("aws-secrets-manager://test?%suseDefaultCredentialsProvider=%s",
+                region, isUseDefaultCredentials())
+                : 
String.format("aws-secrets-manager://test?%soperation=%s&useDefaultCredentialsProvider=%s",
+                        region, operation, isUseDefaultCredentials());
+
+        Exchange ex = producerTemplate.send(url,
                 e -> {
                     e.getIn().setHeaders(headers);
                     e.getIn().setBody(resultBody);
@@ -114,10 +127,11 @@ public class AwsSecretsManagerResource {
         case describeSecret:
             DescribeSecretResponse response = 
ex.getIn().getBody(DescribeSecretResponse.class);
             result = CollectionHelper.mapOf("sdkHttpSuccessful", 
response.sdkHttpResponse().isSuccessful(),
-                    "name", response.name());
+                    "name", response.name(), "description", 
response.description());
             break;
         case getSecret:
-            result = ex.getIn().getBody(String.class);
+            result = Map.of("body", ex.getIn().getBody(String.class),
+                    "version", 
ex.getIn().getHeader(SecretsManagerConstants.SECRET_VERSION_ID));
             break;
         case deleteSecret:
             result = 
ex.getIn().getBody(DeleteSecretResponse.class).sdkHttpResponse().isSuccessful();
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
similarity index 100%
copy from 
integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
copy to 
integration-test-groups/aws2/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/main/resources/application.properties
 
b/integration-test-groups/aws2/aws-secrets-manager/src/main/resources/application.properties
similarity index 100%
rename from 
integration-tests-jvm/aws-secrets-manager/src/main/resources/application.properties
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/main/resources/application.properties
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerIT.java
similarity index 59%
copy from 
integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
copy to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerIT.java
index ce58b98d7d..0d6d458b79 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerIT.java
@@ -16,20 +16,9 @@
  */
 package org.apache.camel.quarkus.component.aws.secrets.manager.it;
 
-import jakarta.enterprise.context.ApplicationScoped;
-import org.apache.camel.builder.RouteBuilder;
+import io.quarkus.test.junit.QuarkusIntegrationTest;
 
-@ApplicationScoped
-public class AwsSecretsManagerRouteBuilder extends RouteBuilder {
+@QuarkusIntegrationTest
+class AwsSecretsManagerIT extends AwsSecretsManagerTest {
 
-    public static final String MSG_FIRST = "We have received the top secret 
message.";
-    public static final String MSG_SECOND = "We have received the updated top 
secret message.";
-
-    @Override
-    public void configure() throws Exception {
-        from("direct:loadFirst")
-                .setBody(simple(MSG_FIRST));
-        from("direct:loadSecond")
-                .setBody(simple(MSG_SECOND));
-    }
 }
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
similarity index 65%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
index a867a28858..239cffea97 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTest.java
@@ -30,37 +30,45 @@ import org.apache.camel.quarkus.test.EnabledIf;
 import org.apache.camel.quarkus.test.mock.backend.MockBackendDisabled;
 import org.apache.camel.quarkus.test.mock.backend.MockBackendUtils;
 import org.apache.camel.quarkus.test.support.aws2.Aws2TestResource;
+import org.apache.camel.quarkus.test.support.aws2.BaseAWs2TestSupport;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
 
 @QuarkusTest
 @QuarkusTestResource(Aws2TestResource.class)
-public class AwsSecretsManagerTest extends AwsSecretsManagerAbstractTest {
+public class AwsSecretsManagerTest extends BaseAWs2TestSupport {
+
+    public AwsSecretsManagerTest() {
+        super("/aws-secrets-manager");
+    }
 
     @Test
     public void testOperations() {
         final String secretToCreate = "loadFirst";
         final String secret2ToCreate = "changeit2";
         final String secretToUpdate = "loadSecond";
-        final String nameToCreate = "CQTestSecret" + 
System.currentTimeMillis();
-        final String name2ToCreate = "CQTestSecret2" + 
System.currentTimeMillis();
+        final String nameToCreate = "CQTestSecret-operation-1-" + 
System.currentTimeMillis();
+        final String name2ToCreate = "CQTestSecret2-operation-2-" + 
System.currentTimeMillis();
+        final String description2ToCreate = "description-" + name2ToCreate;
         String createdArn = null;
         String createdArn2 = null;
 
         try {
-            createdArn = createSecret(nameToCreate, secretToCreate);
+            // >> create secret 1
+            createdArn = AwsSecretsManagerUtil.createSecret(nameToCreate, 
secretToCreate);
+            // >> create secret 2 (with description)
             assertNotNull(createdArn);
 
             createdArn2 = RestAssured.given()
                     .contentType(ContentType.JSON)
-                    
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_NAME, 
name2ToCreate))
+                    .body(Map.of(SecretsManagerConstants.OPERATION, 
SecretsManagerOperations.createSecret,
+                            SecretsManagerConstants.SECRET_NAME, name2ToCreate,
+                            SecretsManagerConstants.SECRET_DESCRIPTION, 
description2ToCreate))
                     .queryParam("body", secret2ToCreate)
+                    .queryParam("useHeaders", true)
                     .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.createSecret)
                     .then()
                     .statusCode(201)
@@ -68,38 +76,52 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
 
             assertNotNull(createdArn);
 
+            // >> list both secrets
             final String finalCreatedArn = createdArn;
             final String finalCreatedArn2 = createdArn2;
             Awaitility.await().pollInterval(5, TimeUnit.SECONDS).atMost(1, 
TimeUnit.MINUTES).untilAsserted(
                     () -> {
-                        Map<String, Boolean> secrets = listSecrets();
+                        Map<String, Boolean> secrets = 
AwsSecretsManagerUtil.listSecrets(null);
                         // contains both created secrets
                         assertTrue(secrets.containsKey(finalCreatedArn));
                         assertTrue(secrets.containsKey(finalCreatedArn2));
                     });
+            // >> use MAX_RESULTS header
+            Awaitility.await().pollDelay(5, TimeUnit.SECONDS).pollInterval(5, 
TimeUnit.SECONDS).atMost(1, TimeUnit.MINUTES)
+                    .untilAsserted(
+                            () -> {
+                                Map<String, Boolean> secrets = 
AwsSecretsManagerUtil.listSecrets(1);
+                                // contains both created secrets
+                                assertTrue(secrets.size() == 1);
+                            });
 
-            String secret = RestAssured.given()
+            // >> get secret1 with version_id
+            var secret1recivedMap = RestAssured.given()
                     .contentType(ContentType.JSON)
                     
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn))
                     .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.getSecret)
                     .then()
                     .statusCode(201)
-                    .extract().asString();
+                    .extract().as(Map.class);
 
-            assertEquals(secretToCreate, secret);
+            assertEquals(secretToCreate, secret1recivedMap.get("body"));
+            assertNotNull(secret1recivedMap.get("version"));
 
-            Map description = RestAssured.given()
+            //get description of secret1
+            var descriptionMap = RestAssured.given()
                     .contentType(ContentType.JSON)
-                    
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn))
+                    .body(Map.of(SecretsManagerConstants.SECRET_ID, 
createdArn2))
                     .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.describeSecret)
                     .then()
                     .statusCode(201)
                     .extract().as(Map.class);
 
-            assertEquals(2, description.size());
-            assertEquals(true, description.get("sdkHttpSuccessful"));
-            assertEquals(nameToCreate, description.get("name"));
+            assertEquals(3, descriptionMap.size());
+            assertEquals(true, descriptionMap.get("sdkHttpSuccessful"));
+            assertEquals(name2ToCreate, descriptionMap.get("name"));
+            assertEquals(description2ToCreate, 
descriptionMap.get("description"));
 
+            // >> delete secret 2
             RestAssured.given()
                     .contentType(ContentType.JSON)
                     
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn2))
@@ -110,7 +132,7 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
 
             Awaitility.await().pollInterval(5, TimeUnit.SECONDS).atMost(1, 
TimeUnit.MINUTES).untilAsserted(
                     () -> {
-                        Map<String, Boolean> secrets = listSecrets();
+                        Map<String, Boolean> secrets = 
AwsSecretsManagerUtil.listSecrets(null);
                         // by default secrets marked for deletion are not 
listed (can be enabled with 
https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/secretsmanager/model/ListSecretsRequest.Builder.html#includePlannedDeletion(java.lang.Boolean))
                         // but on localstack they are present (with non-null 
deletedDate field) - see https://github.com/localstack/localstack/issues/11635
                         assertTrue(secrets.containsKey(finalCreatedArn));
@@ -126,26 +148,23 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
             // it needs lambda function ARN to work
             // TODO:See https://github.com/apache/camel-quarkus/issues/5300
 
-            //  RestAssured.given()
-            //  .contentType(ContentType.JSON)
-            //  
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn))
-            //  .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.rotateSecret)
-            //  .then()
-            //  .statusCode(201)
-            //  .body(is("true"));
-
-            updateSecret(createdArn, secretToUpdate);
+            // >> update value of the first secret
+            AwsSecretsManagerUtil.updateSecret(createdArn, secretToUpdate);
 
-            String updatedSecret = RestAssured.given()
+            // >> check value and version of secret1 after update
+            var secret1UpdatedMap = RestAssured.given()
                     .contentType(ContentType.JSON)
                     
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn))
                     .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.getSecret)
                     .then()
                     .statusCode(201)
-                    .extract().asString();
+                    .extract().as(Map.class);
 
-            assertEquals(secretToUpdate, updatedSecret);
+            assertEquals(secretToUpdate, secret1UpdatedMap.get("body"));
+            assertNotNull(secret1UpdatedMap.get("version"));
+            assertNotEquals(secret1recivedMap.get("version"), 
secret1UpdatedMap.get("version"));
 
+            // >> restore secret2
             RestAssured.given()
                     .contentType(ContentType.JSON)
                     
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, createdArn2))
@@ -154,9 +173,10 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
                     .statusCode(201)
                     .body(is("true"));
 
+            // >> validate existence of restored secret by listSecrets
             Awaitility.await().pollInterval(5, TimeUnit.SECONDS).atMost(1, 
TimeUnit.MINUTES).untilAsserted(
                     () -> {
-                        Map<String, Boolean> secrets = listSecrets();
+                        Map<String, Boolean> secrets = 
AwsSecretsManagerUtil.listSecrets(null);
 
                         //none of them is deleted, because they were restored
                         assertTrue(secrets.containsKey(finalCreatedArn));
@@ -177,12 +197,27 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
             // .statusCode(201)
             // .body(is("true"));
         } finally {
-            if (!MockBackendUtils.startMockBackend(false)) {
-                // we must clean created secrets
-                // skip cleaning on localstack
-                deleteSecretImmediately(createdArn);
-                deleteSecretImmediately(createdArn2);
-            }
+            // we must clean created secrets
+            // also on localstack, if not the second run of operations would 
fail
+            AwsSecretsManagerUtil.deleteSecretImmediately(createdArn);
+            AwsSecretsManagerUtil.deleteSecretImmediately(createdArn2);
+        }
+    }
+
+    @Override
+    public void testMethodForDefaultCredentialsProvider() {
+        final String secretToCreate = "loadFirst";
+        final String nameToCreate = "CQTestSecret-provider-" + 
System.currentTimeMillis();
+        String createdArn = null;
+
+        try {
+            createdArn = AwsSecretsManagerUtil.createSecret(nameToCreate, 
secretToCreate);
+            assertNotNull(createdArn);
+
+        } finally {
+            // we must clean created secrets
+            // also on localstack, if not the second run of operations would 
fail
+            AwsSecretsManagerUtil.deleteSecretImmediately(createdArn);
         }
     }
 
@@ -203,7 +238,7 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
         final String secretToUpdate = "loadSecond";
         try {
             final String nameToCreate = "CQTestSecretPropFunction" + 
System.currentTimeMillis();
-            createdArn = createSecret(nameToCreate, secretToCreate);
+            createdArn = AwsSecretsManagerUtil.createSecret(nameToCreate, 
secretToCreate);
             assertNotNull(createdArn);
 
             RestAssured.get("/aws-secrets-manager/propertyFunction/" + 
nameToCreate)
@@ -211,7 +246,7 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
                     .statusCode(200)
                     .body(is(AwsSecretsManagerRouteBuilder.MSG_FIRST));
 
-            updateSecret(createdArn, secretToUpdate);
+            AwsSecretsManagerUtil.updateSecret(createdArn, secretToUpdate);
 
             RestAssured.get("/aws-secrets-manager/propertyFunction/" + 
nameToCreate)
                     .then()
@@ -221,7 +256,7 @@ public class AwsSecretsManagerTest extends 
AwsSecretsManagerAbstractTest {
             if (!MockBackendUtils.startMockBackend(false)) {
                 // we must clean created secrets
                 // skip cleaning on localstack
-                deleteSecretImmediately(createdArn);
+                AwsSecretsManagerUtil.deleteSecretImmediately(createdArn);
             }
         }
     }
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
similarity index 72%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
index c98631eb00..2ad66e2160 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerTestEnvCustomizer.java
@@ -17,7 +17,6 @@
 package org.apache.camel.quarkus.component.aws.secrets.manager.it;
 
 import java.util.Map;
-import java.util.stream.Collectors;
 
 import org.apache.camel.quarkus.test.mock.backend.MockBackendUtils;
 import org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvContext;
@@ -36,23 +35,17 @@ public class AwsSecretsManagerTestEnvCustomizer implements 
Aws2TestEnvCustomizer
 
         //get all properties from the context
         Map<String, String> props = envContext.getProperties();
-        //gather all properties (witch changed aws2 -> aws)
-        Map<String, String> p2 = props.entrySet().stream()
-                .collect(Collectors.toMap(e -> e.getKey().replaceFirst("aws2", 
"aws"), e -> e.getValue()));
-        //remove client (to get rid of properties containing aws2)
-        envContext.removeClient(new Service[] { Service.SECRETSMANAGER });
-        envContext.removeOverrideEndpoint(new Service[] { 
Service.SECRETSMANAGER });
-
-        for (Map.Entry<String, String> e : p2.entrySet()) {
+
+        for (Map.Entry<String, String> e : props.entrySet()) {
             envContext.property(e.getKey(), e.getValue());
         }
 
         if (MockBackendUtils.startMockBackend(false)) {
             envContext.property("camel.vault.aws.accessKey",
-                    p2.get("camel.component.aws-secrets-manager.access-key"));
+                    
props.get("camel.component.aws-secrets-manager.access-key"));
             envContext.property("camel.vault.aws.secretKey",
-                    p2.get("camel.component.aws-secrets-manager.secret-key"));
-            envContext.property("camel.vault.aws.region", 
p2.get("camel.component.aws-secrets-manager.region"));
+                    
props.get("camel.component.aws-secrets-manager.secret-key"));
+            envContext.property("camel.vault.aws.region", 
props.get("camel.component.aws-secrets-manager.region"));
         } else {
             envContext.property("camel.vault.aws.accessKey", 
System.getenv("AWS_ACCESS_KEY"));
             envContext.property("camel.vault.aws.secretKey", 
System.getenv("AWS_SECRET_KEY"));
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerAbstractTest.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerUtil.java
similarity index 88%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerAbstractTest.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerUtil.java
index cc76947c9e..3144f5885c 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerAbstractTest.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerUtil.java
@@ -30,9 +30,9 @@ import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.hamcrest.CoreMatchers.is;
 
-class AwsSecretsManagerAbstractTest {
+class AwsSecretsManagerUtil {
 
-    protected String createSecret(String secretName, String secretValue) {
+    static String createSecret(String secretName, String secretValue) {
         String createdArn = Awaitility.await()
                 .pollInterval(5, TimeUnit.SECONDS)
                 .atMost(1, TimeUnit.MINUTES)
@@ -54,7 +54,7 @@ class AwsSecretsManagerAbstractTest {
         return createdArn;
     }
 
-    protected void updateSecret(String secretArn, String newValue) {
+    static void updateSecret(String secretArn, String newValue) {
         RestAssured.given()
                 .contentType(ContentType.JSON)
                 
.body(Collections.singletonMap(SecretsManagerConstants.SECRET_ID, secretArn))
@@ -65,17 +65,18 @@ class AwsSecretsManagerAbstractTest {
                 .body(is("true"));
     }
 
-    protected Map<String, Boolean> listSecrets() {
+    static Map<String, Boolean> listSecrets(Integer maxResults) {
         return RestAssured.given()
                 .contentType(ContentType.JSON)
-                .body(Collections.emptyMap())
+                .body(maxResults == null ? Collections.emptyMap()
+                        : 
Collections.singletonMap(SecretsManagerConstants.MAX_RESULTS, maxResults))
                 .post("/aws-secrets-manager/operation/" + 
SecretsManagerOperations.listSecrets)
                 .then()
                 .statusCode(201)
                 .extract().as(Map.class);
     }
 
-    protected void deleteSecretImmediately(String arn) {
+    static void deleteSecretImmediately(String arn) {
         if (arn != null) {
             Log.info("Deleting secret: " + arn);
             RestAssured.given()
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshIT.java
similarity index 59%
rename from 
integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshIT.java
index ce58b98d7d..872b716904 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/main/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/AwsSecretsManagerRouteBuilder.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshIT.java
@@ -16,20 +16,13 @@
  */
 package org.apache.camel.quarkus.component.aws.secrets.manager.it;
 
-import jakarta.enterprise.context.ApplicationScoped;
-import org.apache.camel.builder.RouteBuilder;
+import io.quarkus.test.junit.QuarkusIntegrationTest;
+import org.apache.camel.quarkus.test.EnabledIf;
+import org.apache.camel.quarkus.test.mock.backend.MockBackendDisabled;
 
-@ApplicationScoped
-public class AwsSecretsManagerRouteBuilder extends RouteBuilder {
+@QuarkusIntegrationTest
+// disabled on Localstack due to 
https://docs.localstack.cloud/references/coverage/coverage_cloudtrail/#lookupevents
+@EnabledIf(MockBackendDisabled.class)
+class CamelContextRefreshOnSecretRefreshIT extends 
CamelContextRefreshOnSecretRefreshTest {
 
-    public static final String MSG_FIRST = "We have received the top secret 
message.";
-    public static final String MSG_SECOND = "We have received the updated top 
secret message.";
-
-    @Override
-    public void configure() throws Exception {
-        from("direct:loadFirst")
-                .setBody(simple(MSG_FIRST));
-        from("direct:loadSecond")
-                .setBody(simple(MSG_SECOND));
-    }
 }
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
similarity index 89%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
index 0a7d18f6a3..cd95540eb2 100644
--- 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
+++ 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/CamelContextRefreshOnSecretRefreshTest.java
@@ -30,7 +30,6 @@ import org.apache.camel.quarkus.test.EnabledIf;
 import org.apache.camel.quarkus.test.mock.backend.MockBackendDisabled;
 import org.apache.camel.quarkus.test.support.aws2.Aws2TestResource;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.shaded.org.awaitility.Awaitility;
 
@@ -41,14 +40,14 @@ import static org.hamcrest.CoreMatchers.is;
 @TestProfile(ContextReloadTestProfile.class)
 // disabled on Localstack due to 
https://docs.localstack.cloud/references/coverage/coverage_cloudtrail/#lookupevents
 @EnabledIf(MockBackendDisabled.class)
-@Disabled("https://issues.apache.org/jira/browse/CAMEL-21324";)
-public class CamelContextRefreshOnSecretRefreshTest extends 
AwsSecretsManagerAbstractTest {
+public class CamelContextRefreshOnSecretRefreshTest {
     @Test
     public void testCamelContextReloadOnSecretRefresh() {
         String secretArn = null;
         try {
             final String myUniqueSecretValue = "Uniqueee1234";
-            secretArn = 
createSecret(ConfigProvider.getConfig().getValue("camel.vault.aws.secrets", 
String.class),
+            secretArn = AwsSecretsManagerUtil.createSecret(
+                    
ConfigProvider.getConfig().getValue("camel.vault.aws.secrets", String.class),
                     myUniqueSecretValue);
             RestAssured.given()
                     .contentType(ContentType.JSON)
@@ -66,7 +65,7 @@ public class CamelContextRefreshOnSecretRefreshTest extends 
AwsSecretsManagerAbs
                                 .body(is("true"));
                     });
         } finally {
-            deleteSecretImmediately(secretArn);
+            AwsSecretsManagerUtil.deleteSecretImmediately(secretArn);
         }
     }
 }
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/ContextReloadTestProfile.java
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/ContextReloadTestProfile.java
similarity index 100%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/ContextReloadTestProfile.java
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/java/org/apache/camel/quarkus/component/aws/secrets/manager/it/ContextReloadTestProfile.java
diff --git 
a/integration-tests-jvm/aws-secrets-manager/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
 
b/integration-test-groups/aws2/aws-secrets-manager/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
similarity index 100%
rename from 
integration-tests-jvm/aws-secrets-manager/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
rename to 
integration-test-groups/aws2/aws-secrets-manager/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
diff --git a/integration-test-groups/aws2/pom.xml 
b/integration-test-groups/aws2/pom.xml
index be4cfb9b37..9a78161665 100644
--- a/integration-test-groups/aws2/pom.xml
+++ b/integration-test-groups/aws2/pom.xml
@@ -37,6 +37,7 @@
 
     <modules>
         <!-- extensions a..z; do not remove this comment, it is important when 
sorting via  mvn process-resources -Pformat -->
+        <module>aws-secrets-manager</module>
         <module>aws2-cw</module>
         <module>aws2-ddb</module>
         <module>aws2-kinesis</module>
diff --git a/integration-tests-jvm/pom.xml b/integration-tests-jvm/pom.xml
index 288ef90232..c322351a65 100644
--- a/integration-tests-jvm/pom.xml
+++ b/integration-tests-jvm/pom.xml
@@ -35,7 +35,6 @@
     <modules>
         <module>asn1</module>
         <module>asterisk</module>
-        <module>aws-secrets-manager</module>
         <module>aws-xray</module>
         <module>azure-cosmosdb</module>
         <module>azure-storage-datalake</module>
diff --git 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/BaseAws2Resource.java
 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/BaseAws2Resource.java
index 14c3f3f636..b118da2145 100644
--- 
a/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/BaseAws2Resource.java
+++ 
b/integration-tests-support/aws2/src/main/java/org/apache/camel/quarkus/test/support/aws2/BaseAws2Resource.java
@@ -40,12 +40,18 @@ public class BaseAws2Resource {
 
     private boolean useDefaultCredentials;
 
-    private final String serviceName;
+    private final String serviceName, componentName;
 
     private boolean clearAwsredentials;
 
     public BaseAws2Resource(String serviceName) {
         this.serviceName = serviceName;
+        this.componentName = null;
+    }
+
+    public BaseAws2Resource(String serviceName, String componentName) {
+        this.serviceName = serviceName;
+        this.componentName = componentName;
     }
 
     @Path("/setUseDefaultCredentialsProvider")
@@ -69,9 +75,10 @@ public class BaseAws2Resource {
                     "Setting both System.properties `aws.secretAccessKey` and 
`aws.accessKeyId` to cover defaultCredentialsProviderTest.");
             //defaultCredentials provider gets the credentials from fixed 
location. One of them is system.properties,
             //therefore to succeed the test, system.properties has to be 
initialized with the values from the configuration
+            String component = componentName != null ? componentName : 
"camel.component.aws2-" + serviceName;
             Aws2Helper.setAwsSystemCredentials(
-                    
ConfigProvider.getConfig().getValue("camel.component.aws2-" + serviceName + 
".access-key", String.class),
-                    
ConfigProvider.getConfig().getValue("camel.component.aws2-" + serviceName + 
".secret-key", String.class));
+                    ConfigProvider.getConfig().getValue(component + 
".access-key", String.class),
+                    ConfigProvider.getConfig().getValue(component + 
".secret-key", String.class));
 
         } else {
             LOG.debug("Clearing both System.properties `aws.secretAccessKey` 
and `aws.accessKeyId`.");
diff --git 
a/integration-tests-support/aws2/src/test/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
 
b/integration-tests-support/aws2/src/test/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
index 854c0d06bf..93688acc22 100644
--- 
a/integration-tests-support/aws2/src/test/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
+++ 
b/integration-tests-support/aws2/src/test/java/org/apache/camel/quarkus/test/support/aws2/Aws2TestEnvContext.java
@@ -70,16 +70,16 @@ public class Aws2TestEnvContext {
 
         localstack.ifPresent(ls -> {
             for (Service service : exportCredentialsServices) {
-                String s = camelServiceAcronym(service);
+                String s = camelServiceComponentName(service);
                 if (s != null) {
                     if (credentialsProvider == 
CredentialsProvider.staticProvider) {
-                        properties.put("camel.component.aws2-" + s + 
".access-key", accessKey);
-                        properties.put("camel.component.aws2-" + s + 
".secret-key", secretKey);
+                        properties.put(s + ".access-key", accessKey);
+                        properties.put(s + ".secret-key", secretKey);
                     }
-                    properties.put("camel.component.aws2-" + s + ".region", 
region);
+                    properties.put(s + ".region", region);
 
-                    properties.put("camel.component.aws2-" + s + 
".override-endpoint", "true");
-                    properties.put("camel.component.aws2-" + s + 
".uri-endpoint-override",
+                    properties.put(s + ".override-endpoint", "true");
+                    properties.put(s + ".uri-endpoint-override",
                             ls.getEndpointOverride(service).toString());
                 }
             }
@@ -105,19 +105,19 @@ public class Aws2TestEnvContext {
      */
     public void removeClient(Service[] services) {
         for (Service service : services) {
-            String s = camelServiceAcronym(service);
-            properties.remove("camel.component.aws2-" + s + ".access-key");
-            properties.remove("camel.component.aws2-" + s + ".secret-key");
-            properties.remove("camel.component.aws2-" + s + ".region");
-            properties.remove("camel.component.aws2-" + s + 
".defaultCredentialsProvider");
+            String s = camelServiceComponentName(service);
+            properties.remove(s + ".access-key");
+            properties.remove(s + ".secret-key");
+            properties.remove(s + ".region");
+            properties.remove(s + ".defaultCredentialsProvider");
         }
     }
 
     public void removeOverrideEndpoint(Service[] services) {
         for (Service service : services) {
-            String s = camelServiceAcronym(service);
-            properties.remove("camel.component.aws2-" + s + 
".override-endpoint");
-            properties.remove("camel.component.aws2-" + s + 
".uri-endpoint-override");
+            String s = camelServiceComponentName(service);
+            properties.remove(s + ".override-endpoint");
+            properties.remove(s + ".uri-endpoint-override");
         }
     }
 
@@ -211,20 +211,20 @@ public class Aws2TestEnvContext {
         });
     }
 
-    private static String camelServiceAcronym(Service service) {
+    private static String camelServiceComponentName(Service service) {
         switch (service) {
         case DYNAMODB:
-            return "ddb";
+            return "camel.component.aws2-ddb";
         case DYNAMODB_STREAMS:
-            return "ddbstream";
+            return "camel.component.aws2-ddbstream";
         case FIREHOSE:
-            return "kinesis-firehose";
+            return "camel.component.aws2-kinesis-firehose";
         case CLOUDWATCH:
-            return "cw";
+            return "camel.component.aws2-cw";
         case SECRETSMANAGER:
-            return "secrets-manager";
+            return "camel.component.aws-secrets-manager";
         default:
-            return service.name().toLowerCase(Locale.ROOT);
+            return "camel.component.aws2-" + 
service.name().toLowerCase(Locale.ROOT);
         }
     }
 
diff --git a/integration-tests/aws2-grouped/pom.xml 
b/integration-tests/aws2-grouped/pom.xml
index a82ea9a05e..9bbfdaad5f 100644
--- a/integration-tests/aws2-grouped/pom.xml
+++ b/integration-tests/aws2-grouped/pom.xml
@@ -48,10 +48,18 @@
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy-jackson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy-multipart</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws-secrets-manager</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-cw</artifactId>
@@ -88,6 +96,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-sqs</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             
<artifactId>camel-quarkus-integration-tests-support-aws2</artifactId>
@@ -197,6 +209,19 @@
             </activation>
             <dependencies>
                 <!-- The following dependencies guarantee that this module is 
built after them. You can update them by running `mvn process-resources 
-Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    
<artifactId>camel-quarkus-aws-secrets-manager-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
                 <dependency>
                     <groupId>org.apache.camel.quarkus</groupId>
                     <artifactId>camel-quarkus-aws2-cw-deployment</artifactId>
@@ -314,6 +339,19 @@
                         </exclusion>
                     </exclusions>
                 </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-direct-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
             </dependencies>
         </profile>
         <profile>

Reply via email to