You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/04/23 15:00:06 UTC

[camel-quarkus] branch aws2-cw created (now f538eca)

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

acosentino pushed a change to branch aws2-cw
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git.


      at f538eca  Added an AWS2-CW native extension

This branch includes the following new commits:

     new f538eca  Added an AWS2-CW native extension

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel-quarkus] 01/01: Added an AWS2-CW native extension

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f538ecabc1e0b84ee649bda3e92d199bb65e58a8
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Apr 23 16:57:17 2020 +0200

    Added an AWS2-CW native extension
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  4 +-
 .../aws2/cw/deployment/Aws2CwProcessor.java        | 47 -------------
 extensions-jvm/aws2-cw/integration-test/pom.xml    | 80 ----------------------
 .../component/aws2/cw/it/Aws2CwResource.java       | 51 --------------
 .../quarkus/component/aws2/cw/it/Aws2CwTest.java   | 34 ---------
 extensions-jvm/pom.xml                             |  1 -
 .../aws2-cw/deployment/pom.xml                     | 12 ++++
 .../aws2/cw/deployment/Aws2CwProcessor.java        | 66 ++++++++++++++++++
 {extensions-jvm => extensions}/aws2-cw/pom.xml     |  1 -
 .../aws2-cw/runtime/pom.xml                        | 12 ++++
 .../main/resources/META-INF/quarkus-extension.yaml |  7 +-
 extensions/pom.xml                                 |  1 +
 integration-tests/aws2/pom.xml                     |  4 ++
 .../camel/quarkus/component/aws2/CamelRoute.java   |  9 +++
 poms/bom/pom.xml                                   |  6 ++
 15 files changed, 115 insertions(+), 220 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index c1a7af4..f26e8a1 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -46,8 +46,8 @@ Level | Since | Description
  Preview | 1.0.0-M6 | Working with Apache Avro for data serialization.
 
 | link:https://camel.apache.org/components/latest/aws2-cw-component.html[AWS 2 CloudWatch] (camel-quarkus-aws2-cw) +
-`aws2-cw:namespace` | JVM +
- Preview | 1.0.0-M6 | The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
+`aws2-cw:namespace` | Native +
+ Stable | 1.0.0-M6 | The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
 
 | link:https://camel.apache.org/components/latest/aws2-ddb-component.html[AWS 2 DynamoDB] (camel-quarkus-aws2-ddb) +
 `aws2-ddb:tableName` | JVM +
diff --git a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java b/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
deleted file mode 100644
index b9b8ebe..0000000
--- a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
+++ /dev/null
@@ -1,47 +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.
- */
-package org.apache.camel.quarkus.component.aws2.cw.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.NativeBuild;
-import org.apache.camel.quarkus.core.JvmOnlyRecorder;
-import org.jboss.logging.Logger;
-
-class Aws2CwProcessor {
-    private static final Logger LOG = Logger.getLogger(Aws2CwProcessor.class);
-
-    private static final String FEATURE = "camel-aws2-cw";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-
-    /**
-     * Remove this once this extension starts supporting the native mode.
-     */
-    @BuildStep(onlyIf = NativeBuild.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/aws2-cw/integration-test/pom.xml b/extensions-jvm/aws2-cw/integration-test/pom.xml
deleted file mode 100644
index 48c0317..0000000
--- a/extensions-jvm/aws2-cw/integration-test/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?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-aws2-cw-parent</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-aws2-cw-integration-test</artifactId>
-    <name>Camel Quarkus :: AWS 2 CloudWatch :: Integration Test</name>
-    <description>Integration tests for Camel Quarkus AWS 2 CloudWatch extension</description>
-
-    <properties>
-        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
-        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
-        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
-        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
-        <!-- Please update rule whenever you change the dependencies of this module by running -->
-        <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-aws2-cw-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-aws2-cw</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy</artifactId>
-        </dependency>
-
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.rest-assured</groupId>
-            <artifactId>rest-assured</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>build</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java b/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java
deleted file mode 100644
index b408305..0000000
--- a/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java
+++ /dev/null
@@ -1,51 +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.
- */
-package org.apache.camel.quarkus.component.aws2.cw.it;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.CamelContext;
-import org.jboss.logging.Logger;
-
-@Path("/aws2-cw")
-@ApplicationScoped
-public class Aws2CwResource {
-
-    private static final Logger LOG = Logger.getLogger(Aws2CwResource.class);
-
-    private static final String COMPONENT_AWS2_CW = "aws2-cw";
-    @Inject
-    CamelContext context;
-
-    @Path("/load/component/aws2-cw")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public Response loadComponentAws2Cw() throws Exception {
-        /* This is an autogenerated test */
-        if (context.getComponent(COMPONENT_AWS2_CW) != null) {
-            return Response.ok().build();
-        }
-        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_CW);
-        return Response.status(500, COMPONENT_AWS2_CW + " could not be loaded from the Camel context").build();
-    }
-}
diff --git a/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java b/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java
deleted file mode 100644
index 036b081..0000000
--- a/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java
+++ /dev/null
@@ -1,34 +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.
- */
-package org.apache.camel.quarkus.component.aws2.cw.it;
-
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import org.junit.jupiter.api.Test;
-
-@QuarkusTest
-class Aws2CwTest {
-
-    @Test
-    public void loadComponentAws2Cw() {
-        /* A simple autogenerated test */
-        RestAssured.get("/aws2-cw/load/component/aws2-cw")
-                .then()
-                .statusCode(200);
-    }
-
-}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index d0e5d2e..b6d24dd 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -36,7 +36,6 @@
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>avro</module>
         <module>avro-rpc</module>
-        <module>aws2-cw</module>
         <module>aws2-ddb</module>
         <module>aws2-ec2</module>
         <module>aws2-ecs</module>
diff --git a/extensions-jvm/aws2-cw/deployment/pom.xml b/extensions/aws2-cw/deployment/pom.xml
similarity index 84%
rename from extensions-jvm/aws2-cw/deployment/pom.xml
rename to extensions/aws2-cw/deployment/pom.xml
index 4702dda..31d367a 100644
--- a/extensions-jvm/aws2-cw/deployment/pom.xml
+++ b/extensions/aws2-cw/deployment/pom.xml
@@ -50,6 +50,18 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-cw</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-xml-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws2-deployment</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java b/extensions/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
new file mode 100644
index 0000000..95fd34b
--- /dev/null
+++ b/extensions/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
@@ -0,0 +1,66 @@
+/*
+ * 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.aws2.cw.deployment;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.jboss.jandex.DotName;
+import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
+
+class Aws2CwProcessor {
+
+    private static final String FEATURE = "camel-aws2-cw";
+
+    public static final String AWS_SDK_APPLICATION_ARCHIVE_MARKERS = "software/amazon/awssdk";
+
+    private static final List<String> INTERCEPTOR_PATHS = Arrays.asList(
+            "software/amazon/awssdk/global/handlers/execution.interceptors");
+
+    private static final DotName EXECUTION_INTERCEPTOR_NAME = DotName.createSimple(ExecutionInterceptor.class.getName());
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep(applicationArchiveMarkers = { AWS_SDK_APPLICATION_ARCHIVE_MARKERS })
+    void process(CombinedIndexBuildItem combinedIndexBuildItem,
+            BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
+            BuildProducer<NativeImageResourceBuildItem> resource) {
+
+        INTERCEPTOR_PATHS.forEach(path -> resource.produce(new NativeImageResourceBuildItem(path)));
+
+        List<String> knownInterceptorImpls = combinedIndexBuildItem.getIndex()
+                .getAllKnownImplementors(EXECUTION_INTERCEPTOR_NAME)
+                .stream()
+                .map(c -> c.name().toString()).collect(Collectors.toList());
+
+        reflectiveClasses.produce(new ReflectiveClassBuildItem(false, false,
+                knownInterceptorImpls.toArray(new String[knownInterceptorImpls.size()])));
+
+        reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false,
+                String.class.getCanonicalName()));
+    }
+}
diff --git a/extensions-jvm/aws2-cw/pom.xml b/extensions/aws2-cw/pom.xml
similarity index 97%
rename from extensions-jvm/aws2-cw/pom.xml
rename to extensions/aws2-cw/pom.xml
index 569461c..1428ccd 100644
--- a/extensions-jvm/aws2-cw/pom.xml
+++ b/extensions/aws2-cw/pom.xml
@@ -33,6 +33,5 @@
     <modules>
         <module>deployment</module>
         <module>runtime</module>
-        <module>integration-test</module>
     </modules>
 </project>
diff --git a/extensions-jvm/aws2-cw/runtime/pom.xml b/extensions/aws2-cw/runtime/pom.xml
similarity index 86%
rename from extensions-jvm/aws2-cw/runtime/pom.xml
rename to extensions/aws2-cw/runtime/pom.xml
index b59845c..c5739f3 100644
--- a/extensions-jvm/aws2-cw/runtime/pom.xml
+++ b/extensions/aws2-cw/runtime/pom.xml
@@ -55,6 +55,18 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-aws2-cw</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-aws2</artifactId>
+        </dependency>
+       <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-xml</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 88%
rename from extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to extensions/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index b23156a..6a810f3 100644
--- a/extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -19,11 +19,10 @@
 name: "AWS 2 CloudWatch"
 description: "The aws2-cw component is used for sending metrics to an Amazon CloudWatch."
 metadata:
-  unlisted: true
   keywords:
+  - "camel"
+  - "aws"
   - "cloud"
-  - "monitoring"
-  guide: "https://camel.apache.org/components/latest/aws2-cw-component.html"
+  guide: "https://quarkus.io/guides/camel"
   categories:
   - "integration"
-  status: "preview"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index cc8e207..349a5cb 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -51,6 +51,7 @@
         <module>aws-sqs</module>
         <module>aws-swf</module>
         <module>aws-translate</module>
+        <module>aws2-cw</module>
         <module>aws2-s3</module>
         <module>aws2-sns</module>
         <module>aws2-sqs</module>
diff --git a/integration-tests/aws2/pom.xml b/integration-tests/aws2/pom.xml
index e60f790..6860ea0 100644
--- a/integration-tests/aws2/pom.xml
+++ b/integration-tests/aws2/pom.xml
@@ -54,6 +54,10 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-cw</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-s3</artifactId>
         </dependency>
         <dependency>
diff --git a/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java b/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
index 4c96655..9c81b1b 100644
--- a/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
+++ b/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.aws2;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws2.cw.Cw2Constants;
 
 public class CamelRoute extends RouteBuilder {
 
@@ -38,6 +39,14 @@ public class CamelRoute extends RouteBuilder {
                 .setBody(constant("Quarkus is great!"))
                 .to("aws2-sns://topic1")
                 .to("log:sf?showAll=true");
+
+        from("timer:quarkus-cw?repeatCount=1")
+                .setBody(constant("Quarkus is great!"))
+                .setHeader(Cw2Constants.METRIC_NAME, constant("ExchangesCompleted"))
+                .setHeader(Cw2Constants.METRIC_VALUE, constant("2.0"))
+                .setHeader(Cw2Constants.METRIC_UNIT, constant("Count"))
+                .to("aws2-cw://test")
+                .to("log:sf?showAll=true");
     }
 
 }
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 4600d2f..42c47a7 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -206,6 +206,12 @@
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-aws2-cw</artifactId>
                 <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>software.amazon.awssdk</groupId>
+                        <artifactId>netty-nio-client</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>