You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2023/07/13 16:29:40 UTC

[camel-quarkus] 03/03: [relates #3087] Create grouped module for HTTP tests

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

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

commit 93ba0a6b311c21ae36f9c04018088e5560957e93
Author: Andrej Vano <av...@redhat.com>
AuthorDate: Thu Jul 13 12:38:04 2023 +0200

    [relates #3087] Create grouped module for HTTP tests
---
 .../http/README.adoc                               |   4 +-
 .../http/common/pom.xml                            |  39 ++-
 .../http/common/AbstractHttpResource.java          |   4 +-
 .../component/http/common/CommonProducers.java     |   0
 .../quarkus/component/http/common/HttpService.java |   0
 .../src/main/resources/application.properties      |   0
 .../common/src/main/resources/jsse/keystore.p12    | Bin
 .../common/src/main/resources/jsse/truststore.jks  | Bin
 .../component/http/common/AbstractHttpTest.java    |   2 +
 .../component/http/common/HttpTestResource.java    |   0
 integration-test-groups/http/http/pom.xml          | 185 ++++++++++++
 .../quarkus/component/http/http/HttpProducers.java |   0
 .../quarkus/component/http/http/HttpResource.java  |   0
 .../quarkus/component/http/http/HttpRoutes.java    |   2 +-
 .../quarkus/component/http/http/it/HttpIT.java     |   0
 .../quarkus/component/http/http/it/HttpTest.java   |   0
 integration-test-groups/http/netty-http/pom.xml    | 215 ++++++++++++++
 .../component/http/netty/NettyHttpProducers.java   |   0
 .../component/http/netty/NettyHttpResource.java    |   0
 .../component/http/netty/NettyHttpRoutes.java      |   2 +-
 .../ProxyCapableClientInitializerFactory.java      |   0
 .../component/http/netty/auth/JaasLoginModule.java |   0
 .../http/netty/auth/TestAuthenticator.java         |   0
 .../http/netty/auth/TestRolePrincipal.java         |   0
 .../component/http/netty/pojo/UserPojo.java        |   0
 .../component/http/netty/it/NettyHttpIT.java       |   0
 .../component/http/netty/it/NettyHttpJaasTest.java |   0
 .../http/netty/it/NettyHttpJaasTestResource.java   |   0
 .../component/http/netty/it/NettyHttpTest.java     |   0
 .../http/netty/it/NettyHttpTestResource.java       |   0
 .../http/netty-http/src/test/resources/config.jaas |   0
 .../http/pom.xml                                   |  26 +-
 .../http/vertx-http/pom.xml                        |  88 +++++-
 .../vertx/VertxClientRelatedBeansProducer.java     |   0
 .../component/http/vertx/VertxHttpService.java     |   0
 .../component/http/vertx/VertxResource.java        |   0
 .../quarkus/component/http/vertx/VertxRoutes.java  |   2 +-
 .../src/main/resources/application.properties      |   0
 .../component/http/vertx/it/VertxHttpIT.java       |   0
 .../component/http/vertx/it/VertxHttpTest.java     |   0
 integration-test-groups/pom.xml                    |   1 +
 integration-tests/http-grouped/.gitignore          |   3 +
 integration-tests/http-grouped/pom.xml             | 322 +++++++++++++++++++++
 integration-tests/http/http/pom.xml                | 100 -------
 integration-tests/http/netty-http/pom.xml          | 104 -------
 integration-tests/pom.xml                          |   2 +-
 poms/bom-test/pom.xml                              |   4 +-
 tooling/scripts/test-categories.yaml               |   2 +-
 48 files changed, 862 insertions(+), 245 deletions(-)

diff --git a/integration-tests/http/README.adoc b/integration-test-groups/http/README.adoc
similarity index 78%
rename from integration-tests/http/README.adoc
rename to integration-test-groups/http/README.adoc
index 3bb970af55..a010749a0c 100644
--- a/integration-tests/http/README.adoc
+++ b/integration-test-groups/http/README.adoc
@@ -1,5 +1,5 @@
-== Certificate for netty-http test
+== Certificate for HTTPS
 
 Server keystore has to contain server certificate. It is possible to use self-signed certificate created by following command:
 
-`keytool -genkeypair -keystore keystore.p12 -storetype PKCS12 -storepass changeit -alias localhost -keyalg RSA -keysize 2048 -validity 99999 -dname "CN=localhost"'
\ No newline at end of file
+`keytool -genkeypair -keystore keystore.p12 -storetype PKCS12 -storepass changeit -alias localhost -keyalg RSA -keysize 2048 -validity 99999 -dname "CN=localhost"'
diff --git a/integration-tests/http/common/pom.xml b/integration-test-groups/http/common/pom.xml
similarity index 70%
rename from integration-tests/http/common/pom.xml
rename to integration-test-groups/http/common/pom.xml
index c8cc6e8b3b..1c4f1c5841 100644
--- a/integration-tests/http/common/pom.xml
+++ b/integration-test-groups/http/common/pom.xml
@@ -24,11 +24,12 @@
 
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-integration-test-http</artifactId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
         <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-integration-test-http-common</artifactId>
+    <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
     <name>Camel Quarkus :: Integration Tests :: HTTP :: Common</name>
 
     <dependencies>
@@ -49,10 +50,12 @@
         <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.testcontainers</groupId>
@@ -63,16 +66,17 @@
                     <artifactId>junit</artifactId>
                 </exclusion>
             </exclusions>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-junit4-mock</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>
     </dependencies>
 
@@ -99,4 +103,31 @@
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+        <profile>
+            <id>virtualDependencies</id>
+            <activation>
+                <property>
+                    <name>!noVirtualDependencies</name>
+                </property>
+            </activation>
+            <dependencies>
+                <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-core-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
 </project>
diff --git a/integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java b/integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java
similarity index 95%
rename from integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java
rename to integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java
index 62067fa414..21f3b08430 100644
--- a/integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java
+++ b/integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/AbstractHttpResource.java
@@ -58,9 +58,9 @@ public abstract class AbstractHttpResource {
     @Path("/get-https")
     @GET
     @Produces(MediaType.TEXT_PLAIN)
-    public String httpsGet() {
+    public String httpsGet(@QueryParam("component") String component) {
         return producerTemplate
-                .to("direct:https")
+                .toF("direct:%s-https", component)
                 .withHeader(Exchange.HTTP_METHOD, "GET")
                 .request(String.class);
     }
diff --git a/integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/CommonProducers.java b/integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/CommonProducers.java
similarity index 100%
rename from integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/CommonProducers.java
rename to integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/CommonProducers.java
diff --git a/integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/HttpService.java b/integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/HttpService.java
similarity index 100%
rename from integration-tests/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/HttpService.java
rename to integration-test-groups/http/common/src/main/java/org/apache/camel/quarkus/component/http/common/HttpService.java
diff --git a/integration-tests/http/common/src/main/resources/application.properties b/integration-test-groups/http/common/src/main/resources/application.properties
similarity index 100%
rename from integration-tests/http/common/src/main/resources/application.properties
rename to integration-test-groups/http/common/src/main/resources/application.properties
diff --git a/integration-tests/http/common/src/main/resources/jsse/keystore.p12 b/integration-test-groups/http/common/src/main/resources/jsse/keystore.p12
similarity index 100%
rename from integration-tests/http/common/src/main/resources/jsse/keystore.p12
rename to integration-test-groups/http/common/src/main/resources/jsse/keystore.p12
diff --git a/integration-tests/http/common/src/main/resources/jsse/truststore.jks b/integration-test-groups/http/common/src/main/resources/jsse/truststore.jks
similarity index 100%
rename from integration-tests/http/common/src/main/resources/jsse/truststore.jks
rename to integration-test-groups/http/common/src/main/resources/jsse/truststore.jks
diff --git a/integration-tests/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java
similarity index 98%
rename from integration-tests/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java
rename to integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java
index 6d67070bad..323d4b157c 100644
--- a/integration-tests/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java
+++ b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/AbstractHttpTest.java
@@ -59,6 +59,8 @@ public abstract class AbstractHttpTest {
     @Test
     public void httpsProducer() {
         RestAssured
+                .given()
+                .queryParam("component", component())
                 .when()
                 .get("/test/client/{component}/get-https", component())
                 .then()
diff --git a/integration-tests/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
similarity index 100%
rename from integration-tests/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
rename to integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
diff --git a/integration-test-groups/http/http/pom.xml b/integration-test-groups/http/http/pom.xml
new file mode 100644
index 0000000000..2b1adcae4b
--- /dev/null
+++ b/integration-test-groups/http/http/pom.xml
@@ -0,0 +1,185 @@
+<?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-it</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-tests-http-http</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: HTTP :: HTTP</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-http</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-seda</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit4-mock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+            </exclusions>
+            <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.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <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>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>skip-testcontainers-tests</id>
+            <activation>
+                <property>
+                    <name>skip-testcontainers-tests</name>
+                </property>
+            </activation>
+            <properties>
+                <skipTests>true</skipTests>
+            </properties>
+        </profile>
+        <profile>
+            <id>virtualDependencies</id>
+            <activation>
+                <property>
+                    <name>!noVirtualDependencies</name>
+                </property>
+            </activation>
+            <dependencies>
+                <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-direct-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-seda-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+</project>
diff --git a/integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpProducers.java b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpProducers.java
similarity index 100%
rename from integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpProducers.java
rename to integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpProducers.java
diff --git a/integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
similarity index 100%
rename from integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
rename to integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
diff --git a/integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java
similarity index 97%
rename from integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java
rename to integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java
index 9e5b41a377..580e886925 100644
--- a/integration-tests/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java
+++ b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpRoutes.java
@@ -22,7 +22,7 @@ import org.apache.camel.http.base.HttpOperationFailedException;
 public class HttpRoutes extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("direct:https").to(
+        from("direct:http-https").to(
                 "https://localhost:{{quarkus.http.test-ssl-port}}/service/common/https?sslContextParameters=#sslContextParameters");
 
         from("direct:httpOperationFailedException")
diff --git a/integration-tests/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpIT.java b/integration-test-groups/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpIT.java
similarity index 100%
rename from integration-tests/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpIT.java
rename to integration-test-groups/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpIT.java
diff --git a/integration-tests/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpTest.java b/integration-test-groups/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpTest.java
similarity index 100%
rename from integration-tests/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpTest.java
rename to integration-test-groups/http/http/src/test/java/org/apache/camel/quarkus/component/http/http/it/HttpTest.java
diff --git a/integration-test-groups/http/netty-http/pom.xml b/integration-test-groups/http/netty-http/pom.xml
new file mode 100644
index 0000000000..b6a91a91be
--- /dev/null
+++ b/integration-test-groups/http/netty-http/pom.xml
@@ -0,0 +1,215 @@
+<?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-it</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-https-netty-http</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: HTTP :: Netty-HTTP</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-netty-http</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-rest</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jackson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jaxb</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit4-mock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+            </exclusions>
+            <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.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <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>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>skip-testcontainers-tests</id>
+            <activation>
+                <property>
+                    <name>skip-testcontainers-tests</name>
+                </property>
+            </activation>
+            <properties>
+                <skipTests>true</skipTests>
+            </properties>
+        </profile>
+        <profile>
+            <id>virtualDependencies</id>
+            <activation>
+                <property>
+                    <name>!noVirtualDependencies</name>
+                </property>
+            </activation>
+            <dependencies>
+                <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-direct-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-jackson-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-jaxb-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-netty-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-rest-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+</project>
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpProducers.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpProducers.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpProducers.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpProducers.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpResource.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpResource.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpResource.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpResource.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java
similarity index 99%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java
index 227a23301b..699275779d 100644
--- a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java
+++ b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/NettyHttpRoutes.java
@@ -107,7 +107,7 @@ public class NettyHttpRoutes extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from("direct:https")
+        from("direct:netty-http-https")
                 .to("netty-http:https://localhost:{{quarkus.http.test-ssl-port}}/service/common/https?ssl=true&sslContextParameters=#sslContextParameters");
         from("netty-http:http://0.0.0.0:{{camel.netty-http.test-port}}/test/server/hello")
                 .transform().constant("Netty Hello World");
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/JaasLoginModule.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/JaasLoginModule.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/JaasLoginModule.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/JaasLoginModule.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestAuthenticator.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestAuthenticator.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestAuthenticator.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestAuthenticator.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestRolePrincipal.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestRolePrincipal.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestRolePrincipal.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/auth/TestRolePrincipal.java
diff --git a/integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/pojo/UserPojo.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/pojo/UserPojo.java
similarity index 100%
rename from integration-tests/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/pojo/UserPojo.java
rename to integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/pojo/UserPojo.java
diff --git a/integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpIT.java b/integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpIT.java
similarity index 100%
rename from integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpIT.java
rename to integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpIT.java
diff --git a/integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTest.java b/integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTest.java
similarity index 100%
rename from integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTest.java
rename to integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTest.java
diff --git a/integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTestResource.java b/integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTestResource.java
similarity index 100%
rename from integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTestResource.java
rename to integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpJaasTestResource.java
diff --git a/integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTest.java b/integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTest.java
similarity index 100%
rename from integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTest.java
rename to integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTest.java
diff --git a/integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTestResource.java b/integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTestResource.java
similarity index 100%
rename from integration-tests/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTestResource.java
rename to integration-test-groups/http/netty-http/src/test/java/org/apache/camel/quarkus/component/http/netty/it/NettyHttpTestResource.java
diff --git a/integration-tests/http/netty-http/src/test/resources/config.jaas b/integration-test-groups/http/netty-http/src/test/resources/config.jaas
similarity index 100%
rename from integration-tests/http/netty-http/src/test/resources/config.jaas
rename to integration-test-groups/http/netty-http/src/test/resources/config.jaas
diff --git a/integration-tests/http/pom.xml b/integration-test-groups/http/pom.xml
similarity index 56%
rename from integration-tests/http/pom.xml
rename to integration-test-groups/http/pom.xml
index 7a075b2389..9934b300a1 100644
--- a/integration-tests/http/pom.xml
+++ b/integration-test-groups/http/pom.xml
@@ -17,36 +17,26 @@
     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">
+<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-it</artifactId>
+        <artifactId>camel-quarkus-integration-test-groups</artifactId>
         <version>3.0.0-SNAPSHOT</version>
-        <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-integration-test-http</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: HTTP</name>
-    <description>Integration tests for Camel Quarkus HTTP extension</description>
-    <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>
+    <artifactId>camel-quarkus-integration-tests-http</artifactId>
+    <name>Camel Quarkus :: HTTP Integration Tests</name>
     <packaging>pom</packaging>
 
     <modules>
+        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>common</module>
         <module>http</module>
         <module>netty-http</module>
         <module>vertx-http</module>
     </modules>
+
 </project>
diff --git a/integration-tests/http/vertx-http/pom.xml b/integration-test-groups/http/vertx-http/pom.xml
similarity index 51%
rename from integration-tests/http/vertx-http/pom.xml
rename to integration-test-groups/http/vertx-http/pom.xml
index 01fe562f5b..4820c1eb62 100644
--- a/integration-tests/http/vertx-http/pom.xml
+++ b/integration-test-groups/http/vertx-http/pom.xml
@@ -23,22 +23,18 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-integration-test-http</artifactId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
         <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-integration-test-http-vertx-http</artifactId>
+    <artifactId>camel-quarkus-integration-tests-http-vertx-http</artifactId>
     <name>Camel Quarkus :: Integration Tests :: HTTP :: Vertx-HTTP</name>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-            <type>test-jar</type>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
@@ -52,6 +48,45 @@
             <groupId>org.jboss.resteasy</groupId>
             <artifactId>resteasy-multipart-provider</artifactId>
         </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit4-mock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+            </exclusions>
+            <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.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
     </dependencies>
     <profiles>
         <profile>
@@ -92,5 +127,42 @@
                 <skipTests>true</skipTests>
             </properties>
         </profile>
+        <profile>
+            <id>virtualDependencies</id>
+            <activation>
+                <property>
+                    <name>!noVirtualDependencies</name>
+                </property>
+            </activation>
+            <dependencies>
+                <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-direct-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-vertx-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+        </profile>
     </profiles>
 </project>
diff --git a/integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxClientRelatedBeansProducer.java b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxClientRelatedBeansProducer.java
similarity index 100%
rename from integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxClientRelatedBeansProducer.java
rename to integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxClientRelatedBeansProducer.java
diff --git a/integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxHttpService.java b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxHttpService.java
similarity index 100%
rename from integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxHttpService.java
rename to integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxHttpService.java
diff --git a/integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
similarity index 100%
rename from integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
rename to integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
diff --git a/integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java
similarity index 96%
rename from integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java
rename to integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java
index bd245e830e..565b5022ae 100644
--- a/integration-tests/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java
+++ b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxRoutes.java
@@ -22,7 +22,7 @@ import org.apache.camel.builder.RouteBuilder;
 public class VertxRoutes extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("direct:https").to(
+        from("direct:vertx-http-https").to(
                 "vertx-http:https://localhost:{{quarkus.http.test-ssl-port}}/service/common/https?sslContextParameters=#sslContextParameters");
         from("direct:vertx-http-buffer-conversion-with-charset").convertBodyTo(Buffer.class);
     }
diff --git a/integration-tests/http/vertx-http/src/main/resources/application.properties b/integration-test-groups/http/vertx-http/src/main/resources/application.properties
similarity index 100%
rename from integration-tests/http/vertx-http/src/main/resources/application.properties
rename to integration-test-groups/http/vertx-http/src/main/resources/application.properties
diff --git a/integration-tests/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpIT.java b/integration-test-groups/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpIT.java
similarity index 100%
rename from integration-tests/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpIT.java
rename to integration-test-groups/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpIT.java
diff --git a/integration-tests/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpTest.java b/integration-test-groups/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpTest.java
similarity index 100%
rename from integration-tests/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpTest.java
rename to integration-test-groups/http/vertx-http/src/test/java/org/apache/camel/quarkus/component/http/vertx/it/VertxHttpTest.java
diff --git a/integration-test-groups/pom.xml b/integration-test-groups/pom.xml
index c5a7d3181a..9141648984 100644
--- a/integration-test-groups/pom.xml
+++ b/integration-test-groups/pom.xml
@@ -45,6 +45,7 @@
         <module>cxf-soap</module>
         <module>dataformats-json</module>
         <module>foundation</module>
+        <module>http</module>
         <module>mongodb</module>
         <module>xml</module>
     </modules>
diff --git a/integration-tests/http-grouped/.gitignore b/integration-tests/http-grouped/.gitignore
new file mode 100644
index 0000000000..6119608b19
--- /dev/null
+++ b/integration-tests/http-grouped/.gitignore
@@ -0,0 +1,3 @@
+
+# src/main and src/test are copied from the underlying isolated modules by group-tests.groovy
+/src/
diff --git a/integration-tests/http-grouped/pom.xml b/integration-tests/http-grouped/pom.xml
new file mode 100644
index 0000000000..988ae80fc8
--- /dev/null
+++ b/integration-tests/http-grouped/pom.xml
@@ -0,0 +1,322 @@
+<?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-it</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-http-grouped</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: HTTP Grouped</name>
+    <description>HTTP tests from ../integration-test-groups/http merged together</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</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-elytron-security-properties-file</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-http</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-seda</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-netty-http</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-rest</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jackson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jaxb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-vertx-http</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-multipart-provider</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.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+            </exclusions>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit4-mock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-test-support</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>group-sources</id>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <scripts>
+                                <script>file:${maven.multiModuleProjectDirectory}/tooling/scripts/group-tests.groovy
+                                </script>
+                            </scripts>
+                            <properties>
+                                <group-tests.source.dir>
+                                    ${maven.multiModuleProjectDirectory}/integration-test-groups/http
+                                </group-tests.source.dir>
+                                <group-tests.dest.module.dir>${project.basedir}</group-tests.dest.module.dir>
+                                <group-tests.concat.rel.paths>src/main/resources/application.properties
+                                </group-tests.concat.rel.paths>
+                            </properties>
+                        </configuration>
+                    </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>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>virtualDependencies</id>
+            <activation>
+                <property>
+                    <name>!noVirtualDependencies</name>
+                </property>
+            </activation>
+            <dependencies>
+                <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-core-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-direct-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-jackson-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-jaxb-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-netty-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-rest-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-seda-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    <artifactId>camel-quarkus-vertx-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+        </profile>
+        <profile>
+            <id>skip-testcontainers-tests</id>
+            <activation>
+                <property>
+                    <name>skip-testcontainers-tests</name>
+                </property>
+            </activation>
+            <properties>
+                <skipTests>true</skipTests>
+            </properties>
+        </profile>
+    </profiles>
+</project>
diff --git a/integration-tests/http/http/pom.xml b/integration-tests/http/http/pom.xml
deleted file mode 100644
index 51ada75e3e..0000000000
--- a/integration-tests/http/http/pom.xml
+++ /dev/null
@@ -1,100 +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-test-http</artifactId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-integration-test-http-http</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: HTTP :: HTTP</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy-jsonb</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-http</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-seda</artifactId>
-        </dependency>
-    </dependencies>
-    <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>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>skip-testcontainers-tests</id>
-            <activation>
-                <property>
-                    <name>skip-testcontainers-tests</name>
-                </property>
-            </activation>
-            <properties>
-                <skipTests>true</skipTests>
-            </properties>
-        </profile>
-    </profiles>
-</project>
diff --git a/integration-tests/http/netty-http/pom.xml b/integration-tests/http/netty-http/pom.xml
deleted file mode 100644
index 28fad55e23..0000000000
--- a/integration-tests/http/netty-http/pom.xml
+++ /dev/null
@@ -1,104 +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-test-http</artifactId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-integration-test-http-netty-http</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: HTTP :: Netty-HTTP</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-http-common</artifactId>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-netty-http</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-rest</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-jackson</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-jaxb</artifactId>
-        </dependency>
-    </dependencies>
-    <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>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>skip-testcontainers-tests</id>
-            <activation>
-                <property>
-                    <name>skip-testcontainers-tests</name>
-                </property>
-            </activation>
-            <properties>
-                <skipTests>true</skipTests>
-            </properties>
-        </profile>
-    </profiles>
-</project>
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 7f092b05aa..54339ea2dd 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -110,7 +110,7 @@
         <module>hazelcast</module>
         <module>headersmap</module>
         <module>hl7</module>
-        <module>http</module>
+        <module>http-grouped</module>
         <module>infinispan</module>
         <module>infinispan-common</module>
         <module>infinispan-quarkus-client</module>
diff --git a/poms/bom-test/pom.xml b/poms/bom-test/pom.xml
index f9756117c3..329c4b1f82 100644
--- a/poms/bom-test/pom.xml
+++ b/poms/bom-test/pom.xml
@@ -219,12 +219,12 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-integration-test-http-common</artifactId>
+                <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-integration-test-http-common</artifactId>
+                <artifactId>camel-quarkus-integration-tests-http-common</artifactId>
                 <version>${camel-quarkus.version}</version>
                 <type>test-jar</type>
             </dependency>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index a59409ad0f..426c338a2c 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -21,7 +21,7 @@ group-01:
   - git
   - google-storage
   - hazelcast
-  - http
+  - http-grouped
   - infinispan
   - infinispan-quarkus-client
   - jcache