diff --git a/apm-agent-builds/pom.xml b/apm-agent-builds/pom.xml
index 5556d85052..47526e1a20 100644
--- a/apm-agent-builds/pom.xml
+++ b/apm-agent-builds/pom.xml
@@ -314,7 +314,7 @@
${project.groupId}
- apm-rabbitmq-spring
+ apm-rabbitmq-spring5
${project.version}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/pom.xml b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/pom.xml
similarity index 65%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/pom.xml
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/pom.xml
index 2a58e4fcd1..ff0403e48a 100644
--- a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/pom.xml
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/pom.xml
@@ -1,5 +1,6 @@
-
+
4.0.0
@@ -8,14 +9,26 @@
1.52.2-SNAPSHOT
- apm-rabbitmq-spring
+ apm-rabbitmq-spring5
${project.groupId}:${project.artifactId}
- 2.7.13
${project.basedir}/../../..
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ 2.7.11
+ pom
+ import
+
+
+
+
co.elastic.apm
@@ -25,14 +38,7 @@
org.springframework.boot
spring-boot-starter-amqp
- ${version.spring-boot}
provided
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
@@ -62,26 +68,28 @@
org.springframework.boot
spring-boot-starter-web
- ${version.spring-boot}
test
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
org.springframework.boot
spring-boot-starter-test
- ${version.spring-boot}
test
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
+
+
+
+
+
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
+
+
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/AmqpConstants.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/AmqpConstants.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/AmqpConstants.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/AmqpConstants.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchHelper.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchHelper.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchHelper.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchHelper.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchIteratorWrapper.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchIteratorWrapper.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchIteratorWrapper.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchIteratorWrapper.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchListWrapper.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchListWrapper.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchListWrapper.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageBatchListWrapper.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageListenerHelper.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageListenerHelper.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/MessageListenerHelper.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/MessageListenerHelper.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SetMessageListenerInstrumentation.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SetMessageListenerInstrumentation.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SetMessageListenerInstrumentation.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SetMessageListenerInstrumentation.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchMessageListenerInstrumentation.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchMessageListenerInstrumentation.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchMessageListenerInstrumentation.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchMessageListenerInstrumentation.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpMessageListenerInstrumentation.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpMessageListenerInstrumentation.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpMessageListenerInstrumentation.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpMessageListenerInstrumentation.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionHelper.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionHelper.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionHelper.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionHelper.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionNameUtil.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionNameUtil.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionNameUtil.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringAmqpTransactionNameUtil.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringBaseInstrumentation.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringBaseInstrumentation.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/SpringBaseInstrumentation.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/SpringBaseInstrumentation.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/header/SpringRabbitMQTextHeaderGetter.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/header/SpringRabbitMQTextHeaderGetter.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/header/SpringRabbitMQTextHeaderGetter.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/header/SpringRabbitMQTextHeaderGetter.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/header/package-info.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/header/package-info.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/header/package-info.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/header/package-info.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/package-info.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/package-info.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/java/co/elastic/apm/agent/rabbitmq/package-info.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/java/co/elastic/apm/agent/rabbitmq/package-info.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/resources/META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/resources/META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/main/resources/META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/main/resources/META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java
similarity index 70%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java
index 66e68627b0..f303209c44 100644
--- a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractAsyncRabbitMqTest.java
@@ -18,18 +18,19 @@
*/
package co.elastic.apm.agent.rabbitmq;
-import org.junit.Test;
import co.elastic.apm.agent.sdk.logging.Logger;
import co.elastic.apm.agent.sdk.logging.LoggerFactory;
+import org.junit.Test;
import org.springframework.amqp.rabbit.AsyncRabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.util.concurrent.ListenableFuture;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import static co.elastic.apm.agent.rabbitmq.TestConstants.ROUTING_KEY;
import static co.elastic.apm.agent.rabbitmq.TestConstants.TOPIC_EXCHANGE_NAME;
public abstract class AbstractAsyncRabbitMqTest extends RabbitMqTestBase {
@@ -45,7 +46,7 @@ public abstract class AbstractAsyncRabbitMqTest extends RabbitMqTestBase {
@Test
public void verifyThatTransactionWithSpanCreated() throws TimeoutException {
logger.info("Trying to send to async rabbit template");
- ListenableFuture future = asyncRabbitTemplate.convertSendAndReceive(TOPIC_EXCHANGE_NAME, TestConstants.ROUTING_KEY, MESSAGE);
+ Future future = invokeConvertAndSend(TOPIC_EXCHANGE_NAME, ROUTING_KEY, MESSAGE);
try {
String response = future.get(5, TimeUnit.SECONDS);
logger.info("Got response = {}", response);
@@ -55,4 +56,19 @@ public void verifyThatTransactionWithSpanCreated() throws TimeoutException {
reporter.awaitTransactionCount(2);
}
+
+ /**
+ * {@link AsyncRabbitTemplate#convertSendAndReceive(String, String, Object)} changed it's return type
+ * in Spring 6, so we use reflection to invoke it safely for both spring 5 and 6.
+ */
+ @SuppressWarnings("unchecked")
+ private Future invokeConvertAndSend(String topic, String routingKey, Object message) {
+ try {
+ return (Future) asyncRabbitTemplate.getClass()
+ .getMethod("convertSendAndReceive", String.class, String.class, Object.class)
+ .invoke(asyncRabbitTemplate, topic, routingKey, message);
+ } catch (Exception e) {
+ throw new IllegalStateException(e);
+ }
+ }
}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractRabbitMqTest.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractRabbitMqTest.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractRabbitMqTest.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AbstractRabbitMqTest.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AsyncRabbitListenerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AsyncRabbitListenerIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/AsyncRabbitListenerIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/AsyncRabbitListenerIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/DirectMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/DirectMessageListenerContainerIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/DirectMessageListenerContainerIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/DirectMessageListenerContainerIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/FanoutIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/FanoutIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/FanoutIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/FanoutIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/LambdaSimpleMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/LambdaSimpleMessageListenerContainerIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/LambdaSimpleMessageListenerContainerIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/LambdaSimpleMessageListenerContainerIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitListenerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitListenerIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitListenerIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitListenerIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitMqTestBase.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitMqTestBase.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitMqTestBase.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/RabbitMqTestBase.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/SimpleMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/SimpleMessageListenerContainerIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/SimpleMessageListenerContainerIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/SimpleMessageListenerContainerIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchIT.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchIT.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/SpringAmqpBatchIT.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/TestConstants.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/TestConstants.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/TestConstants.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/TestConstants.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/components/batch/BatchListenerComponent.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/components/batch/BatchListenerComponent.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/components/batch/BatchListenerComponent.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/components/batch/BatchListenerComponent.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/BaseConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/BaseConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/BaseConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/BaseConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/BatchConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/BatchConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/BatchConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/BatchConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/CommonRabbitListenerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/CommonRabbitListenerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/CommonRabbitListenerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/CommonRabbitListenerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/DefaultBindingSpringConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/DefaultBindingSpringConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/DefaultBindingSpringConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/DefaultBindingSpringConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/DirectMessageListenerContainerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/DirectMessageListenerContainerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/DirectMessageListenerContainerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/DirectMessageListenerContainerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/FanoutConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/FanoutConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/FanoutConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/FanoutConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaMessageListenerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaMessageListenerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaMessageListenerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaMessageListenerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaSimpleMessageListenerContainerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaSimpleMessageListenerContainerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaSimpleMessageListenerContainerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/LambdaSimpleMessageListenerContainerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/MessageListenerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/MessageListenerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/MessageListenerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/MessageListenerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/RabbitListenerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/RabbitListenerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/RabbitListenerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/RabbitListenerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/ReplyRabbitListenerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/ReplyRabbitListenerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/ReplyRabbitListenerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/ReplyRabbitListenerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/SimpleMessageListenerContainerConfiguration.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/SimpleMessageListenerContainerConfiguration.java
similarity index 100%
rename from apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring/src/test/java/co/elastic/apm/agent/rabbitmq/config/SimpleMessageListenerContainerConfiguration.java
rename to apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-spring5/src/test/java/co/elastic/apm/agent/rabbitmq/config/SimpleMessageListenerContainerConfiguration.java
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/pom.xml b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/pom.xml
new file mode 100644
index 0000000000..81fbc20d23
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/pom.xml
@@ -0,0 +1,93 @@
+
+
+ 4.0.0
+
+
+ apm-rabbitmq
+ co.elastic.apm
+ 1.52.2-SNAPSHOT
+
+
+ apm-rabbitmq-test-spring6
+ ${project.groupId}:${project.artifactId}
+
+
+ true
+ ${project.basedir}/../../..
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ 3.4.1
+ pom
+ import
+
+
+
+
+
+
+ co.elastic.apm
+ apm-rabbitmq-plugin
+ ${project.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+ provided
+
+
+
+ co.elastic.apm
+ apm-rabbitmq-plugin
+ ${project.version}
+ test-jar
+ test
+
+
+ co.elastic.apm
+ apm-rabbitmq-spring5
+ ${project.version}
+ test-jar
+ test
+
+
+ co.elastic.apm
+ apm-rabbitmq-spring5
+ ${project.version}
+ test
+
+
+ co.elastic.apm
+ apm-agent-api
+ ${project.version}
+ test
+
+
+ co.elastic.apm
+ apm-api-plugin
+ ${project.version}
+ test
+
+
+ org.testcontainers
+ rabbitmq
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6AsyncRabbitListenerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6AsyncRabbitListenerIT.java
new file mode 100644
index 0000000000..f4810036ba
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6AsyncRabbitListenerIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6AsyncRabbitListenerIT extends AsyncRabbitListenerIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6DirectMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6DirectMessageListenerContainerIT.java
new file mode 100644
index 0000000000..04a28c35f7
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6DirectMessageListenerContainerIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6DirectMessageListenerContainerIT extends DirectMessageListenerContainerIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6FanoutIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6FanoutIT.java
new file mode 100644
index 0000000000..8d39ce15cd
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6FanoutIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6FanoutIT extends FanoutIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6LambdaSimpleMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6LambdaSimpleMessageListenerContainerIT.java
new file mode 100644
index 0000000000..c9326164c5
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6LambdaSimpleMessageListenerContainerIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6LambdaSimpleMessageListenerContainerIT extends LambdaSimpleMessageListenerContainerIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6RabbitListenerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6RabbitListenerIT.java
new file mode 100644
index 0000000000..c3e3146779
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6RabbitListenerIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6RabbitListenerIT extends RabbitListenerIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6SimpleMessageListenerContainerIT.java b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6SimpleMessageListenerContainerIT.java
new file mode 100644
index 0000000000..46714a530e
--- /dev/null
+++ b/apm-agent-plugins/apm-rabbitmq/apm-rabbitmq-test-spring6/src/test/java/co/elastic/apm/agent/rabbitmq/Spring6SimpleMessageListenerContainerIT.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package co.elastic.apm.agent.rabbitmq;
+
+public class Spring6SimpleMessageListenerContainerIT extends SimpleMessageListenerContainerIT {
+
+}
diff --git a/apm-agent-plugins/apm-rabbitmq/pom.xml b/apm-agent-plugins/apm-rabbitmq/pom.xml
index 169f74ed00..f937503271 100644
--- a/apm-agent-plugins/apm-rabbitmq/pom.xml
+++ b/apm-agent-plugins/apm-rabbitmq/pom.xml
@@ -21,7 +21,8 @@
apm-rabbitmq-plugin
apm-rabbitmq-test-3
apm-rabbitmq-test-4
- apm-rabbitmq-spring
+ apm-rabbitmq-spring5
+ apm-rabbitmq-test-spring6