This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push: new 694f840 Add ahc-ws extension 694f840 is described below commit 694f8408c0b8a621d4409411f7b86d58389abd35 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Wed Jan 22 07:26:46 2020 +0000 Add ahc-ws extension fixes #619 --- .../pages/list-of-camel-quarkus-extensions.adoc | 5 +- extensions/ahc-ws/deployment/pom.xml | 83 ++++++++++++++++++++ .../ahc/ws/deployment/AhcWsProcessor.java | 18 +++-- extensions/ahc-ws/pom.xml | 39 ++++++++++ extensions/ahc-ws/runtime/pom.xml | 90 ++++++++++++++++++++++ .../main/resources/META-INF/quarkus-extension.yaml | 29 +++++++ .../kinesis/deployment/AwsKinesisProcessor.java | 6 +- extensions/pom.xml | 1 + extensions/readme.adoc | 5 +- integration-tests/http/pom.xml | 12 +++ ...{HttpRoute.java => GreetingServerEndpoint.java} | 14 ++-- .../quarkus/component/http/it/HttpResource.java | 22 ++++++ .../camel/quarkus/component/http/it/HttpRoute.java | 3 + .../camel/quarkus/component/http/it/HttpTest.java | 12 +++ poms/bom-deployment/pom.xml | 5 ++ poms/bom/pom.xml | 10 +++ 16 files changed, 335 insertions(+), 19 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 f8d7df5..cdc5eee 100644 --- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc +++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc @@ -15,7 +15,7 @@ TIP: In case you are missing some Camel feature in the list: == Camel Components // components: START -Number of Camel components: 59 in 50 JAR artifacts (0 deprecated) +Number of Camel components: 60 in 51 JAR artifacts (0 deprecated) [width="100%",cols="4,1,5",options="header"] |=== @@ -24,6 +24,9 @@ Number of Camel components: 59 in 50 JAR artifacts (0 deprecated) | link:https://camel.apache.org/components/latest/ahc-component.html[AHC] (camel-quarkus-ahc) + `ahc:httpUri` | 1.2.0 | To call external HTTP services using Async Http Client. +| link:https://camel.apache.org/components/latest/ahc-ws-component.html[AHC Websocket] (camel-quarkus-ahc-ws) + +`ahc-ws:httpUri` | 1.2.0 | To exchange data with external Websocket servers using Async Http Client. + | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) + `aws-ec2:label` | 1.2.0 | The aws-ec2 is used for managing Amazon EC2 instances. diff --git a/extensions/ahc-ws/deployment/pom.xml b/extensions/ahc-ws/deployment/pom.xml new file mode 100644 index 0000000..81bed5f --- /dev/null +++ b/extensions/ahc-ws/deployment/pom.xml @@ -0,0 +1,83 @@ +<?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-ahc-ws-parent</artifactId> + <version>1.1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-ahc-ws-deployment</artifactId> + <name>Camel Quarkus :: AHC-WS :: 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-http-common-deployment</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-ahc-deployment</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-ahc-ws</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/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java b/extensions/ahc-ws/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/ws/deployment/AhcWsProcessor.java similarity index 69% copy from integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java copy to extensions/ahc-ws/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/ws/deployment/AhcWsProcessor.java index 9c2ce22..09d5671 100644 --- a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java +++ b/extensions/ahc-ws/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/ws/deployment/AhcWsProcessor.java @@ -14,14 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.http.it; +package org.apache.camel.quarkus.component.ahc.ws.deployment; -import org.apache.camel.builder.RouteBuilder; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.FeatureBuildItem; -public class HttpRoute extends RouteBuilder { - @Override - public void configure() { - from("netty-http:http://0.0.0.0:{{camel.netty-http.test-port}}/test/server/hello") - .transform().constant("Netty Hello World"); +class AhcWsProcessor { + + private static final String FEATURE = "camel-ahc-ws"; + + @BuildStep + FeatureBuildItem feature() { + return new FeatureBuildItem(FEATURE); } + } diff --git a/extensions/ahc-ws/pom.xml b/extensions/ahc-ws/pom.xml new file mode 100644 index 0000000..b006fbd --- /dev/null +++ b/extensions/ahc-ws/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-ahc-ws-parent</artifactId> + <name>Camel Quarkus :: AHC-WS</name> + <packaging>pom</packaging> + + <modules> + <module>deployment</module> + <module>runtime</module> + </modules> +</project> diff --git a/extensions/ahc-ws/runtime/pom.xml b/extensions/ahc-ws/runtime/pom.xml new file mode 100644 index 0000000..1082ca3 --- /dev/null +++ b/extensions/ahc-ws/runtime/pom.xml @@ -0,0 +1,90 @@ +<?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-ahc-ws-parent</artifactId> + <version>1.1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-ahc-ws</artifactId> + <name>Camel Quarkus :: AHC-WS :: 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>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-http-common</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-ahc</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-ahc-ws</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/ahc-ws/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/ahc-ws/runtime/src/main/resources/META-INF/quarkus-extension.yaml new file mode 100644 index 0000000..7de05b9 --- /dev/null +++ b/extensions/ahc-ws/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 Async HTTP Client (AHC) Web Socket" +description: "Camel Quarkus Async HTTP Client (AHC) Web Socket support" +metadata: + keywords: + - "camel" + - "http" + - "websocket" + - "client" + guide: "https://quarkus.io/guides/camel" + categories: + - "integration" diff --git a/extensions/aws-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kinesis/deployment/AwsKinesisProcessor.java b/extensions/aws-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kinesis/deployment/AwsKinesisProcessor.java index cf2052c..b543125 100644 --- a/extensions/aws-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kinesis/deployment/AwsKinesisProcessor.java +++ b/extensions/aws-kinesis/deployment/src/main/java/org/apache/camel/quarkus/component/aws/kinesis/deployment/AwsKinesisProcessor.java @@ -16,16 +16,12 @@ */ package org.apache.camel.quarkus.component.aws.kinesis.deployment; -import org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration; -import org.apache.camel.component.aws.kinesis.KinesisConfiguration; - import com.amazonaws.partitions.model.CredentialScope; import com.amazonaws.partitions.model.Endpoint; import com.amazonaws.partitions.model.Partition; import com.amazonaws.partitions.model.Partitions; import com.amazonaws.partitions.model.Region; import com.amazonaws.partitions.model.Service; - import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.CombinedIndexBuildItem; @@ -33,6 +29,8 @@ import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration; +import org.apache.camel.component.aws.kinesis.KinesisConfiguration; class AwsKinesisProcessor { diff --git a/extensions/pom.xml b/extensions/pom.xml index e735f93..f17123b 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -44,6 +44,7 @@ <!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat --> <module>ahc</module> + <module>ahc-ws</module> <module>attachments</module> <module>aws-ec2</module> <module>aws-ecs</module> diff --git a/extensions/readme.adoc b/extensions/readme.adoc index 4567fbf..2a78678 100644 --- a/extensions/readme.adoc +++ b/extensions/readme.adoc @@ -5,7 +5,7 @@ Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extension == Camel Components // components: START -Number of Camel components: 59 in 50 JAR artifacts (0 deprecated) +Number of Camel components: 60 in 51 JAR artifacts (0 deprecated) [width="100%",cols="4,1,5",options="header"] |=== @@ -14,6 +14,9 @@ Number of Camel components: 59 in 50 JAR artifacts (0 deprecated) | link:https://camel.apache.org/components/latest/ahc-component.html[AHC] (camel-quarkus-ahc) + `ahc:httpUri` | 1.2.0 | To call external HTTP services using Async Http Client. +| link:https://camel.apache.org/components/latest/ahc-ws-component.html[AHC Websocket] (camel-quarkus-ahc-ws) + +`ahc-ws:httpUri` | 1.2.0 | To exchange data with external Websocket servers using Async Http Client. + | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) + `aws-ec2:label` | 1.2.0 | The aws-ec2 is used for managing Amazon EC2 instances. diff --git a/integration-tests/http/pom.xml b/integration-tests/http/pom.xml index 881614a..d3fa706 100644 --- a/integration-tests/http/pom.xml +++ b/integration-tests/http/pom.xml @@ -42,10 +42,22 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-ahc-ws</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-netty-http</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> + <artifactId>quarkus-undertow-websockets</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency> diff --git a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/GreetingServerEndpoint.java similarity index 75% copy from integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java copy to integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/GreetingServerEndpoint.java index 9c2ce22..b524e31 100644 --- a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java +++ b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/GreetingServerEndpoint.java @@ -16,12 +16,14 @@ */ package org.apache.camel.quarkus.component.http.it; -import org.apache.camel.builder.RouteBuilder; +import javax.websocket.OnMessage; +import javax.websocket.server.ServerEndpoint; -public class HttpRoute extends RouteBuilder { - @Override - public void configure() { - from("netty-http:http://0.0.0.0:{{camel.netty-http.test-port}}/test/server/hello") - .transform().constant("Netty Hello World"); +@ServerEndpoint("/ahc-ws/greeting") +public class GreetingServerEndpoint { + + @OnMessage + public String onMessage(String message) { + return "Hello " + message; } } diff --git a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java index 3c2889e..871fc1a 100644 --- a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java +++ b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java @@ -26,6 +26,7 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; +import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.FluentProducerTemplate; @@ -35,6 +36,9 @@ public class HttpResource { @Inject FluentProducerTemplate producerTemplate; + @Inject + ConsumerTemplate consumerTemplate; + // ***************************** // // camel-ahc @@ -66,6 +70,24 @@ public class HttpResource { // ***************************** // + // camel-ahc-ws + // + // ***************************** + @Path("/ahc-ws/post") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String triggerAhcWsProducerConsumer(@QueryParam("test-port") int port, String message) throws Exception { + producerTemplate + .to("direct:ahcWsIn") + .withBody(message) + .withHeader("test-port", port) + .send(); + + return consumerTemplate.receiveBody("ahc-ws:localhost:" + port + "/ahc-ws/greeting", 5000, String.class); + } + + // ***************************** + // // camel-http // // ***************************** diff --git a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java index 9c2ce22..46f5028 100644 --- a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java +++ b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpRoute.java @@ -23,5 +23,8 @@ public class HttpRoute extends RouteBuilder { public void configure() { from("netty-http:http://0.0.0.0:{{camel.netty-http.test-port}}/test/server/hello") .transform().constant("Netty Hello World"); + + from("direct:ahcWsIn") + .toD("ahc-ws:localhost:${header.test-port}/ahc-ws/greeting"); } } diff --git a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java index 81d645f..8423014 100644 --- a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java +++ b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java @@ -62,4 +62,16 @@ class HttpTest { .body(is("Netty Hello World")); } + @Test + public void testAhcWsProducerConsumer() { + String body = "Camel Quarkus AHC-WS"; + RestAssured + .given() + .queryParam("test-port", RestAssured.port) + .body(body) + .post("/test/client/ahc-ws/post") + .then() + .body(is("Hello " + body)); + } + } diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml index 43d0778..1f53a45 100644 --- a/poms/bom-deployment/pom.xml +++ b/poms/bom-deployment/pom.xml @@ -66,6 +66,11 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-ahc-ws-deployment</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-attachments-deployment</artifactId> <version>${camel-quarkus.version}</version> </dependency> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index 6259c9f..a0aa572 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -73,6 +73,11 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-ahc-ws</artifactId> + <version>${camel.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-attachments</artifactId> <version>${camel.version}</version> </dependency> @@ -501,6 +506,11 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-ahc-ws</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-attachments</artifactId> <version>${camel-quarkus.version}</version> </dependency>