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 2021/02/10 20:25:32 UTC
[camel-quarkus] 02/02: Allow running AWS 2 tests both grouped and
isolated
This is an automated email from the ASF dual-hosted git repository.
ppalaga pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 290eadede5f403572a55ac1f2abb22aca3ea2949
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Wed Feb 10 15:48:52 2021 +0100
Allow running AWS 2 tests both grouped and isolated
---
.../aws2-s3/README.adoc | 0
.../aws2-s3/pom.xml | 14 ++-
.../quarkus/component/aws2/Aws2S3Resource.java | 0
.../src/main/resources/application.properties | 0
.../camel/quarkus/component/aws2/Aws2S3IT.java | 0
.../camel/quarkus/component/aws2/Aws2S3Test.java | 0
.../component/aws2/Aws2S3TestEnvCustomizer.java | 0
...quarkus.test.support.aws2.Aws2TestEnvCustomizer | 0
.../aws2-sqs-sns/README.adoc | 0
.../aws2-sqs-sns/pom.xml | 2 +-
.../component/aws2/sqs/it/Aws2SqsSnsResource.java | 2 +-
.../src/main/resources/application.properties | 0
.../component/aws2/sqs/it/Aws2SqsSnsIT.java | 2 +-
.../component/aws2/sqs/it/Aws2SqsSnsTest.java | 2 +-
.../aws2/sqs/it/Aws2SqsSnsTestEnvCustomizer.java | 2 +-
...quarkus.test.support.aws2.Aws2TestEnvCustomizer | 1 +
integration-tests-aws2/pom.xml | 45 +++++++++
integration-tests/aws2-grouped/README.adoc | 19 ++++
.../{aws2-sqs-sns => aws2-grouped}/pom.xml | 112 +++++++++++++++++++--
...quarkus.test.support.aws2.Aws2TestEnvCustomizer | 1 -
integration-tests/pom.xml | 3 +-
pom.xml | 8 +-
tooling/scripts/group-tests.groovy | 50 +++++++++
tooling/scripts/test-categories.yaml | 3 +-
24 files changed, 242 insertions(+), 24 deletions(-)
diff --git a/integration-tests/aws2-s3/README.adoc b/integration-tests-aws2/aws2-s3/README.adoc
similarity index 100%
rename from integration-tests/aws2-s3/README.adoc
rename to integration-tests-aws2/aws2-s3/README.adoc
diff --git a/integration-tests/aws2-s3/pom.xml b/integration-tests-aws2/aws2-s3/pom.xml
similarity index 91%
rename from integration-tests/aws2-s3/pom.xml
rename to integration-tests-aws2/aws2-s3/pom.xml
index 3430b7c..f7e0b71 100644
--- a/integration-tests/aws2-s3/pom.xml
+++ b/integration-tests-aws2/aws2-s3/pom.xml
@@ -20,7 +20,7 @@
<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">
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-integration-tests</artifactId>
+ <artifactId>camel-quarkus-integration-tests-aws2</artifactId>
<version>1.7.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -29,6 +29,18 @@
<name>Camel Quarkus :: Integration Tests :: AWS2 S3</name>
<description>The camel integration tests</description>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-bom-test</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/Aws2S3Resource.java b/integration-tests-aws2/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/Aws2S3Resource.java
similarity index 100%
rename from integration-tests/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/Aws2S3Resource.java
rename to integration-tests-aws2/aws2-s3/src/main/java/org/apache/camel/quarkus/component/aws2/Aws2S3Resource.java
diff --git a/integration-tests/aws2-s3/src/main/resources/application.properties b/integration-tests-aws2/aws2-s3/src/main/resources/application.properties
similarity index 100%
rename from integration-tests/aws2-s3/src/main/resources/application.properties
rename to integration-tests-aws2/aws2-s3/src/main/resources/application.properties
diff --git a/integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3IT.java b/integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3IT.java
similarity index 100%
rename from integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3IT.java
rename to integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3IT.java
diff --git a/integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3Test.java b/integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3Test.java
similarity index 100%
rename from integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3Test.java
rename to integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3Test.java
diff --git a/integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3TestEnvCustomizer.java b/integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3TestEnvCustomizer.java
similarity index 100%
rename from integration-tests/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3TestEnvCustomizer.java
rename to integration-tests-aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/Aws2S3TestEnvCustomizer.java
diff --git a/integration-tests/aws2-s3/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer b/integration-tests-aws2/aws2-s3/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
similarity index 100%
rename from integration-tests/aws2-s3/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
rename to integration-tests-aws2/aws2-s3/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
diff --git a/integration-tests/aws2-sqs-sns/README.adoc b/integration-tests-aws2/aws2-sqs-sns/README.adoc
similarity index 100%
rename from integration-tests/aws2-sqs-sns/README.adoc
rename to integration-tests-aws2/aws2-sqs-sns/README.adoc
diff --git a/integration-tests/aws2-sqs-sns/pom.xml b/integration-tests-aws2/aws2-sqs-sns/pom.xml
similarity index 98%
copy from integration-tests/aws2-sqs-sns/pom.xml
copy to integration-tests-aws2/aws2-sqs-sns/pom.xml
index 962ea6f..a83ec15 100644
--- a/integration-tests/aws2-sqs-sns/pom.xml
+++ b/integration-tests-aws2/aws2-sqs-sns/pom.xml
@@ -23,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-integration-tests</artifactId>
+ <artifactId>camel-quarkus-integration-tests-aws2</artifactId>
<version>1.7.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/integration-tests/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java b/integration-tests-aws2/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsResource.java
similarity index 99%
rename from integration-tests/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java
rename to integration-tests-aws2/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsResource.java
index cfc1325..228740b 100644
--- a/integration-tests/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java
+++ b/integration-tests-aws2/aws2-sqs-sns/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsResource.java
@@ -37,7 +37,7 @@ import software.amazon.awssdk.services.sqs.model.ListQueuesResponse;
@Path("/aws2-sqs-sns")
@ApplicationScoped
-public class Aws2SqsResource {
+public class Aws2SqsSnsResource {
@ConfigProperty(name = "aws-sqs.queue-name")
String queueName;
diff --git a/integration-tests/aws2-sqs-sns/src/main/resources/application.properties b/integration-tests-aws2/aws2-sqs-sns/src/main/resources/application.properties
similarity index 100%
rename from integration-tests/aws2-sqs-sns/src/main/resources/application.properties
rename to integration-tests-aws2/aws2-sqs-sns/src/main/resources/application.properties
diff --git a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsIT.java
similarity index 96%
rename from integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java
rename to integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsIT.java
index 4212303..efe8d68 100644
--- a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java
+++ b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsIT.java
@@ -21,6 +21,6 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@NativeImageTest
@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY", matches = "[a-zA-Z0-9]+") // TODO https://github.com/apache/camel-quarkus/issues/2216
-class Aws2SqsIT extends Aws2SqsTest {
+class Aws2SqsSnsIT extends Aws2SqsSnsTest {
}
diff --git a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTest.java
similarity index 99%
rename from integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java
rename to integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTest.java
index ddc912d..d55b8d5 100644
--- a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java
+++ b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTest.java
@@ -39,7 +39,7 @@ import static org.hamcrest.core.Is.is;
@QuarkusTestResource(Aws2TestResource.class)
@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY", matches = "[a-zA-Z0-9]+") // TODO
// https://github.com/apache/camel-quarkus/issues/2216
-class Aws2SqsTest {
+class Aws2SqsSnsTest {
@Test
public void sqs() {
diff --git a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTestEnvCustomizer.java b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTestEnvCustomizer.java
similarity index 98%
rename from integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTestEnvCustomizer.java
rename to integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTestEnvCustomizer.java
index b4231b1..fb9d980 100644
--- a/integration-tests/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTestEnvCustomizer.java
+++ b/integration-tests-aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsSnsTestEnvCustomizer.java
@@ -36,7 +36,7 @@ import software.amazon.awssdk.services.sqs.model.GetQueueAttributesRequest;
import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
import software.amazon.awssdk.services.sqs.model.SetQueueAttributesRequest;
-public class Aws2SqsTestEnvCustomizer implements Aws2TestEnvCustomizer {
+public class Aws2SqsSnsTestEnvCustomizer implements Aws2TestEnvCustomizer {
@Override
public Service[] localstackServices() {
diff --git a/integration-tests-aws2/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer b/integration-tests-aws2/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
new file mode 100644
index 0000000..d1971b8
--- /dev/null
+++ b/integration-tests-aws2/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
@@ -0,0 +1 @@
+org.apache.camel.quarkus.component.aws2.sqs.it.Aws2SqsSnsTestEnvCustomizer
\ No newline at end of file
diff --git a/integration-tests-aws2/pom.xml b/integration-tests-aws2/pom.xml
new file mode 100644
index 0000000..0448a1c
--- /dev/null
+++ b/integration-tests-aws2/pom.xml
@@ -0,0 +1,45 @@
+<?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>1.7.0-SNAPSHOT</version>
+ <relativePath>../poms/build-parent-it/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-integration-tests-aws2</artifactId>
+ <packaging>pom</packaging>
+
+ <name>Camel Quarkus :: AWS 2 Integration Tests</name>
+
+ <properties>
+ <quarkus.banner.enabled>false</quarkus.banner.enabled>
+ </properties>
+
+ <modules>
+ <!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat -->
+ <module>aws2-s3</module>
+ <module>aws2-sqs-sns</module>
+ </modules>
+
+</project>
diff --git a/integration-tests/aws2-grouped/README.adoc b/integration-tests/aws2-grouped/README.adoc
new file mode 100644
index 0000000..6c00519
--- /dev/null
+++ b/integration-tests/aws2-grouped/README.adoc
@@ -0,0 +1,19 @@
+== AWS 2 grouped integration tests
+
+This module allows executing all tests from `integration-tests-aws2/*` grouped together.
+
+While grouping brings the benefit of faster native compilation
+(compared to the sum of compilation times of all modules under `integration-tests-aws2/*`)
+it is methodologically not as clean as running those tests in isolation.
+Hence, this module is intended to be run instead of the tests under `integration-tests-aws2/*`
+if, in the given situation, the speed matters more than isolation.
+
+=== How the grouping works
+
+The grouped module dynamically pulls all sources from the individual AWS test modules to its
+`target/[test-]classes` directories.
+`application.properties` files and service descriptors are concatenated using a Groovy script.
+
+=== Mock backend vs. real service
+
+Please refer to the README files in `integration-tests-aws2` for more details.
diff --git a/integration-tests/aws2-sqs-sns/pom.xml b/integration-tests/aws2-grouped/pom.xml
similarity index 51%
rename from integration-tests/aws2-sqs-sns/pom.xml
rename to integration-tests/aws2-grouped/pom.xml
index 962ea6f..c97c364 100644
--- a/integration-tests/aws2-sqs-sns/pom.xml
+++ b/integration-tests/aws2-grouped/pom.xml
@@ -17,20 +17,17 @@
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>
+<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">
<parent>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-integration-tests</artifactId>
<version>1.7.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
</parent>
+ <modelVersion>4.0.0</modelVersion>
- <artifactId>camel-quarkus-integration-test-aws2-sqs-sns</artifactId>
- <name>Camel Quarkus :: Integration Tests :: AWS 2 SQS and SNS</name>
- <description>Integration tests for SQS and SNS extensions</description>
+ <artifactId>camel-quarkus-integration-test-aws2-grouped</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: AWS2 Grouped</name>
+ <description>AWS 2 tests from ../integration-tests-aws2 merged together</description>
<dependencyManagement>
<dependencies>
@@ -47,7 +44,7 @@
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-main</artifactId>
+ <artifactId>camel-quarkus-aws2-s3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
@@ -57,6 +54,7 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-sqs</artifactId>
</dependency>
+
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
@@ -65,6 +63,10 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jackson</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-main</artifactId>
+ </dependency>
<!-- test dependencies -->
<dependency>
@@ -91,6 +93,19 @@
<!-- 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-aws2-s3-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-aws2-sns-deployment</artifactId>
<version>${project.version}</version>
<type>pom</type>
@@ -102,8 +117,6 @@
</exclusion>
</exclusions>
</dependency>
-
- <!-- 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-aws2-sqs-deployment</artifactId>
@@ -130,8 +143,85 @@
</exclusion>
</exclusions>
</dependency>
+
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-sources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ <goal>add-resource</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-s3/src/main/java</source>
+ <source>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-sqs-sns/src/main/java</source>
+ </sources>
+ <resources>
+ <resource>
+ <directory>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-s3/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-sqs-sns/src/main/resources</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>add-test-sources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ <goal>add-test-resource</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-s3/src/test/java</source>
+ <source>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-sqs-sns/src/test/java</source>
+ </sources>
+ <resources>
+ <resource>
+ <directory>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-s3/src/test/resources</directory>
+ </resource>
+ <resource>
+ <directory>${maven.multiModuleProjectDirectory}/integration-tests-aws2/aws2-sqs-sns/src/test/resources</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>group-sources</id>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <phase>generate-sources</phase>
+ <configuration>
+ <source>file:///${maven.multiModuleProjectDirectory}/tooling/scripts/group-tests.groovy</source>
+ <properties>
+ <group-tests.source.dir>${maven.multiModuleProjectDirectory}/integration-tests-aws2</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,src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer</group-tests.concat.rel.paths>
+ </properties>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
<profiles>
<profile>
<id>native</id>
diff --git a/integration-tests/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer b/integration-tests/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
deleted file mode 100644
index 544add9..0000000
--- a/integration-tests/aws2-sqs-sns/src/test/resources/META-INF/services/org.apache.camel.quarkus.test.support.aws2.Aws2TestEnvCustomizer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.camel.quarkus.component.aws2.sqs.it.Aws2SqsTestEnvCustomizer
\ No newline at end of file
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index a936147..b2455af 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -68,8 +68,7 @@
<module>avro-rpc</module>
<module>aws</module>
<module>aws2</module>
- <module>aws2-s3</module>
- <module>aws2-sqs-sns</module>
+ <module>aws2-grouped</module>
<module>azure</module>
<module>azure-eventhubs</module>
<module>azure-storage-blob</module>
diff --git a/pom.xml b/pom.xml
index 18d7f03..7148774 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,6 +201,7 @@
<module>catalog</module>
<module>integration-tests-support</module>
<module>integration-tests</module>
+ <module>integration-tests-aws2</module>
<module>docs</module>
</modules>
@@ -783,6 +784,7 @@
<sortModulesPath>extensions/pom.xml</sortModulesPath>
<sortModulesPath>extensions-jvm/pom.xml</sortModulesPath>
<sortModulesPath>integration-tests/pom.xml</sortModulesPath>
+ <sortModulesPath>integration-tests-aws2/pom.xml</sortModulesPath>
</sortModulesPaths>
<sortDependencyManagementPaths>
<sortDependencyManagementPath>poms/bom/pom.xml</sortDependencyManagementPath>
@@ -793,6 +795,7 @@
<includes>
<include>extensions-jvm/*/integration-test/pom.xml</include>
<include>integration-tests/*/pom.xml</include>
+ <include>integration-tests-aws2/*/pom.xml</include>
</includes>
</updateVirtualDependency>
</updateVirtualDependencies>
@@ -827,9 +830,10 @@
</extensionDir>
</extensionDirs>
<removeEmptyApplicationProperties>
- <directory>${basedir}/integration-tests</directory>
+ <directory>${basedir}</directory>
<includes>
- <include>*/src/main/resources/application.properties</include>
+ <include>integration-tests/*/src/main/resources/application.properties</include>
+ <include>integration-tests-aws2/*/src/main/resources/application.properties</include>
</includes>
</removeEmptyApplicationProperties>
</configuration>
diff --git a/tooling/scripts/group-tests.groovy b/tooling/scripts/group-tests.groovy
new file mode 100644
index 0000000..5b71408
--- /dev/null
+++ b/tooling/scripts/group-tests.groovy
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+/**
+ * Group tests in a directory to a single Maven module
+ */
+import java.nio.file.Path
+import java.nio.file.Paths
+import java.nio.file.Files
+import java.util.stream.Stream
+import java.util.stream.Collectors
+import java.util.regex.Pattern
+import java.util.regex.Matcher
+
+
+final Path sourceDir = Paths.get(properties['group-tests.source.dir'])
+final String[] concatRelPaths = properties['group-tests.concat.rel.paths'].split('[\\s,]+')
+final Path destinationModuleDir = Paths.get(properties['group-tests.dest.module.dir'])
+
+final Map<String, StringBuilder> mergedFiles = new HashMap<>()
+concatRelPaths.each {relPath -> mergedFiles.put(relPath, new StringBuilder())}
+
+Files.list(sourceDir)
+ .filter {p -> Files.exists(p.resolve('pom.xml'))}
+ .sorted()
+ .forEach {p ->
+ mergedFiles.each { relPath, sb -> sb.append(p.resolve(relPath).getText('UTF-8') + '\n') }
+ }
+
+mergedFiles.each { relPath, sb ->
+ String destRelPath = relPath.replace('src/main/resources/', 'target/classes/').replace('src/test/resources/', 'target/test-classes/')
+ Path destPath = destinationModuleDir.resolve(destRelPath)
+ Files.createDirectories(destPath.getParent())
+ Files.write(destPath, sb.toString().getBytes('UTF-8'))
+}
+
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 26dcb9a..e11f229 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -166,8 +166,7 @@ platform:
- rest
- rest-openapi
- csimple
- - aws2-s3
- - aws2-sqs-sns
+ - aws2-grouped
saas:
- box
- github