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

[camel-quarkus] 02/03: Combine messaging tests into one module

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

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

commit d043ee213934da0d94911a7c37b507f866b90ffa
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Mar 3 17:28:22 2020 +0000

    Combine messaging tests into one module
---
 .github/workflows/pr-build.yaml                    |   4 +-
 .../component/paho/deployment/PahoProcessor.java   |  10 +-
 integration-tests/jms/pom.xml                      | 147 -----------------
 .../quarkus/component/jms/it/JmsResource.java      |  58 -------
 .../quarkus/component/jms/it/JmsTestResource.java  |  71 ---------
 integration-tests/{paho => messaging}/pom.xml      |  45 +++---
 .../component/messaging/it/JmsResource.java        | 105 ++++++++++++
 .../messaging/it/ActiveMQTestResource.java         |  75 +++++++++
 .../quarkus/component/messaging}/it/JmsIT.java     |   2 +-
 .../quarkus/component/messaging}/it/JmsTest.java   |  19 +--
 .../quarkus/component/paho/it/PahoResource.java    |  64 --------
 .../component/paho/it/ActiveMQTestResource.java    |  84 ----------
 .../camel/quarkus/component/paho/it/PahoIT.java    |  24 ---
 .../camel/quarkus/component/paho/it/PahoTest.java  |  46 ------
 integration-tests/pom.xml                          |  10 +-
 integration-tests/sjms/.gitignore                  |   1 -
 integration-tests/sjms/pom.xml                     | 176 ---------------------
 .../quarkus/component/sjms/CamelSjmsResource.java  |  76 ---------
 .../quarkus/component/sjms/CamelSjmsRoute.java     |  28 ----
 .../sjms/src/main/resources/application.properties |  24 ---
 .../quarkus/component/sjms/it/CamelSjmsIT.java     |  23 ---
 .../quarkus/component/sjms/it/CamelSjmsTest.java   |  60 -------
 .../component/sjms/it/CamelSjmsTestResource.java   |  83 ----------
 .../sjms/src/test/resources/broker.xml             |  44 ------
 24 files changed, 223 insertions(+), 1056 deletions(-)

diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index c90ba11..44f29e2 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -211,10 +211,8 @@ jobs:
             -Dnative \
             -Ddocker \
             -DskipTests \
-            -pl :camel-quarkus-integration-test-sjms \
             -pl :camel-quarkus-integration-test-kafka \
-            -pl :camel-quarkus-integration-test-paho \
-            -pl :camel-quarkus-integration-test-jms
+            -pl :camel-quarkus-integration-test-messaging
   dataformats:
     runs-on: ubuntu-latest
     needs: build
diff --git a/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java b/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java
index 2e03afe..8d7f7b1 100644
--- a/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java
+++ b/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java
@@ -27,6 +27,8 @@ import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.component.paho.PahoConfiguration;
+import org.apache.camel.quarkus.core.deployment.UnbannedReflectiveBuildItem;
 import org.eclipse.paho.client.mqttv3.internal.SSLNetworkModuleFactory;
 import org.eclipse.paho.client.mqttv3.internal.TCPNetworkModuleFactory;
 import org.eclipse.paho.client.mqttv3.logging.JSR47Logger;
@@ -39,7 +41,8 @@ class PahoProcessor {
     private static final List<Class<?>> PAHO_REFLECTIVE_CLASSES = Arrays.asList(
             JSR47Logger.class,
             TCPNetworkModuleFactory.class,
-            SSLNetworkModuleFactory.class);
+            SSLNetworkModuleFactory.class,
+            PahoConfiguration.class);
 
     @Inject
     BuildProducer<NativeImageResourceBuildItem> resource;
@@ -61,6 +64,11 @@ class PahoProcessor {
     }
 
     @BuildStep
+    UnbannedReflectiveBuildItem whitelistConfigurationClasses() {
+        return new UnbannedReflectiveBuildItem(PahoConfiguration.class.getName());
+    }
+
+    @BuildStep
     void registerBundleResource() {
         resource.produce(new NativeImageResourceBuildItem("META-INF/services/" + NetworkModuleFactory.class.getName()));
         resourceBundle.produce(new NativeImageResourceBundleBuildItem("org.eclipse.paho.client.mqttv3.internal.nls.logcat"));
diff --git a/integration-tests/jms/pom.xml b/integration-tests/jms/pom.xml
deleted file mode 100644
index f2ee8db..0000000
--- a/integration-tests/jms/pom.xml
+++ /dev/null
@@ -1,147 +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-integration-tests</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-integration-test-jms</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: JMS</name>
-    <description>Integration tests for Camel Quarkus JMS 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-jms-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-jms</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-artemis-jms</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>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-support</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.activemq</groupId>
-            <artifactId>artemis-server</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.jboss.logmanager</groupId>
-                    <artifactId>jboss-logmanager</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.logging</groupId>
-            <artifactId>commons-logging-jboss-logging</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>
-
-    <profiles>
-        <profile>
-            <id>native</id>
-            <activation>
-                <property>
-                    <name>native</name>
-                </property>
-            </activation>
-            <properties>
-                <quarkus.package.type>native</quarkus.package.type>
-            </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>
-                                <configuration>
-                                    <systemProperties>
-                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
-                                    </systemProperties>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/integration-tests/jms/src/main/java/org/apache/camel/quarkus/component/jms/it/JmsResource.java b/integration-tests/jms/src/main/java/org/apache/camel/quarkus/component/jms/it/JmsResource.java
deleted file mode 100644
index f400b45..0000000
--- a/integration-tests/jms/src/main/java/org/apache/camel/quarkus/component/jms/it/JmsResource.java
+++ /dev/null
@@ -1,58 +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.jms.it;
-
-import java.net.URI;
-
-import javax.inject.Inject;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.ConsumerTemplate;
-import org.apache.camel.ProducerTemplate;
-
-@Path("/jms")
-public class JmsResource {
-
-    @Inject
-    ProducerTemplate producerTemplate;
-
-    @Inject
-    ConsumerTemplate consumerTemplate;
-
-    @Path("/get/{queueName}")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String consumeMessage(@PathParam("queueName") String queueName) {
-        return consumerTemplate.receiveBodyNoWait("jms:queue:" + queueName, String.class);
-    }
-
-    @Path("/post/{queueName}")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    @Produces(MediaType.TEXT_PLAIN)
-    public Response produceMessage(@PathParam("queueName") String queueName, String message) throws Exception {
-        producerTemplate.sendBody("jms:queue:" + queueName, message);
-        return Response.created(new URI("https://camel.apache.org/")).build();
-    }
-}
diff --git a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTestResource.java b/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTestResource.java
deleted file mode 100644
index 119af05..0000000
--- a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTestResource.java
+++ /dev/null
@@ -1,71 +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.jms.it;
-
-import java.io.File;
-import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.Map;
-
-import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
-import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
-import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
-import org.apache.camel.quarkus.test.AvailablePortFinder;
-import org.apache.commons.io.FileUtils;
-
-public class JmsTestResource implements QuarkusTestResourceLifecycleManager {
-    private EmbeddedActiveMQ embedded;
-
-    @Override
-    public Map<String, String> start() {
-        try {
-            final File dataDirectory = Paths.get("./target/artemis").toFile();
-            FileUtils.deleteDirectory(dataDirectory);
-
-            final int port = AvailablePortFinder.getNextAvailable();
-            final String url = String.format("tcp://127.0.0.1:%d", port);
-
-            ConfigurationImpl cfg = new ConfigurationImpl();
-            cfg.addAcceptorConfiguration("activemq", url);
-            cfg.setSecurityEnabled(false);
-            cfg.setBrokerInstance(dataDirectory);
-
-            embedded = new EmbeddedActiveMQ();
-            embedded.setConfiguration(cfg);
-            embedded.start();
-
-            return Collections.singletonMap("quarkus.artemis.url", url);
-        } catch (Exception e) {
-            throw new RuntimeException("Could not start embedded ActiveMQ server", e);
-        }
-    }
-
-    @Override
-    public void stop() {
-        try {
-        } catch (Exception e) {
-            // ignored
-        }
-        try {
-            if (embedded != null) {
-                embedded.stop();
-            }
-        } catch (Exception e) {
-            throw new RuntimeException("Could not stop embedded ActiveMQ server", e);
-        }
-    }
-}
diff --git a/integration-tests/paho/pom.xml b/integration-tests/messaging/pom.xml
similarity index 82%
rename from integration-tests/paho/pom.xml
rename to integration-tests/messaging/pom.xml
index 5d0e46f..be9b6f0 100644
--- a/integration-tests/paho/pom.xml
+++ b/integration-tests/messaging/pom.xml
@@ -25,9 +25,9 @@
         <version>1.1.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-quarkus-integration-test-paho</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: Paho</name>
-    <description>Integration tests for Camel Quarkus Paho extension</description>
+    <artifactId>camel-quarkus-integration-test-messaging</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Messaging</name>
+    <description>Integration tests for Camel Quarkus Messaging extension</description>
 
     <properties>
         <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
@@ -36,18 +36,34 @@
         <!-- 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-paho-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jms-deployment,camel-quarkus-paho-deployment,camel-quarkus-sjms-deployment,camel-quarkus-sjms2-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jms</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-paho</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-sjms</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-sjms2</artifactId>
+        </dependency>
+        <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-artemis-jms</artifactId>
+        </dependency>
 
         <!-- test dependencies -->
         <dependency>
@@ -60,28 +76,9 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
-
-        <!-- test dependencies - camel-quarkus -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-support</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- test dependencies - activemq -->
-        <dependency>
-            <groupId>org.apache.activemq</groupId>
-            <artifactId>activemq-kahadb-store</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.activemq</groupId>
-            <artifactId>activemq-mqtt</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.activemq</groupId>
-            <artifactId>activemq-broker</artifactId>
+            <artifactId>camel-quarkus-integration-testcontainers-support</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/integration-tests/messaging/src/main/java/org/apache/camel/quarkus/component/messaging/it/JmsResource.java b/integration-tests/messaging/src/main/java/org/apache/camel/quarkus/component/messaging/it/JmsResource.java
new file mode 100644
index 0000000..5d22df8
--- /dev/null
+++ b/integration-tests/messaging/src/main/java/org/apache/camel/quarkus/component/messaging/it/JmsResource.java
@@ -0,0 +1,105 @@
+/*
+ * 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.messaging.it;
+
+import java.net.URI;
+
+import javax.inject.Inject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/messaging")
+public class JmsResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    ConsumerTemplate consumerTemplate;
+
+    // *****************************
+    //
+    // camel-jms
+    //
+    // *****************************
+
+    @Path("/jms/{queueName}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String consumeJmsMessage(@PathParam("queueName") String queueName) {
+        return consumerTemplate.receiveBody("jms:queue:" + queueName, 5000, String.class);
+    }
+
+    @Path("/jms/{queueName}")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response produceJmsMessage(@PathParam("queueName") String queueName, String message) throws Exception {
+        producerTemplate.sendBody("jms:queue:" + queueName, message);
+        return Response.created(new URI("https://camel.apache.org/")).build();
+    }
+
+    // *****************************
+    //
+    // camel-paho
+    //
+    // *****************************
+
+    @Path("/paho/{queueName}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String consumePahoMessage(@PathParam("queueName") String queueName) {
+        return consumerTemplate.receiveBody("paho:" + queueName, 5000, String.class);
+    }
+
+    @Path("/paho/{queueName}")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response producePahoMessage(@PathParam("queueName") String queueName, String message) throws Exception {
+        producerTemplate.sendBody("paho:" + queueName + "?retained=true", message);
+        return Response.created(new URI("https://camel.apache.org/")).build();
+    }
+
+    // *****************************
+    //
+    // camel-sjms
+    //
+    // *****************************
+
+    @Path("/sjms/{queueName}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String consumeSjmsMessage(@PathParam("queueName") String queueName) {
+        return consumerTemplate.receiveBody("sjms:queue:" + queueName, 5000, String.class);
+    }
+
+    @Path("/sjms/{queueName}")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response produceSjmsMessage(@PathParam("queueName") String queueName, String message) throws Exception {
+        producerTemplate.sendBody("sjms2:queue:" + queueName, message);
+        return Response.created(new URI("https://camel.apache.org/")).build();
+    }
+}
diff --git a/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/ActiveMQTestResource.java b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/ActiveMQTestResource.java
new file mode 100644
index 0000000..f8b2587
--- /dev/null
+++ b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/ActiveMQTestResource.java
@@ -0,0 +1,75 @@
+/*
+ * 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.messaging.it;
+
+import java.util.Map;
+
+import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.utility.TestcontainersConfiguration;
+
+public class ActiveMQTestResource implements QuarkusTestResourceLifecycleManager {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMQTestResource.class);
+    private static final String ACTIVEMQ_IMAGE = "vromero/activemq-artemis:2.11.0-alpine";
+    private static final String ACTIVEMQ_USERNAME = "artemis";
+    private static final String ACTIVEMQ_PASSWORD = "simetraehcapa";
+    private static final int ACTIVEMQ_PORT = 61616;
+
+    private GenericContainer container;
+
+    @Override
+    public Map<String, String> start() {
+        LOGGER.info(TestcontainersConfiguration.getInstance().toString());
+
+        try {
+            container = new GenericContainer(ACTIVEMQ_IMAGE)
+                    .withExposedPorts(ACTIVEMQ_PORT)
+                    .waitingFor(Wait.forListeningPort());
+
+            container.start();
+
+            String brokerUrl = String.format("tcp://127.0.0.1:%d", container.getMappedPort(ACTIVEMQ_PORT));
+
+            return CollectionHelper.mapOf(
+                    "quarkus.artemis.url", brokerUrl,
+                    "quarkus.artemis.username", ACTIVEMQ_USERNAME,
+                    "quarkus.artemis.password", ACTIVEMQ_PASSWORD,
+                    "camel.component.paho.brokerUrl", brokerUrl,
+                    "camel.component.paho.configuration.username", ACTIVEMQ_USERNAME,
+                    "camel.component.paho.configuration.password", ACTIVEMQ_PASSWORD);
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public void stop() {
+        try {
+            if (container != null) {
+                container.stop();
+            }
+        } catch (Exception e) {
+            // ignored
+        }
+    }
+}
diff --git a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsIT.java b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsIT.java
similarity index 94%
rename from integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsIT.java
rename to integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsIT.java
index a3e9357..606dc33 100644
--- a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsIT.java
+++ b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsIT.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.jms.it;
+package org.apache.camel.quarkus.component.messaging.it;
 
 import io.quarkus.test.junit.NativeImageTest;
 
diff --git a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTest.java b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsTest.java
similarity index 70%
rename from integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTest.java
rename to integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsTest.java
index 7579ffa..030a264 100644
--- a/integration-tests/jms/src/test/java/org/apache/camel/quarkus/component/jms/it/JmsTest.java
+++ b/integration-tests/messaging/src/test/java/org/apache/camel/quarkus/component/messaging/it/JmsTest.java
@@ -14,35 +14,36 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.jms.it;
+package org.apache.camel.quarkus.component.messaging.it;
 
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
 import static org.hamcrest.core.Is.is;
 
 @QuarkusTest
-@QuarkusTestResource(JmsTestResource.class)
+@QuarkusTestResource(ActiveMQTestResource.class)
 class JmsTest {
 
-    @Test
-    public void testJmsComponent() {
-        String message = "Hello Camel Quarkus JMS";
+    @ParameterizedTest
+    @ValueSource(strings = { "jms", "paho", "sjms" })
+    public void testJmsComponent(String component) {
+        String message = "Hello Camel Quarkus " + component;
 
         RestAssured.given()
                 .contentType(ContentType.TEXT)
                 .body(message)
-                .post("/jms/post/{queueName}", "jms-test-queue")
+                .post("/messaging/" + component + "/{queueName}", component + "-test-queue")
                 .then()
                 .statusCode(201);
 
         RestAssured.given()
                 .contentType(ContentType.TEXT)
-                .body(message)
-                .get("/jms/get/{queueName}", "jms-test-queue")
+                .get("/messaging/" + component + "/{queueName}", component + "-test-queue")
                 .then()
                 .statusCode(200)
                 .body(is(message));
diff --git a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/it/PahoResource.java b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/it/PahoResource.java
deleted file mode 100644
index d383ddb..0000000
--- a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/it/PahoResource.java
+++ /dev/null
@@ -1,64 +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.paho.it;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-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.ConsumerTemplate;
-import org.apache.camel.ProducerTemplate;
-import org.jboss.logging.Logger;
-
-@Path("/paho")
-@ApplicationScoped
-public class PahoResource {
-
-    private static final Logger LOG = Logger.getLogger(PahoResource.class);
-
-    @Inject
-    ProducerTemplate producerTemplate;
-
-    @Inject
-    ConsumerTemplate consumerTemplate;
-
-    @Path("/queue")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String get() {
-        final String message = consumerTemplate.receiveBody("paho:test/queue", String.class);
-        return message;
-    }
-
-    @Path("/queue")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    @Produces(MediaType.TEXT_PLAIN)
-    public Response publish(String message) {
-        LOG.infof("Sending to paho: %s", message);
-        producerTemplate.requestBody("paho:test/queue?retained=true", message, String.class);
-        LOG.infof("Sent to paho: %s", message);
-
-        return Response.ok().build();
-    }
-}
diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/ActiveMQTestResource.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/ActiveMQTestResource.java
deleted file mode 100644
index fab23f9..0000000
--- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/ActiveMQTestResource.java
+++ /dev/null
@@ -1,84 +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.paho.it;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Map;
-
-import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
-import org.apache.activemq.broker.BrokerService;
-import org.apache.activemq.broker.TransportConnector;
-import org.apache.camel.quarkus.test.AvailablePortFinder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ActiveMQTestResource implements QuarkusTestResourceLifecycleManager {
-    private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMQTestResource.class);
-    private BrokerService broker;
-
-    @Override
-    public Map<String, String> start() {
-        try {
-            final int port = AvailablePortFinder.getNextAvailable();
-            final String transportUri = String.format("mqtt://127.0.0.1:%d", port);
-            final String brokerUri = String.format("tcp://127.0.0.1:%d", port);
-            final File dataDirectory = Files.createTempDirectory("paho-data-").toFile();
-
-            TransportConnector mqtt = new TransportConnector();
-            mqtt.setUri(new URI(transportUri));
-
-            broker = new BrokerService();
-            broker.addConnector(mqtt);
-            broker.setDataDirectoryFile(dataDirectory);
-            broker.start();
-
-            return Collections.singletonMap("camel.component.paho.brokerUrl", brokerUri);
-        } catch (Exception e) {
-            LOGGER.error("Starting the ActiveMQ broker with exception.", e);
-            throw new RuntimeException("Starting the ActiveMQ broker with exception.", e);
-        }
-    }
-
-    @Override
-    public void stop() {
-        try {
-            if (broker != null) {
-                broker.stop();
-            }
-        } catch (Exception e) {
-            LOGGER.error("Stopping the ActiveMQ broker with exception.", e);
-        }
-
-        try {
-            if (broker != null) {
-                Files.walk(broker.getDataDirectoryFile().toPath())
-                        .sorted(Comparator.reverseOrder())
-                        .map(Path::toFile)
-                        .forEach(File::delete);
-            }
-        } catch (IOException e) {
-            LOGGER.error("Error cleaning up ActiveMQ data directory", e);
-        }
-    }
-}
diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java
deleted file mode 100644
index 87597c4..0000000
--- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.paho.it;
-
-import io.quarkus.test.junit.NativeImageTest;
-
-@NativeImageTest
-class PahoIT extends PahoTest {
-
-}
diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java
deleted file mode 100644
index 4888f8c..0000000
--- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java
+++ /dev/null
@@ -1,46 +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.paho.it;
-
-import java.util.UUID;
-
-import io.quarkus.test.common.QuarkusTestResource;
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import io.restassured.http.ContentType;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-@QuarkusTest
-@QuarkusTestResource(ActiveMQTestResource.class)
-class PahoTest {
-
-    @Test
-    public void test() {
-        final String msg = UUID.randomUUID().toString().replace("-", "");
-
-        // publish the message to the queue
-        RestAssured.given()
-                .contentType(ContentType.TEXT).body(msg).post("/paho/queue") //
-                .then().statusCode(200);
-
-        // receive the message from the queue
-        String body = RestAssured.get("/paho/queue").asString();
-        Assertions.assertEquals(msg, body);
-    }
-
-}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 7cbc124..fa99a18 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -34,7 +34,6 @@
 
     <properties>
         <activemq-version>5.15.10</activemq-version>
-        <artemis.version>2.10.0</artemis.version>
         <ftpserver.version>1.1.1</ftpserver.version>
         <sshd.version>2.3.0</sshd.version>
         <testcontainers.version>1.12.5</testcontainers.version>
@@ -144,11 +143,6 @@
                     </exclusion>
                 </exclusions>
             </dependency>
-            <dependency>
-                <groupId>org.apache.activemq</groupId>
-                <artifactId>artemis-server</artifactId>
-                <version>${artemis.version}</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -193,16 +187,15 @@
         <module>infinispan</module>
         <module>jdbc</module>
         <module>jira</module>
-        <module>jms</module>
         <module>jsonpath</module>
         <module>kafka</module>
         <module>mail</module>
+        <module>messaging</module>
         <module>microprofile</module>
         <module>mongodb</module>
         <module>netty</module>
         <module>olingo4</module>
         <module>opentracing</module>
-        <module>paho</module>
         <module>pdf</module>
         <module>platform-http</module>
         <module>platform-http-engine</module>
@@ -211,7 +204,6 @@
         <module>scheduler</module>
         <module>seda</module>
         <module>servlet</module>
-        <module>sjms</module>
         <module>slack</module>
         <module>sql</module>
         <module>stream</module>
diff --git a/integration-tests/sjms/.gitignore b/integration-tests/sjms/.gitignore
deleted file mode 100644
index adbb97d..0000000
--- a/integration-tests/sjms/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-data/
\ No newline at end of file
diff --git a/integration-tests/sjms/pom.xml b/integration-tests/sjms/pom.xml
deleted file mode 100644
index e42e7b4..0000000
--- a/integration-tests/sjms/pom.xml
+++ /dev/null
@@ -1,176 +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-integration-tests</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-integration-test-sjms</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: SJMS</name>
-    <description>Integration tests for Camel Quarkus SJMS 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-log-deployment,camel-quarkus-sjms-deployment,camel-quarkus-sjms2-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-sjms</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-sjms2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-log</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy-jsonb</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-artemis-jms</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>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- test dependencies - camel-quarkus -->
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-support</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- test dependencies - activemq -->
-        <dependency>
-            <groupId>org.apache.activemq</groupId>
-            <artifactId>artemis-server</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.jboss.logmanager</groupId>
-                    <artifactId>jboss-logmanager</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.logging</groupId>
-            <artifactId>commons-logging-jboss-logging</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>
-            <plugin>
-                <groupId>com.mycila</groupId>
-                <artifactId>license-maven-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>data/**/*</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>native</id>
-            <activation>
-                <property>
-                    <name>native</name>
-                </property>
-            </activation>
-            <properties>
-                <quarkus.package.type>native</quarkus.package.type>
-            </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>
-                                <configuration>
-                                    <systemProperties>
-                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
-                                    </systemProperties>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsResource.java b/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsResource.java
deleted file mode 100644
index 3a9e867..0000000
--- a/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsResource.java
+++ /dev/null
@@ -1,76 +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.sjms;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.jms.ConnectionFactory;
-import javax.jms.JMSConsumer;
-import javax.jms.JMSContext;
-import javax.jms.JMSException;
-import javax.jms.JMSProducer;
-import javax.jms.Message;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-@Path("/test")
-@ApplicationScoped
-public class CamelSjmsResource {
-    @Inject
-    ConnectionFactory connectionFactory;
-
-    @Path("/jms/{queueName}")
-    @POST
-    @Produces(MediaType.APPLICATION_JSON)
-    public JsonObject post(@PathParam("queueName") String queueName, String message) {
-        try (JMSContext context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE)) {
-            final JMSProducer producer = context.createProducer();
-            final Queue queue = context.createQueue(queueName);
-
-            producer.send(queue, message);
-        }
-
-        return Json.createObjectBuilder().build();
-    }
-
-    @Path("/jms/{queueName}")
-    @GET
-    @Produces(MediaType.APPLICATION_JSON)
-    public JsonObject get(@PathParam("queueName") String queueName) {
-        try (JMSContext context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE);
-                JMSConsumer consumer = context.createConsumer(context.createQueue(queueName))) {
-
-            Message msg = consumer.receive(10000L);
-            String body = msg != null ? msg.getBody(String.class) : "";
-
-            return Json.createObjectBuilder()
-                    .add("queueName", queueName)
-                    .add("body", body)
-                    .build();
-        } catch (JMSException e) {
-            throw new RuntimeException("Could not receive message", e);
-        }
-    }
-}
diff --git a/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsRoute.java b/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsRoute.java
deleted file mode 100644
index 5eab43a..0000000
--- a/integration-tests/sjms/src/main/java/org/apache/camel/quarkus/component/sjms/CamelSjmsRoute.java
+++ /dev/null
@@ -1,28 +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.sjms;
-
-import org.apache.camel.builder.RouteBuilder;
-
-public class CamelSjmsRoute extends RouteBuilder {
-    @Override
-    public void configure() throws Exception {
-        from("sjms:queue:inbound")
-                .to("log:jms")
-                .to("sjms2:queue:outbound");
-    }
-}
diff --git a/integration-tests/sjms/src/main/resources/application.properties b/integration-tests/sjms/src/main/resources/application.properties
deleted file mode 100644
index be0a82f..0000000
--- a/integration-tests/sjms/src/main/resources/application.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-#
-# Quarkus
-#
-quarkus.log.file.enable = false
-quarkus.log.category."org.apache.camel.quarkus.core.deployment".level = INFO
-quarkus.log.category."org.apache.camel.quarkus.component.sjms".level = DEBUG
-quarkus.log.category."org.apache.activemq.artemis".level = WARN
diff --git a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsIT.java b/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsIT.java
deleted file mode 100644
index 2c61311..0000000
--- a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsIT.java
+++ /dev/null
@@ -1,23 +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.sjms.it;
-
-import io.quarkus.test.junit.NativeImageTest;
-
-@NativeImageTest
-public class CamelSjmsIT extends CamelSjmsTest {
-}
diff --git a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTest.java b/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTest.java
deleted file mode 100644
index 62b184c..0000000
--- a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTest.java
+++ /dev/null
@@ -1,60 +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.sjms.it;
-
-import java.util.UUID;
-
-import javax.inject.Inject;
-
-import io.quarkus.test.common.QuarkusTestResource;
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import io.restassured.path.json.JsonPath;
-import org.apache.camel.quarkus.core.CamelMain;
-import org.junit.jupiter.api.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@QuarkusTest
-@QuarkusTestResource(CamelSjmsTestResource.class)
-public class CamelSjmsTest {
-    @Inject
-    CamelMain main;
-
-    @Test
-    void testQueueBridge() {
-        String body = UUID.randomUUID().toString();
-
-        RestAssured.given()
-                .contentType("text/plain")
-                .body(body)
-                .post("/test/jms/inbound")
-                .then()
-                .statusCode(200);
-
-        JsonPath result = RestAssured.given()
-                .get("/test/jms/outbound")
-                .then()
-                .statusCode(200)
-                .extract()
-                .body()
-                .jsonPath();
-
-        assertThat(result.getString("queueName")).isEqualTo("outbound");
-        assertThat(result.getString("body")).isEqualTo(body);
-    }
-}
diff --git a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTestResource.java b/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTestResource.java
deleted file mode 100644
index 2440862..0000000
--- a/integration-tests/sjms/src/test/java/org/apache/camel/quarkus/component/sjms/it/CamelSjmsTestResource.java
+++ /dev/null
@@ -1,83 +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.sjms.it;
-
-import java.io.File;
-import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.Map;
-
-import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
-import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
-import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
-import org.apache.camel.quarkus.core.CamelMain;
-import org.apache.camel.quarkus.test.AvailablePortFinder;
-import org.apache.commons.io.FileUtils;
-
-public class CamelSjmsTestResource implements QuarkusTestResourceLifecycleManager {
-    private CamelMain main;
-    private EmbeddedActiveMQ embedded;
-
-    @Override
-    public void inject(Object testInstance) {
-        if (testInstance instanceof CamelSjmsTest) {
-            this.main = ((CamelSjmsTest) testInstance).main;
-        }
-    }
-
-    @Override
-    public Map<String, String> start() {
-        try {
-            final File dataDirectory = Paths.get("./target/artemis").toFile();
-            FileUtils.deleteDirectory(dataDirectory);
-
-            final int port = AvailablePortFinder.getNextAvailable();
-            final String url = String.format("tcp://127.0.0.1:%d", port);
-
-            ConfigurationImpl cfg = new ConfigurationImpl();
-            cfg.addAcceptorConfiguration("activemq", url);
-            cfg.setSecurityEnabled(false);
-            cfg.setBrokerInstance(dataDirectory);
-
-            embedded = new EmbeddedActiveMQ();
-            embedded.setConfiguration(cfg);
-            embedded.start();
-
-            return Collections.singletonMap("quarkus.artemis.url", url);
-        } catch (Exception e) {
-            throw new RuntimeException("Could not start embedded ActiveMQ server", e);
-        }
-    }
-
-    @Override
-    public void stop() {
-        try {
-            if (main != null) {
-                main.stop();
-            }
-        } catch (Exception e) {
-            // ignored
-        }
-        try {
-            if (embedded != null) {
-                embedded.stop();
-            }
-        } catch (Exception e) {
-            throw new RuntimeException("Could not stop embedded ActiveMQ server", e);
-        }
-    }
-}
diff --git a/integration-tests/sjms/src/test/resources/broker.xml b/integration-tests/sjms/src/test/resources/broker.xml
deleted file mode 100644
index 2a6f911..0000000
--- a/integration-tests/sjms/src/test/resources/broker.xml
+++ /dev/null
@@ -1,44 +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.
-
--->
-<configuration xmlns="urn:activemq"
-               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-               xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
-    <core xmlns="urn:activemq:core">
-        <paging-directory>./target/artemis/paging</paging-directory>
-        <bindings-directory>./target/artemis/bindings</bindings-directory>
-        <journal-directory>./target/artemis/journal</journal-directory>
-        <large-messages-directory>./target/artemis/large-messages</large-messages-directory>
-
-        <connectors>
-            <connector name="activemq">tcp://localhost:61616</connector>
-        </connectors>
-        <acceptors>
-            <acceptor name="activemq">tcp://localhost:61616</acceptor>
-        </acceptors>
-
-        <security-enabled>false</security-enabled>
-
-        <queues>
-            <queue name="foo">
-                <address>test-jms</address>
-            </queue>
-        </queues>
-    </core>
-</configuration>
\ No newline at end of file