You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/12/18 04:30:06 UTC

[skywalking] branch master updated: Update submodule to sync namespaced proto files (#6026)

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

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 6feeaf6  Update submodule to sync namespaced proto files (#6026)
6feeaf6 is described below

commit 6feeaf6e5f95d75b09a1533aa34123ca7ea1f309
Author: Zhenxu Ke <ke...@apache.org>
AuthorDate: Fri Dec 18 12:29:44 2020 +0800

    Update submodule to sync namespaced proto files (#6026)
    
    * update submodule to sync namespaced proto files
    
    * add compat E2E test and update mock collector
    
    * add changelog, fix GHA syntax, compat Java agent
    
    * highlight notes, use archive dist, revert compat in agent
    
    * polish changelog, add missing `-javaagent` in provider
    
    * fix wrong position of JAVA_OPTS
    
    * polish changelog
---
 .github/workflows/e2e.compat.yaml                  | 62 ++++++++++++++++++++++
 CHANGES.md                                         |  3 +-
 apm-protocol/apm-network/src/main/proto            |  2 +-
 .../browser/provider/BrowserModuleProvider.java    |  8 +--
 .../grpc/BrowserPerfServiceHandlerCompat.java      | 41 ++++++++++++++
 .../receiver/clr/provider/CLRModuleProvider.java   |  5 +-
 .../CLRMetricReportServiceHandlerCompat.java       | 36 +++++++++++++
 .../receiver/jvm/provider/JVMModuleProvider.java   |  5 +-
 .../JVMMetricReportServiceHandlerCompat.java       | 36 +++++++++++++
 .../register/provider/RegisterModuleProvider.java  |  5 +-
 .../v8/grpc/ManagementServiceHandlerCompat.java    | 42 +++++++++++++++
 .../receiver/mesh/MeshGRPCHandlerCompat.java       | 35 ++++++++++++
 .../server/receiver/mesh/MeshReceiverProvider.java |  4 +-
 .../meter/provider/MeterReceiverProvider.java      |  5 +-
 .../handler/MeterServiceHandlerCompat.java         | 36 +++++++++++++
 .../profile/provider/ProfileModuleProvider.java    |  5 +-
 .../handler/ProfileTaskServiceHandlerCompat.java   | 48 +++++++++++++++++
 .../trace/provider/TraceModuleProvider.java        |  5 +-
 .../TraceSegmentReportServiceHandlerCompat.java    | 42 +++++++++++++++
 .../docker/simple/compat/docker-compose.yml        | 62 ++++++++++++++++++++++
 test/plugin/agent-test-tools/bin/fetch-code.sh     |  6 +--
 test/plugin/agent-test-tools/pom.xml               |  4 +-
 22 files changed, 480 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/e2e.compat.yaml b/.github/workflows/e2e.compat.yaml
new file mode 100644
index 0000000..8ec01d1
--- /dev/null
+++ b/.github/workflows/e2e.compat.yaml
@@ -0,0 +1,62 @@
+# 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.
+
+name: E2E
+
+on:
+  pull_request:
+  push:
+    branches:
+      - master
+
+env:
+  SKIP_TEST: true
+
+jobs:
+  Compatability:
+    name: Compatability
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    env:
+      SW_SIMPLE_CASE: compat
+      SW_AGENT_JDK_VERSION: 11
+      SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk11:alpine
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache local Maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 11
+      - name: Build Docker Image
+        run: make docker
+      - name: Copy dist package
+        run: cp -R dist test/e2e/
+      - name: Compatability Test (8.3.0 Agent)
+        run: ./mvnw --batch-mode -f test/e2e/pom.xml -am -DfailIfNoTests=false verify -Dit.test=org.apache.skywalking.e2e.simple.SimpleE2E
+      - uses: actions/upload-artifact@v1
+        if: failure()
+        with:
+          name: logs
+          path: logs
diff --git a/CHANGES.md b/CHANGES.md
index e03ccab..d18d020 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,6 +7,7 @@ Release Notes.
 #### Project
 * Incompatible with previous releases when use H2/MySQL/TiDB storage options, due to support multiple alarm rules triggered for one entity.
 * Chore: adapt `create_source_release.sh` to make it runnable on Linux.
+* Add `package` to `.proto` files, prevent polluting top-level namespace in some languages; The OAP server supports previous agent releases, whereas the previous OAP server (<=8.3.0) won't recognize newer agents since this version (>= 8.4.0).
 
 #### Java Agent
 * The operation name of quartz-scheduler plugin, has been changed as the `quartz-scheduler/${className}` format.
@@ -21,7 +22,7 @@ Release Notes.
 * Support Kafka MirrorMaker 2.0 to replicate topics between Kafka clusters.
 * Add the rule name field to alarm record storage entity as a part of ID, to support multiple alarm rules triggered for one entity. The scope id has been removed from the ID.
 * Fix MAL concurrent execution issues.
-* Fix group name can't be query in the GraphQL.
+* Fix group name can't be queried in the GraphQL.
 * Fix potential gRPC connection leak(not closed) for the channels among OAP instances.
 * Filter OAP instances(unassigned in booting stage) of the empty IP in KubernetesCoordinator.
 * Add component ID for Python aiohttp plugin requester and server.
diff --git a/apm-protocol/apm-network/src/main/proto b/apm-protocol/apm-network/src/main/proto
index 754995b..8c10f75 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 754995b9bd4e64c34e970df3c3011efc9181c2a3
+Subproject commit 8c10f757a9088fef06d6d8b986b8a0650b7fa106
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
index aa13728..f80cb80 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
@@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 import org.apache.skywalking.oap.server.receiver.browser.module.BrowserModule;
+import org.apache.skywalking.oap.server.receiver.browser.provider.handler.grpc.BrowserPerfServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.browser.provider.handler.grpc.BrowserPerfServiceHandler;
 import org.apache.skywalking.oap.server.receiver.browser.provider.handler.rest.BrowserErrorLogReportListServletHandler;
 import org.apache.skywalking.oap.server.receiver.browser.provider.handler.rest.BrowserErrorLogReportSingleServletHandler;
@@ -74,9 +75,10 @@ public class BrowserModuleProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider().getService(GRPCHandlerRegister.class);
         // grpc
-        grpcHandlerRegister.addHandler(
-            new BrowserPerfServiceHandler(
-                getManager(), moduleConfig, perfDataListenerManager(), errorLogListenerManager()));
+        BrowserPerfServiceHandler browserPerfServiceHandler = new BrowserPerfServiceHandler(
+            getManager(), moduleConfig, perfDataListenerManager(), errorLogListenerManager());
+        grpcHandlerRegister.addHandler(browserPerfServiceHandler);
+        grpcHandlerRegister.addHandler(new BrowserPerfServiceHandlerCompat(browserPerfServiceHandler));
 
         // rest
         JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME)
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandlerCompat.java
new file mode 100644
index 0000000..de5819c
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandlerCompat.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.skywalking.oap.server.receiver.browser.provider.handler.grpc;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.agent.v3.BrowserErrorLog;
+import org.apache.skywalking.apm.network.language.agent.v3.BrowserPerfData;
+import org.apache.skywalking.apm.network.language.agent.v3.compat.BrowserPerfServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class BrowserPerfServiceHandlerCompat extends BrowserPerfServiceGrpc.BrowserPerfServiceImplBase implements GRPCHandler {
+    private final BrowserPerfServiceHandler delegate;
+
+    @Override
+    public void collectPerfData(final BrowserPerfData request, final StreamObserver<Commands> responseObserver) {
+        delegate.collectPerfData(request, responseObserver);
+    }
+
+    @Override
+    public StreamObserver<BrowserErrorLog> collectErrorLogs(final StreamObserver<Commands> responseObserver) {
+        return delegate.collectErrorLogs(responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/CLRModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/CLRModuleProvider.java
index 6aeb884..fc47a60 100644
--- a/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/CLRModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/CLRModuleProvider.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 import org.apache.skywalking.oap.server.receiver.clr.module.CLRModule;
+import org.apache.skywalking.oap.server.receiver.clr.provider.handler.CLRMetricReportServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.clr.provider.handler.CLRMetricReportServiceHandler;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 
@@ -66,7 +67,9 @@ public class CLRModuleProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new CLRMetricReportServiceHandler(getManager()));
+        CLRMetricReportServiceHandler clrMetricReportServiceHandler = new CLRMetricReportServiceHandler(getManager());
+        grpcHandlerRegister.addHandler(clrMetricReportServiceHandler);
+        grpcHandlerRegister.addHandler(new CLRMetricReportServiceHandlerCompat(clrMetricReportServiceHandler));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/handler/CLRMetricReportServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/handler/CLRMetricReportServiceHandlerCompat.java
new file mode 100644
index 0000000..9d6b81e
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-clr-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/clr/provider/handler/CLRMetricReportServiceHandlerCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.clr.provider.handler;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.agent.v3.CLRMetricCollection;
+import org.apache.skywalking.apm.network.language.agent.v3.compat.CLRMetricReportServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class CLRMetricReportServiceHandlerCompat extends CLRMetricReportServiceGrpc.CLRMetricReportServiceImplBase implements GRPCHandler {
+    private final CLRMetricReportServiceHandler delegate;
+
+    @Override
+    public void collect(final CLRMetricCollection request, final StreamObserver<Commands> responseObserver) {
+        delegate.collect(request, responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
index f5194dc..202f9e8 100644
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.apache.skywalking.oap.server.receiver.jvm.module.JVMModule;
 import org.apache.skywalking.oap.server.receiver.jvm.provider.handler.JVMMetricReportServiceHandler;
+import org.apache.skywalking.oap.server.receiver.jvm.provider.handler.JVMMetricReportServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 
 public class JVMModuleProvider extends ModuleProvider {
@@ -61,7 +62,9 @@ public class JVMModuleProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new JVMMetricReportServiceHandler(getManager()));
+        JVMMetricReportServiceHandler jvmMetricReportServiceHandler = new JVMMetricReportServiceHandler(getManager());
+        grpcHandlerRegister.addHandler(jvmMetricReportServiceHandler);
+        grpcHandlerRegister.addHandler(new JVMMetricReportServiceHandlerCompat(jvmMetricReportServiceHandler));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandlerCompat.java
new file mode 100644
index 0000000..5044ce9
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandlerCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.agent.v3.JVMMetricCollection;
+import org.apache.skywalking.apm.network.language.agent.v3.compat.JVMMetricReportServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class JVMMetricReportServiceHandlerCompat extends JVMMetricReportServiceGrpc.JVMMetricReportServiceImplBase implements GRPCHandler {
+    private final JVMMetricReportServiceHandler delegate;
+
+    @Override
+    public void collect(final JVMMetricCollection request, final StreamObserver<Commands> responseObserver) {
+        delegate.collect(request, responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
index 5855d2a..c402eae 100644
--- a/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
@@ -26,6 +26,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleDefine;
 import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.receiver.register.module.RegisterModule;
 import org.apache.skywalking.oap.server.receiver.register.provider.handler.v8.grpc.ManagementServiceHandler;
+import org.apache.skywalking.oap.server.receiver.register.provider.handler.v8.grpc.ManagementServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.register.provider.handler.v8.rest.ManagementServiceKeepAliveHandler;
 import org.apache.skywalking.oap.server.receiver.register.provider.handler.v8.rest.ManagementServiceReportPropertiesHandler;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
@@ -56,7 +57,9 @@ public class RegisterModuleProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new ManagementServiceHandler(getManager()));
+        ManagementServiceHandler managementServiceHandler = new ManagementServiceHandler(getManager());
+        grpcHandlerRegister.addHandler(managementServiceHandler);
+        grpcHandlerRegister.addHandler(new ManagementServiceHandlerCompat(managementServiceHandler));
 
         JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                                 .provider()
diff --git a/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v8/grpc/ManagementServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v8/grpc/ManagementServiceHandlerCompat.java
new file mode 100644
index 0000000..2991eaa
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v8/grpc/ManagementServiceHandlerCompat.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.register.provider.handler.v8.grpc;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.management.v3.InstancePingPkg;
+import org.apache.skywalking.apm.network.management.v3.InstanceProperties;
+import org.apache.skywalking.apm.network.management.v3.compat.ManagementServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class ManagementServiceHandlerCompat extends ManagementServiceGrpc.ManagementServiceImplBase implements GRPCHandler {
+    private final ManagementServiceHandler delegate;
+
+    @Override
+    public void reportInstanceProperties(final InstanceProperties request, final StreamObserver<Commands> responseObserver) {
+        delegate.reportInstanceProperties(request, responseObserver);
+    }
+
+    @Override
+    public void keepAlive(final InstancePingPkg request, final StreamObserver<Commands> responseObserver) {
+        delegate.keepAlive(request, responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshGRPCHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshGRPCHandlerCompat.java
new file mode 100644
index 0000000..b6f48b7
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshGRPCHandlerCompat.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.aop.server.receiver.mesh;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.servicemesh.v3.MeshProbeDownstream;
+import org.apache.skywalking.apm.network.servicemesh.v3.ServiceMeshMetric;
+import org.apache.skywalking.apm.network.servicemesh.v3.compat.ServiceMeshMetricServiceGrpc;
+
+@RequiredArgsConstructor
+public class MeshGRPCHandlerCompat extends ServiceMeshMetricServiceGrpc.ServiceMeshMetricServiceImplBase {
+    private final MeshGRPCHandler delegate;
+
+    @Override
+    public StreamObserver<ServiceMeshMetric> collect(final StreamObserver<MeshProbeDownstream> responseObserver) {
+        return delegate.collect(responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshReceiverProvider.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshReceiverProvider.java
index 89e1eeb..9ae66e4 100644
--- a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshReceiverProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/MeshReceiverProvider.java
@@ -68,7 +68,9 @@ public class MeshReceiverProvider extends ModuleProvider {
         GRPCHandlerRegister service = getManager().find(SharingServerModule.NAME)
                                                   .provider()
                                                   .getService(GRPCHandlerRegister.class);
-        service.addHandler(new MeshGRPCHandler(getManager()));
+        MeshGRPCHandler meshGRPCHandler = new MeshGRPCHandler(getManager());
+        service.addHandler(meshGRPCHandler);
+        service.addHandler(new MeshGRPCHandlerCompat(meshGRPCHandler));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/MeterReceiverProvider.java b/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/MeterReceiverProvider.java
index 8ff21b0..730ee1c 100644
--- a/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/MeterReceiverProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/MeterReceiverProvider.java
@@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 import org.apache.skywalking.oap.server.receiver.meter.module.MeterReceiverModule;
 import org.apache.skywalking.oap.server.receiver.meter.provider.handler.MeterServiceHandler;
+import org.apache.skywalking.oap.server.receiver.meter.provider.handler.MeterServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 
 public class MeterReceiverProvider extends ModuleProvider {
@@ -61,7 +62,9 @@ public class MeterReceiverProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new MeterServiceHandler(processService));
+        MeterServiceHandler meterServiceHandlerCompat = new MeterServiceHandler(processService);
+        grpcHandlerRegister.addHandler(meterServiceHandlerCompat);
+        grpcHandlerRegister.addHandler(new MeterServiceHandlerCompat(meterServiceHandlerCompat));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/handler/MeterServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/handler/MeterServiceHandlerCompat.java
new file mode 100644
index 0000000..b21a1f5
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-meter-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/meter/provider/handler/MeterServiceHandlerCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.meter.provider.handler;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.agent.v3.MeterData;
+import org.apache.skywalking.apm.network.language.agent.v3.compat.MeterReportServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class MeterServiceHandlerCompat extends MeterReportServiceGrpc.MeterReportServiceImplBase implements GRPCHandler {
+    private final MeterServiceHandler delegate;
+
+    @Override
+    public StreamObserver<MeterData> collect(final StreamObserver<Commands> responseObserver) {
+        return delegate.collect(responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/ProfileModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/ProfileModuleProvider.java
index a1b9941..88b4374 100644
--- a/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/ProfileModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/ProfileModuleProvider.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 import org.apache.skywalking.oap.server.receiver.profile.module.ProfileModule;
 import org.apache.skywalking.oap.server.receiver.profile.provider.handler.ProfileTaskServiceHandler;
+import org.apache.skywalking.oap.server.receiver.profile.provider.handler.ProfileTaskServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 
 /**
@@ -57,7 +58,9 @@ public class ProfileModuleProvider extends ModuleProvider {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new ProfileTaskServiceHandler(getManager()));
+        ProfileTaskServiceHandler profileTaskServiceHandler = new ProfileTaskServiceHandler(getManager());
+        grpcHandlerRegister.addHandler(profileTaskServiceHandler);
+        grpcHandlerRegister.addHandler(new ProfileTaskServiceHandlerCompat(profileTaskServiceHandler));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/handler/ProfileTaskServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/handler/ProfileTaskServiceHandlerCompat.java
new file mode 100644
index 0000000..d911bf0
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-profile-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/profile/provider/handler/ProfileTaskServiceHandlerCompat.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.profile.provider.handler;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.profile.v3.ProfileTaskCommandQuery;
+import org.apache.skywalking.apm.network.language.profile.v3.ProfileTaskFinishReport;
+import org.apache.skywalking.apm.network.language.profile.v3.ThreadSnapshot;
+import org.apache.skywalking.apm.network.language.profile.v3.compat.ProfileTaskGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class ProfileTaskServiceHandlerCompat extends ProfileTaskGrpc.ProfileTaskImplBase implements GRPCHandler {
+    private final ProfileTaskServiceHandler delegate;
+
+    @Override
+    public void getProfileTaskCommands(final ProfileTaskCommandQuery request, final StreamObserver<Commands> responseObserver) {
+        delegate.getProfileTaskCommands(request, responseObserver);
+    }
+
+    @Override
+    public StreamObserver<ThreadSnapshot> collectSnapshot(final StreamObserver<Commands> responseObserver) {
+        return delegate.collectSnapshot(responseObserver);
+    }
+
+    @Override
+    public void reportTaskFinish(final ProfileTaskFinishReport request, final StreamObserver<Commands> responseObserver) {
+        delegate.reportTaskFinish(request, responseObserver);
+    }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
index 98b07e1..16fcde3 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
@@ -30,6 +30,7 @@ import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedExcepti
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 import org.apache.skywalking.oap.server.receiver.trace.module.TraceModule;
 import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v8.grpc.TraceSegmentReportServiceHandler;
+import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v8.grpc.TraceSegmentReportServiceHandlerCompat;
 import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v8.rest.TraceSegmentReportListServletHandler;
 import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v8.rest.TraceSegmentReportSingleServletHandler;
 import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
@@ -65,7 +66,9 @@ public class TraceModuleProvider extends ModuleProvider {
                                                                 .provider()
                                                                 .getService(JettyHandlerRegister.class);
 
-        grpcHandlerRegister.addHandler(new TraceSegmentReportServiceHandler(getManager()));
+        TraceSegmentReportServiceHandler traceSegmentReportServiceHandler = new TraceSegmentReportServiceHandler(getManager());
+        grpcHandlerRegister.addHandler(traceSegmentReportServiceHandler);
+        grpcHandlerRegister.addHandler(new TraceSegmentReportServiceHandlerCompat(traceSegmentReportServiceHandler));
 
         jettyHandlerRegister.addHandler(new TraceSegmentReportListServletHandler(getManager()));
         jettyHandlerRegister.addHandler(new TraceSegmentReportSingleServletHandler(getManager()));
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/grpc/TraceSegmentReportServiceHandlerCompat.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/grpc/TraceSegmentReportServiceHandlerCompat.java
new file mode 100644
index 0000000..3e25fa5
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/grpc/TraceSegmentReportServiceHandlerCompat.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v8.grpc;
+
+import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.apm.network.common.v3.Commands;
+import org.apache.skywalking.apm.network.language.agent.v3.SegmentCollection;
+import org.apache.skywalking.apm.network.language.agent.v3.SegmentObject;
+import org.apache.skywalking.apm.network.language.agent.v3.compat.TraceSegmentReportServiceGrpc;
+import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
+
+@RequiredArgsConstructor
+public class TraceSegmentReportServiceHandlerCompat extends TraceSegmentReportServiceGrpc.TraceSegmentReportServiceImplBase implements GRPCHandler {
+    private final TraceSegmentReportServiceHandler delegate;
+
+    @Override
+    public StreamObserver<SegmentObject> collect(final StreamObserver<Commands> responseObserver) {
+        return delegate.collect(responseObserver);
+    }
+
+    @Override
+    public void collectInSync(final SegmentCollection request, final StreamObserver<Commands> responseObserver) {
+        delegate.collectInSync(request, responseObserver);
+    }
+}
diff --git a/test/e2e/e2e-test/docker/simple/compat/docker-compose.yml b/test/e2e/e2e-test/docker/simple/compat/docker-compose.yml
new file mode 100644
index 0000000..7586ccb
--- /dev/null
+++ b/test/e2e/e2e-test/docker/simple/compat/docker-compose.yml
@@ -0,0 +1,62 @@
+# 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.
+
+version: '2.1'
+
+services:
+  oap:
+    environment:
+      SW_PROMETHEUS_FETCHER: "default"
+      SW_TELEMETRY: prometheus
+    extends:
+      file: ../../base-compose.yml
+      service: oap
+
+  ui:
+    extends:
+      file: ../../base-compose.yml
+      service: ui
+    depends_on:
+      oap:
+        condition: service_healthy
+
+  provider:
+    build:
+      context: ../../../..
+      dockerfile: e2e-test/docker/Dockerfile.provider
+      args:
+        - SW_AGENT_JDK_VERSION=${SW_AGENT_JDK_VERSION:-11}
+        - DIST_PACKAGE=http://archive.apache.org/dist/skywalking/8.3.0/apache-skywalking-apm-8.3.0.tar.gz
+    networks:
+      - e2e
+    expose:
+      - 9090
+      - 5005
+    volumes:
+      - ../../../jacoco:/jacoco
+    environment:
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
+      JAVA_OPTS: -javaagent:/skywalking/agent/skywalking-agent.jar=logging.output=CONSOLE
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9090"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/plugin/agent-test-tools/bin/fetch-code.sh b/test/plugin/agent-test-tools/bin/fetch-code.sh
index 5189a45..b7e16f2 100644
--- a/test/plugin/agent-test-tools/bin/fetch-code.sh
+++ b/test/plugin/agent-test-tools/bin/fetch-code.sh
@@ -21,7 +21,7 @@ RESPOSITORY=$2
 COMMIT_ID=$3
 DIST_DIRECTORY=$4
 
-HOME_DIR="$(cd "$(dirname $0)"; pwd)"
+ROOT_DIR="$(cd "$(dirname $0)"; pwd)"
 
 git clone $RESPOSITORY $WORK_DIRECTORY
 
@@ -29,8 +29,8 @@ cd $WORK_DIRECTORY
 
 git checkout $COMMIT_ID
 
-mvn -B package -DskipTests
+"$ROOT_DIR"/../../../../mvnw -B package -DskipTests
 
 [[ -d $DIST_DIRECTORY ]] || mkdir -p $DIST_DIRECTORY
 
-cp $WORK_DIRECTORY/dist/* $DIST_DIRECTORY/
\ No newline at end of file
+cp $WORK_DIRECTORY/dist/* $DIST_DIRECTORY/
diff --git a/test/plugin/agent-test-tools/pom.xml b/test/plugin/agent-test-tools/pom.xml
index d3c9e5e..c220234 100644
--- a/test/plugin/agent-test-tools/pom.xml
+++ b/test/plugin/agent-test-tools/pom.xml
@@ -35,7 +35,7 @@
     <packaging>pom</packaging>
 
     <properties>
-        <agent-test-tools.version>d75f7e1f593bd3816f6cd815482e355658adb8a0</agent-test-tools.version>
+        <agent-test-tools.version>24270f8f1ee1cb9186ede5202ff1c4ae3d2d482a</agent-test-tools.version>
         <agent-test-tools.workingDirectory>${project.basedir}/target/agent-test-tools</agent-test-tools.workingDirectory>
         <agent-test-tools.repos>https://github.com/apache/skywalking-agent-test-tool.git</agent-test-tools.repos>
     </properties>
@@ -70,4 +70,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>