Merge pull request #567 from apache/aws-commons

Create an AWS commons extension
diff --git a/extensions/aws-ec2/deployment/pom.xml b/extensions/aws-ec2/deployment/pom.xml
index 139a804..c563866 100644
--- a/extensions/aws-ec2/deployment/pom.xml
+++ b/extensions/aws-ec2/deployment/pom.xml
@@ -58,6 +58,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-ec2</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ec2/deployment/AwsEc2Processor.java b/extensions/aws-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ec2/deployment/AwsEc2Processor.java
index 76cf188..b39f013 100644
--- a/extensions/aws-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ec2/deployment/AwsEc2Processor.java
+++ b/extensions/aws-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ec2/deployment/AwsEc2Processor.java
@@ -57,12 +57,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_EC2_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-ec2/runtime/pom.xml b/extensions/aws-ec2/runtime/pom.xml
index d6af763..81ba1f7 100644
--- a/extensions/aws-ec2/runtime/pom.xml
+++ b/extensions/aws-ec2/runtime/pom.xml
@@ -61,6 +61,10 @@
             <artifactId>camel-quarkus-support-commons-logging</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-aws-ec2</artifactId>
             <exclusions>
diff --git a/extensions/aws-ecs/deployment/pom.xml b/extensions/aws-ecs/deployment/pom.xml
index f733c93..7aa0300 100644
--- a/extensions/aws-ecs/deployment/pom.xml
+++ b/extensions/aws-ecs/deployment/pom.xml
@@ -56,6 +56,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-ecs</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ecs/deployment/AwsEcsProcessor.java b/extensions/aws-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ecs/deployment/AwsEcsProcessor.java
index acf5e46..d345470 100644
--- a/extensions/aws-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ecs/deployment/AwsEcsProcessor.java
+++ b/extensions/aws-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/ecs/deployment/AwsEcsProcessor.java
@@ -58,12 +58,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_ECS_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-ecs/runtime/pom.xml b/extensions/aws-ecs/runtime/pom.xml
index 9714c58..92ecca5 100644
--- a/extensions/aws-ecs/runtime/pom.xml
+++ b/extensions/aws-ecs/runtime/pom.xml
@@ -59,6 +59,10 @@
             <artifactId>camel-quarkus-support-commons-logging</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-aws-ecs</artifactId>
             <exclusions>
diff --git a/extensions/aws-eks/deployment/pom.xml b/extensions/aws-eks/deployment/pom.xml
index 604128b..74ae7e2 100644
--- a/extensions/aws-eks/deployment/pom.xml
+++ b/extensions/aws-eks/deployment/pom.xml
@@ -55,6 +55,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-eks</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws/eks/deployment/AwsEKSProcessor.java b/extensions/aws-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws/eks/deployment/AwsEKSProcessor.java
index 0d68bb4..bba4f31 100644
--- a/extensions/aws-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws/eks/deployment/AwsEKSProcessor.java
+++ b/extensions/aws-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws/eks/deployment/AwsEKSProcessor.java
@@ -56,12 +56,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_EKS_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-eks/runtime/pom.xml b/extensions/aws-eks/runtime/pom.xml
index 5761989..012304c 100644
--- a/extensions/aws-eks/runtime/pom.xml
+++ b/extensions/aws-eks/runtime/pom.xml
@@ -51,6 +51,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
         </dependency>
         <dependency>
diff --git a/extensions/aws-iam/deployment/pom.xml b/extensions/aws-iam/deployment/pom.xml
index 8a39e94..c18a9fa 100644
--- a/extensions/aws-iam/deployment/pom.xml
+++ b/extensions/aws-iam/deployment/pom.xml
@@ -56,6 +56,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-iam</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws/iam/deployment/AwsIamProcessor.java b/extensions/aws-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws/iam/deployment/AwsIamProcessor.java
index 055d1f4..cb073b3 100644
--- a/extensions/aws-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws/iam/deployment/AwsIamProcessor.java
+++ b/extensions/aws-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws/iam/deployment/AwsIamProcessor.java
@@ -58,12 +58,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_IAM_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-iam/runtime/pom.xml b/extensions/aws-iam/runtime/pom.xml
index 98e3330..9b5d2f8 100644
--- a/extensions/aws-iam/runtime/pom.xml
+++ b/extensions/aws-iam/runtime/pom.xml
@@ -50,6 +50,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
        <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
diff --git a/extensions/aws-kms/deployment/pom.xml b/extensions/aws-kms/deployment/pom.xml
index 126b769..35e4804 100644
--- a/extensions/aws-kms/deployment/pom.xml
+++ b/extensions/aws-kms/deployment/pom.xml
@@ -56,6 +56,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-kms</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kms/deployment/AwsKmsProcessor.java b/extensions/aws-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kms/deployment/AwsKmsProcessor.java
index a9808e1..2c0a542 100644
--- a/extensions/aws-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kms/deployment/AwsKmsProcessor.java
+++ b/extensions/aws-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kms/deployment/AwsKmsProcessor.java
@@ -58,12 +58,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_KMS_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-kms/runtime/pom.xml b/extensions/aws-kms/runtime/pom.xml
index ab3ea95..d683e35 100644
--- a/extensions/aws-kms/runtime/pom.xml
+++ b/extensions/aws-kms/runtime/pom.xml
@@ -52,6 +52,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
         </dependency>
         <dependency>
diff --git a/extensions/aws-s3/deployment/pom.xml b/extensions/aws-s3/deployment/pom.xml
index 173db3b..5845e5d 100644
--- a/extensions/aws-s3/deployment/pom.xml
+++ b/extensions/aws-s3/deployment/pom.xml
@@ -55,6 +55,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-s3</artifactId>
         </dependency>
     </dependencies>
@@ -75,4 +79,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/extensions/aws-s3/deployment/src/main/java/org/apache/camel/quarkus/component/aws/s3/deployment/AwsS3Processor.java b/extensions/aws-s3/deployment/src/main/java/org/apache/camel/quarkus/component/aws/s3/deployment/AwsS3Processor.java
index b38d30b..d521afe 100644
--- a/extensions/aws-s3/deployment/src/main/java/org/apache/camel/quarkus/component/aws/s3/deployment/AwsS3Processor.java
+++ b/extensions/aws-s3/deployment/src/main/java/org/apache/camel/quarkus/component/aws/s3/deployment/AwsS3Processor.java
@@ -64,12 +64,6 @@
         return new RuntimeInitializedClassBuildItem(CryptoConfiguration.class.getCanonicalName());
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_S3_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-s3/runtime/pom.xml b/extensions/aws-s3/runtime/pom.xml
index 37566ae..0b0e060 100644
--- a/extensions/aws-s3/runtime/pom.xml
+++ b/extensions/aws-s3/runtime/pom.xml
@@ -51,6 +51,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
         </dependency>
         <dependency>
@@ -105,4 +109,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/extensions/aws-sns/deployment/pom.xml b/extensions/aws-sns/deployment/pom.xml
index 07f125a..b46a26b 100644
--- a/extensions/aws-sns/deployment/pom.xml
+++ b/extensions/aws-sns/deployment/pom.xml
@@ -55,6 +55,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-sns</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sns/deployment/AwsSNSProcessor.java b/extensions/aws-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sns/deployment/AwsSNSProcessor.java
index c4e79cc..7874eae 100644
--- a/extensions/aws-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sns/deployment/AwsSNSProcessor.java
+++ b/extensions/aws-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sns/deployment/AwsSNSProcessor.java
@@ -57,12 +57,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_SNS_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-sns/runtime/pom.xml b/extensions/aws-sns/runtime/pom.xml
index 00070ec..0b42870 100644
--- a/extensions/aws-sns/runtime/pom.xml
+++ b/extensions/aws-sns/runtime/pom.xml
@@ -51,6 +51,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
         </dependency>
         <dependency>
diff --git a/extensions/aws-sqs/deployment/pom.xml b/extensions/aws-sqs/deployment/pom.xml
index 27338635..c44c771 100644
--- a/extensions/aws-sqs/deployment/pom.xml
+++ b/extensions/aws-sqs/deployment/pom.xml
@@ -55,6 +55,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-sqs</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/aws-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sqs/deployment/AwsSQSProcessor.java b/extensions/aws-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sqs/deployment/AwsSQSProcessor.java
index cefc0e7..e5dc64c 100644
--- a/extensions/aws-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sqs/deployment/AwsSQSProcessor.java
+++ b/extensions/aws-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws/sqs/deployment/AwsSQSProcessor.java
@@ -57,12 +57,6 @@
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
-    @BuildStep
-    NativeImageProxyDefinitionBuildItem httpProxies() {
-        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
-                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
-    }
-
     @BuildStep(applicationArchiveMarkers = { AWS_SQS_APPLICATION_ARCHIVE_MARKERS })
     void process(CombinedIndexBuildItem combinedIndexBuildItem,
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
diff --git a/extensions/aws-sqs/runtime/pom.xml b/extensions/aws-sqs/runtime/pom.xml
index abf01d8..919f83c 100644
--- a/extensions/aws-sqs/runtime/pom.xml
+++ b/extensions/aws-sqs/runtime/pom.xml
@@ -51,6 +51,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-support-xml</artifactId>
         </dependency>
         <dependency>
diff --git a/extensions/support/aws/deployment/pom.xml b/extensions/support/aws/deployment/pom.xml
new file mode 100644
index 0000000..35fbd6e
--- /dev/null
+++ b/extensions/support/aws/deployment/pom.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-support-aws-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+    <name>Camel Quarkus :: Support :: AWS :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions/support/aws/deployment/src/main/java/org/apache/camel/quarkus/component/aws/commons/deployment/AwsCommonsProcessor.java b/extensions/support/aws/deployment/src/main/java/org/apache/camel/quarkus/component/aws/commons/deployment/AwsCommonsProcessor.java
new file mode 100644
index 0000000..3fec083
--- /dev/null
+++ b/extensions/support/aws/deployment/src/main/java/org/apache/camel/quarkus/component/aws/commons/deployment/AwsCommonsProcessor.java
@@ -0,0 +1,38 @@
+/*
+ * 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.component.aws.commons.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageProxyDefinitionBuildItem;
+
+class AwsCommonsProcessor {
+
+    private static final String FEATURE = "camel-aws-commons";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    NativeImageProxyDefinitionBuildItem httpProxies() {
+        return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager",
+                "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped");
+    }
+
+}
diff --git a/extensions/support/aws/pom.xml b/extensions/support/aws/pom.xml
new file mode 100644
index 0000000..7387cf2
--- /dev/null
+++ b/extensions/support/aws/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-aws-parent</artifactId>
+    <name>Camel Quarkus :: Support :: AWS</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/support/aws/runtime/pom.xml b/extensions/support/aws/runtime/pom.xml
new file mode 100644
index 0000000..09260e8
--- /dev/null
+++ b/extensions/support/aws/runtime/pom.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-support-aws-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-support-aws</artifactId>
+    <name>Camel Quarkus :: Support :: AWS :: Runtime</name>
+
+    <properties>
+        <firstVersion>1.2.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions/support/aws/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/support/aws/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..1cfad94
--- /dev/null
+++ b/extensions/support/aws/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "Camel Quarkus AWS Commons"
+description: "A Camel Amazon Commons Component"
+metadata:
+  unlisted: true
+  keywords:
+  - "camel"
+  - "aws"
+  - "cloud"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+  - "integration"
diff --git a/extensions/support/pom.xml b/extensions/support/pom.xml
index 56951a3..fa13efb 100644
--- a/extensions/support/pom.xml
+++ b/extensions/support/pom.xml
@@ -32,6 +32,7 @@
     <packaging>pom</packaging>
 
     <modules>
+        <module>aws</module>
         <module>common</module>
         <module>commons-logging</module>
         <module>jetty</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 692f338..7dd6acc 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -335,6 +335,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-aws-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-common-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index ef28d8a..b1f90de 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -444,6 +444,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws-commons</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-aws-ec2</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -709,6 +714,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-aws</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-common</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>