You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/11/20 06:19:50 UTC
[skywalking-java] branch main updated: Compatible with 3.x and 4.x RabbitMQ Client (#389)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-java.git
The following commit(s) were added to refs/heads/main by this push:
new d541b7bc63 Compatible with 3.x and 4.x RabbitMQ Client (#389)
d541b7bc63 is described below
commit d541b7bc633ddf5bc213a306eac852302b7d36ad
Author: Stephen Ni <ni...@users.noreply.github.com>
AuthorDate: Sun Nov 20 14:19:45 2022 +0800
Compatible with 3.x and 4.x RabbitMQ Client (#389)
---
CHANGES.md | 1 +
apm-sniffer/apm-sdk-plugin/pom.xml | 2 +-
.../{rabbitmq-5.x-plugin => rabbitmq-plugin}/pom.xml | 4 ++--
.../rabbitmq/ChannelNConstructorInterceptor.java | 0
.../plugin/rabbitmq/RabbitMQConsumerInterceptor.java | 0
.../plugin/rabbitmq/RabbitMQProducerInterceptor.java | 0
.../apm/plugin/rabbitmq/TracerConsumer.java | 0
.../rabbitmq/define/ChannelNInstrumentation.java | 2 +-
.../src/main/resources/skywalking-plugin.def | 2 +-
.../rabbitmq/ChannelNConstructorInterceptorTest.java | 0
.../rabbitmq/RabbitMQConsumerInterceptorTest.java | 0
.../rabbitmq/RabbitMQProducerInterceptorTest.java | 0
.../en/setup/service-agent/java-agent/Plugin-list.md | 2 +-
.../setup/service-agent/java-agent/Supported-list.md | 2 +-
.../testcase/rabbitmq/controller/CaseController.java | 20 +++++++++++++-------
.../scenarios/rabbitmq-scenario/support-version.list | 10 +++++-----
16 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index eefe475bcb..f9dcab4ab5 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -11,6 +11,7 @@ Release Notes.
* Support collecting dubbo thread pool metrics
* Bump up byte-buddy to 1.12.19
* Upgrade agent test tools
+* [Breaking Change] Compatible with 3.x and 4.x RabbitMQ Client, rename `rabbitmq-5.x-plugin` to `rabbitmq-plugin`
#### Documentation
diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml
index e124d77fdb..9105865094 100644
--- a/apm-sniffer/apm-sdk-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/pom.xml
@@ -70,7 +70,7 @@
<module>elasticsearch-6.x-plugin</module>
<module>elasticsearch-7.x-plugin</module>
<module>undertow-plugins</module>
- <module>rabbitmq-5.x-plugin</module>
+ <module>rabbitmq-plugin</module>
<module>dubbo-conflict-patch</module>
<module>canal-1.x-plugin</module>
<module>dubbo-2.7.x-plugin</module>
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml
similarity index 95%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml
index b86547d6d3..ff1143aecd 100644
--- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml
@@ -25,8 +25,8 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>apm-rabbitmq-5.x-plugin</artifactId>
- <name>rabbitmq-5.x-plugin</name>
+ <artifactId>apm-rabbitmq-plugin</artifactId>
+ <name>rabbitmq-plugin</name>
<packaging>jar</packaging>
<properties>
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java
similarity index 97%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java
index 5beceafbd4..86737aa6fb 100644
--- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java
+++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java
@@ -45,7 +45,7 @@ public class ChannelNInstrumentation extends ClassInstanceMethodsEnhancePluginDe
new ConstructorInterceptPoint() {
@Override
public ElementMatcher<MethodDescription> getConstructorMatcher() {
- return takesArgumentWithType(3, "com.rabbitmq.client.MetricsCollector");
+ return takesArgumentWithType(0, "com.rabbitmq.client.impl.AMQConnection");
}
@Override
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def
similarity index 90%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def
index c4987531b7..e48affc8f9 100644
--- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def
+++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-rabbitmq-5.x=org.apache.skywalking.apm.plugin.rabbitmq.define.ChannelNInstrumentation
\ No newline at end of file
+rabbitmq=org.apache.skywalking.apm.plugin.rabbitmq.define.ChannelNInstrumentation
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java
similarity index 100%
rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java
rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java
diff --git a/docs/en/setup/service-agent/java-agent/Plugin-list.md b/docs/en/setup/service-agent/java-agent/Plugin-list.md
index 706f040ce8..748cd380cc 100644
--- a/docs/en/setup/service-agent/java-agent/Plugin-list.md
+++ b/docs/en/setup/service-agent/java-agent/Plugin-list.md
@@ -75,7 +75,7 @@
- pulsar-2.2-2.7
- quasar
- quartz-scheduler-2.x
-- rabbitmq-5.x
+- rabbitmq
- redisson-3.x
- resteasy-server-3.x
- resteasy-server-4.x
diff --git a/docs/en/setup/service-agent/java-agent/Supported-list.md b/docs/en/setup/service-agent/java-agent/Supported-list.md
index 0d43e9424e..1d616863ae 100644
--- a/docs/en/setup/service-agent/java-agent/Supported-list.md
+++ b/docs/en/setup/service-agent/java-agent/Supported-list.md
@@ -69,7 +69,7 @@ metrics based on the tracing data.
* [Kafka](http://kafka.apache.org) 0.11.0.0 -> 2.8.0
* [Spring-Kafka](https://github.com/spring-projects/spring-kafka) Spring Kafka Consumer 1.3.x -> 2.3.x (2.0.x and 2.1.x not tested and not recommended by [the official document](https://spring.io/projects/spring-kafka))
* [ActiveMQ](https://github.com/apache/activemq) 5.10.0 -> 5.15.4
- * [RabbitMQ](https://www.rabbitmq.com/) 5.x
+ * [RabbitMQ](https://www.rabbitmq.com/) 3.x-> 5.x
* [Pulsar](http://pulsar.apache.org) 2.2.x -> 2.9.x
* [NATS](https://github.com/nats-io/nats.java) 2.14.x -> 2.15.x
* Aliyun ONS 1.x (Optional¹)
diff --git a/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java b/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java
index 817c6e400f..12c62288ac 100644
--- a/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java
+++ b/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java
@@ -22,7 +22,10 @@ import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
-import com.rabbitmq.client.DeliverCallback;
+import com.rabbitmq.client.DefaultConsumer;
+import com.rabbitmq.client.Envelope;
+
+import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -78,13 +81,16 @@ public class CaseController {
LOGGER.info("Message has been published-------------->" + MESSAGE);
final CountDownLatch waitForConsume = new CountDownLatch(1);
- DeliverCallback deliverCallback = (consumerTag, delivery) -> {
- String message = new String(delivery.getBody(), StandardCharsets.UTF_8);
- LOGGER.info("Message received-------------->" + message);
- waitForConsume.countDown();
+ DefaultConsumer callback = new DefaultConsumer(channel) {
+ @Override
+ public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
+ String message = new String(body, "UTF-8");
+ LOGGER.info("Message received-------------->" + message);
+ waitForConsume.countDown();
+ }
};
- channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
- });
+
+ channel.basicConsume(QUEUE_NAME, true, callback);
waitForConsume.await(5000L, TimeUnit.MILLISECONDS);
LOGGER.info("Message Consumed-------------->");
diff --git a/test/plugin/scenarios/rabbitmq-scenario/support-version.list b/test/plugin/scenarios/rabbitmq-scenario/support-version.list
index 0c77c7a519..a42c4d4e14 100644
--- a/test/plugin/scenarios/rabbitmq-scenario/support-version.list
+++ b/test/plugin/scenarios/rabbitmq-scenario/support-version.list
@@ -14,9 +14,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-5.5.1
-5.4.3
-5.3.0
-5.2.0
-5.1.2
+5.16.0
5.0.0
+4.12.0
+4.0.0
+3.6.6
+3.0.0