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 2020/09/28 10:09:02 UTC

[skywalking] branch upgrade-dependencies created (now 03ebb5d)

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

wusheng pushed a change to branch upgrade-dependencies
in repository https://gitbox.apache.org/repos/asf/skywalking.git.


      at 03ebb5d  Upgrade dependencies and make the JDK11 compiling passed.

This branch includes the following new commits:

     new 03ebb5d  Upgrade dependencies and make the JDK11 compiling passed.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[skywalking] 01/01: Upgrade dependencies and make the JDK11 compiling passed.

Posted by wu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch upgrade-dependencies
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 03ebb5d2556bde1e61ee44b8066dfb029206e419
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Sep 28 18:08:36 2020 +0800

    Upgrade dependencies and make the JDK11 compiling passed.
---
 apm-protocol/apm-network/pom.xml                   |   6 +
 apm-sniffer/apm-agent-core/pom.xml                 |   5 +
 .../agent/core/logging/core/WriterFactoryTest.java |   2 -
 .../apm/agent/core/meter/CounterTest.java          |   2 +-
 .../skywalking/apm/agent/core/meter/GaugeTest.java |   9 +-
 .../apm/agent/core/meter/HistogramTest.java        |  15 +-
 .../apm/agent/core/meter/MeterIdTest.java          |   9 +-
 .../apm/plugin/jdbc/SWCallableStatementTest.java   |   8 +-
 .../apm/plugin/jdbc/SwPreparedStatementTest.java   |   4 +-
 .../v3/RedisConnectionMethodInterceptorTest.java   |  12 +-
 .../TransportClientHandlerInterceptorTest.java     |   2 +-
 .../v1/TransportClientHandlerInterceptorTest.java  |   2 +-
 .../spring/mvc/v3/GetBeanInterceptorTest.java      |  64 -------
 .../apm-sdk-plugin/struts2-2.x-plugin/pom.xml      |  14 ++
 .../meter/CounterConstructInterceptorTest.java     |  13 +-
 .../meter/GaugeConstructInterceptorTest.java       |  12 +-
 .../meter/HistogramConstructInterceptorTest.java   |  13 +-
 .../provider/meter/process/MeterBaseTest.java      |  37 ++--
 .../provider/meter/process/MeterBuilderTest.java   |  12 +-
 .../meter/process/MeterProcessContextTest.java     |   4 +-
 .../provider/meter/process/MeterProcessorTest.java |  29 ++--
 oap-server/pom.xml                                 |   9 +-
 .../core/alarm/provider/NotifyHandlerTest.java     |   2 +-
 .../consul/ClusterModuleConsulProviderTest.java    |   2 +-
 .../plugin/etcd/ClusterModuleEtcdProviderTest.java | 119 -------------
 .../cluster/plugin/etcd/EtcdCoordinatorTest.java   | 192 ---------------------
 .../ClusterModuleKubernetesProviderTest.java       |   2 +-
 .../kubernetes/KubernetesCoordinatorTest.java      |   2 +-
 .../nacos/ClusterModuleNacosProviderTest.java      | 109 ------------
 .../ConsulConfigurationWatcherRegisterTest.java    |  17 +-
 .../etcd/EtcdConfigWatcherRegisterTest.java        |   2 +-
 .../ConfigmapConfigWatcherRegisterTest.java        |   2 +-
 .../ConfigmapConfigurationProviderTest.java        |   2 +-
 .../oap/server/core/analysis/TimeBucketTest.java   |   4 +-
 .../core/storage/model/StorageModelsTest.java      |   2 +
 oap-server/server-library/library-util/pom.xml     |   5 +-
 .../envoy-metrics-receiver-plugin/pom.xml          |  10 +-
 .../rest/BrowserReportServletHandlerTest.java      |   4 +-
 .../rest/TraceSegmentReportServletHandlerTest.java |   6 +-
 .../exporter/test/ProfileSnapshotExporterTest.java |   2 +-
 pom.xml                                            |  28 ++-
 41 files changed, 185 insertions(+), 610 deletions(-)

diff --git a/apm-protocol/apm-network/pom.xml b/apm-protocol/apm-network/pom.xml
index a5497ec..a8fc525 100644
--- a/apm-protocol/apm-network/pom.xml
+++ b/apm-protocol/apm-network/pom.xml
@@ -52,6 +52,12 @@
             <artifactId>netty-tcnative-boringssl-static</artifactId>
             <version>${netty-tcnative-boringssl-static.version}</version>
         </dependency>
+        <dependency> <!-- necessary for Java 9+ -->
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>annotations-api</artifactId>
+            <version>${org.apache.tomcat.annotations-api.version}</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml
index 0d1d27f..772f408 100644
--- a/apm-sniffer/apm-agent-core/pom.xml
+++ b/apm-sniffer/apm-agent-core/pom.xml
@@ -68,6 +68,11 @@
             <artifactId>byte-buddy</artifactId>
             <version>${bytebuddy.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>${gson.version}</version>
+        </dependency>
 
         <dependency>
             <groupId>net.bytebuddy</groupId>
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactoryTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactoryTest.java
index d866d42..0cfd717 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactoryTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactoryTest.java
@@ -49,7 +49,6 @@ public class WriterFactoryTest {
         assertTrue(AgentPackagePath.isPathFound());
 
         IWriter logWriter = WriterFactory.getLogWriter();
-        PowerMockito.verifyStatic();
         assertTrue(logWriter instanceof SystemOutWriter);
     }
 
@@ -65,7 +64,6 @@ public class WriterFactoryTest {
         assertTrue(AgentPackagePath.isPathFound());
 
         IWriter logWriter = WriterFactory.getLogWriter();
-        PowerMockito.verifyStatic();
         assertTrue(logWriter instanceof FileWriter);
     }
 }
\ No newline at end of file
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/CounterTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/CounterTest.java
index 2df98aa..117e449 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/CounterTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/CounterTest.java
@@ -28,11 +28,11 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
+import org.powermock.reflect.Whitebox;
 
 public class CounterTest {
     @Rule
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/GaugeTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/GaugeTest.java
index de0441d..e0efaf5 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/GaugeTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/GaugeTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.skywalking.apm.agent.core.meter;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
 import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
 import org.apache.skywalking.apm.network.language.agent.v3.Label;
@@ -28,11 +31,7 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
+import org.powermock.reflect.Whitebox;
 
 public class GaugeTest {
     @Rule
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/HistogramTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/HistogramTest.java
index cab8626..bd6b2b8 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/HistogramTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/HistogramTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.skywalking.apm.agent.core.meter;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
 import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
 import org.apache.skywalking.apm.network.language.agent.v3.Label;
@@ -28,11 +31,7 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
+import org.powermock.reflect.Whitebox;
 
 public class HistogramTest {
     @Rule
@@ -66,7 +65,11 @@ public class HistogramTest {
         final List<Label> labels = Arrays.asList(Label.newBuilder().setName("k1").setValue("v1").build());
 
         // Check histogram message
-        final Histogram histogram = MeterFactory.histogram("test").steps(Arrays.asList(2d, 5d)).minValue(1d).tag("k1", "v1").build();
+        final Histogram histogram = MeterFactory.histogram("test")
+                                                .steps(Arrays.asList(2d, 5d))
+                                                .minValue(1d)
+                                                .tag("k1", "v1")
+                                                .build();
         histogram.addValue(1);
         histogram.addValue(3);
         histogram.addValue(3);
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/MeterIdTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/MeterIdTest.java
index 11512e6..7ccc3a7 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/MeterIdTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/meter/MeterIdTest.java
@@ -18,14 +18,13 @@
 
 package org.apache.skywalking.apm.agent.core.meter;
 
-import org.apache.skywalking.apm.network.language.agent.v3.Label;
-import org.junit.Assert;
-import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import org.apache.skywalking.apm.network.language.agent.v3.Label;
+import org.junit.Assert;
+import org.junit.Test;
+import org.powermock.reflect.Whitebox;
 
 public class MeterIdTest {
 
diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SWCallableStatementTest.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SWCallableStatementTest.java
index 31dd18f..d089522 100644
--- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SWCallableStatementTest.java
+++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SWCallableStatementTest.java
@@ -325,10 +325,10 @@ public class SWCallableStatementTest extends AbstractStatementTest {
         verify(mysqlCallableStatement).setBlob(anyInt(), any(InputStream.class), anyLong());
         verify(mysqlCallableStatement).setClob(anyInt(), any(Clob.class));
         verify(mysqlCallableStatement).setClob(anyInt(), any(Reader.class));
-        verify(mysqlCallableStatement).setClob(anyInt(), any(Reader.class), anyInt());
+        verify(mysqlCallableStatement).setClob(anyInt(), any(Reader.class), anyLong());
         verify(mysqlCallableStatement).setNString(anyInt(), anyString());
         verify(mysqlCallableStatement).setNCharacterStream(anyInt(), any(Reader.class));
-        verify(mysqlCallableStatement).setNCharacterStream(anyInt(), any(Reader.class), anyInt());
+        verify(mysqlCallableStatement).setNCharacterStream(anyInt(), any(Reader.class), anyLong());
         verify(mysqlCallableStatement).setNClob(27, nClob);
         verify(mysqlCallableStatement).setNClob(28, reader, 1);
         verify(mysqlCallableStatement).setObject(anyInt(), Matchers.anyObject());
@@ -377,10 +377,10 @@ public class SWCallableStatementTest extends AbstractStatementTest {
         verify(mysqlCallableStatement).setBlob(anyString(), any(InputStream.class), anyLong());
         verify(mysqlCallableStatement).setClob(anyString(), any(Clob.class));
         verify(mysqlCallableStatement).setClob(anyString(), any(Reader.class));
-        verify(mysqlCallableStatement).setClob(anyString(), any(Reader.class), anyInt());
+        verify(mysqlCallableStatement).setClob(anyString(), any(Reader.class), anyLong());
         verify(mysqlCallableStatement).setNString(anyString(), anyString());
         verify(mysqlCallableStatement).setNCharacterStream(anyString(), any(Reader.class));
-        verify(mysqlCallableStatement).setNCharacterStream(anyString(), any(Reader.class), anyInt());
+        verify(mysqlCallableStatement).setNCharacterStream(anyString(), any(Reader.class), anyLong());
         verify(mysqlCallableStatement).setNClob(27, nClob);
         verify(mysqlCallableStatement).setNClob(28, reader, 1);
         verify(mysqlCallableStatement).setObject(anyString(), Matchers.anyObject());
diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SwPreparedStatementTest.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SwPreparedStatementTest.java
index 78ff7b5..fee705c 100644
--- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SwPreparedStatementTest.java
+++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/SwPreparedStatementTest.java
@@ -206,10 +206,10 @@ public class SwPreparedStatementTest extends AbstractStatementTest {
         verify(mysqlPreparedStatement).setBlob(anyInt(), any(InputStream.class), anyLong());
         verify(mysqlPreparedStatement).setClob(anyInt(), any(Clob.class));
         verify(mysqlPreparedStatement).setClob(anyInt(), any(Reader.class));
-        verify(mysqlPreparedStatement).setClob(anyInt(), any(Reader.class), anyInt());
+        verify(mysqlPreparedStatement).setClob(anyInt(), any(Reader.class), anyLong());
         verify(mysqlPreparedStatement).setNString(anyInt(), anyString());
         verify(mysqlPreparedStatement).setNCharacterStream(anyInt(), any(Reader.class));
-        verify(mysqlPreparedStatement).setNCharacterStream(anyInt(), any(Reader.class), anyInt());
+        verify(mysqlPreparedStatement).setNCharacterStream(anyInt(), any(Reader.class), anyLong());
         verify(mysqlPreparedStatement).setNClob(27, nClob);
         verify(mysqlPreparedStatement).setNClob(28, reader, 1);
         verify(mysqlPreparedStatement).setObject(anyInt(), Matchers.anyObject());
diff --git a/apm-sniffer/apm-sdk-plugin/redisson-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/redisson/v3/RedisConnectionMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/redisson-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/redisson/v3/RedisConnectionMethodInterceptorTest.java
index 513564b..c315ec0 100644
--- a/apm-sniffer/apm-sdk-plugin/redisson-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/redisson/v3/RedisConnectionMethodInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/redisson-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/redisson/v3/RedisConnectionMethodInterceptorTest.java
@@ -30,7 +30,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
 import org.redisson.config.Config;
@@ -45,9 +44,7 @@ public class RedisConnectionMethodInterceptorTest {
     @Rule
     public AgentServiceRule serviceRule = new AgentServiceRule();
 
-    @Mock
     private MockInstance mockRedisClientInstance;
-    @Mock
     private MockInstance mockRedisConnectionInstance;
 
     private RedisConnectionMethodInterceptor interceptor;
@@ -67,8 +64,8 @@ public class RedisConnectionMethodInterceptorTest {
     }
 
     @SuppressWarnings({
-            "rawtypes",
-            "unchecked"
+        "rawtypes",
+        "unchecked"
     })
     @Before
     public void setUp() throws Exception {
@@ -80,8 +77,9 @@ public class RedisConnectionMethodInterceptorTest {
 
     @Test
     public void testIntercept() throws Throwable {
-        interceptor.onConstruct(mockRedisConnectionInstance, new Object[]{mockRedisClientInstance});
-        MatcherAssert.assertThat((String) mockRedisConnectionInstance.getSkyWalkingDynamicField(), Is.is("127.0.0.1:6379;127.0.0.1:6378;"));
+        interceptor.onConstruct(mockRedisConnectionInstance, new Object[] {mockRedisClientInstance});
+        MatcherAssert.assertThat(
+            (String) mockRedisConnectionInstance.getSkyWalkingDynamicField(), Is.is("127.0.0.1:6379;127.0.0.1:6378;"));
     }
 
     @Test
diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptorTest.java
index 3a352ba..16355be 100644
--- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptorTest.java
@@ -91,7 +91,7 @@ public class TransportClientHandlerInterceptorTest {
         nextInterceptor = new TransportClientHandlerInterceptor();
         PowerMockito.mock(Invocation.class);
         when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
-        when(endpoint.getAddress()).thenReturn("0.0.0.0:7777");
+        when(endpoint.toString()).thenReturn("/bmi");
         when(invocation.getEndpoint()).thenReturn(endpoint);
         when(invocation.getMicroserviceQualifiedName()).thenReturn("consumerTest");
         when(operationMeta.getOperationPath()).thenReturn("/bmi");
diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/v1/TransportClientHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/v1/TransportClientHandlerInterceptorTest.java
index 595e49d..0095d02 100644
--- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/v1/TransportClientHandlerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/servicecomb/v1/TransportClientHandlerInterceptorTest.java
@@ -91,7 +91,7 @@ public class TransportClientHandlerInterceptorTest {
         nextInterceptor = new TransportClientHandlerInterceptor();
         PowerMockito.mock(Invocation.class);
         when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
-        when(endpoint.getAddress()).thenReturn("0.0.0.0:7777");
+        when(endpoint.toString()).thenReturn("/bmi");
         when(invocation.getEndpoint()).thenReturn(endpoint);
         when(invocation.getMicroserviceQualifiedName()).thenReturn("consumerTest");
         when(operationMeta.getOperationPath()).thenReturn("/bmi");
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spring/mvc/v3/GetBeanInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spring/mvc/v3/GetBeanInterceptorTest.java
deleted file mode 100644
index b4ec3f5..0000000
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spring/mvc/v3/GetBeanInterceptorTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.apm.plugin.spring.mvc.v3;
-
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
-import org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor.GetBeanInterceptor;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.springframework.web.context.request.NativeWebRequest;
-
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@RunWith(MockitoJUnitRunner.class)
-public class GetBeanInterceptorTest {
-
-    @Mock
-    private EnhancedInstance enhancedInstance;
-
-    @Mock
-    private NativeWebRequest request;
-
-    @Mock
-    private EnhancedInstance enhanceRet;
-
-    private GetBeanInterceptor interceptor;
-
-    @Before
-    public void setUp() {
-        interceptor = new GetBeanInterceptor();
-
-        when(enhanceRet.getSkyWalkingDynamicField()).thenReturn(new EnhanceRequireObjectCache());
-        when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn(request);
-    }
-
-    @Test
-    public void testResultIsNotEnhanceInstance() throws Throwable {
-        interceptor.afterMethod(enhancedInstance, null, null, null, new Object());
-
-        verify(enhanceRet, times(0)).setSkyWalkingDynamicField(Matchers.any());
-    }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
index 5c54b93..32fe5cf 100644
--- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
@@ -43,6 +43,14 @@
             <artifactId>struts2-core</artifactId>
             <version>${struts2-core.version}</version>
             <scope>provided</scope>
+            <exclusions>
+                <!-- The default javassist is not compatible with 3.x power mock. -->
+                <!-- Manually add the dependency back for test below. -->
+                <exclusion>
+                    <groupId>javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -56,5 +64,11 @@
             <version>${jsp-api.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+            <version>3.24.0-GA</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/CounterConstructInterceptorTest.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/CounterConstructInterceptorTest.java
index 38838db..15c144d 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/CounterConstructInterceptorTest.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/CounterConstructInterceptorTest.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.apm.toolkit.activation.meter;
 
+import java.util.Arrays;
+import java.util.Map;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
 import org.apache.skywalking.apm.agent.core.meter.BaseMeter;
 import org.apache.skywalking.apm.agent.core.meter.MeterService;
@@ -30,10 +32,7 @@ import org.apache.skywalking.apm.toolkit.meter.MeterId;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.util.Arrays;
-import java.util.Map;
+import org.powermock.reflect.Whitebox;
 
 public class CounterConstructInterceptorTest {
 
@@ -47,10 +46,12 @@ public class CounterConstructInterceptorTest {
     public void testConstruct() {
         counterConstructInterceptor.onConstruct(enhancedInstance, new Object[] {
             new MeterId("test", MeterId.MeterType.COUNTER, Arrays.asList(new MeterId.Tag("k1", "v1"))),
-            Counter.Mode.RATE});
+            Counter.Mode.RATE
+        });
 
         final MeterService service = ServiceManager.INSTANCE.findService(MeterService.class);
-        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(service, "meterMap");
+        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(
+            service, "meterMap");
         Assert.assertEquals(1, meterMap.size());
 
         final BaseMeter meterData = meterMap.values().iterator().next();
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/GaugeConstructInterceptorTest.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/GaugeConstructInterceptorTest.java
index ff4555f..7c7107b 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/GaugeConstructInterceptorTest.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/GaugeConstructInterceptorTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.skywalking.apm.toolkit.activation.meter;
 
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Supplier;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
 import org.apache.skywalking.apm.agent.core.meter.BaseMeter;
 import org.apache.skywalking.apm.agent.core.meter.Gauge;
@@ -30,11 +33,7 @@ import org.apache.skywalking.apm.toolkit.meter.MeterId;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.util.Arrays;
-import java.util.Map;
-import java.util.function.Supplier;
+import org.powermock.reflect.Whitebox;
 
 public class GaugeConstructInterceptorTest {
 
@@ -52,7 +51,8 @@ public class GaugeConstructInterceptorTest {
         });
 
         final MeterService service = ServiceManager.INSTANCE.findService(MeterService.class);
-        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(service, "meterMap");
+        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(
+            service, "meterMap");
         Assert.assertEquals(1, meterMap.size());
 
         final Object field = meterMap.values().iterator().next();
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/HistogramConstructInterceptorTest.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/HistogramConstructInterceptorTest.java
index fc65463..62c43b5 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/HistogramConstructInterceptorTest.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-meter-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/meter/HistogramConstructInterceptorTest.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.apm.toolkit.activation.meter;
 
+import java.util.Arrays;
+import java.util.Map;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
 import org.apache.skywalking.apm.agent.core.meter.BaseMeter;
 import org.apache.skywalking.apm.agent.core.meter.Histogram;
@@ -30,10 +32,7 @@ import org.apache.skywalking.apm.toolkit.meter.MeterId;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.util.Arrays;
-import java.util.Map;
+import org.powermock.reflect.Whitebox;
 
 public class HistogramConstructInterceptorTest {
 
@@ -47,10 +46,12 @@ public class HistogramConstructInterceptorTest {
     public void testConstruct() {
         histogramConstructInterceptor.onConstruct(enhancedInstance, new Object[] {
             new MeterId("test", MeterId.MeterType.HISTOGRAM, Arrays.asList(new MeterId.Tag("k1", "v1"))),
-            Arrays.asList(1d, 5d, 10d)});
+            Arrays.asList(1d, 5d, 10d)
+        });
 
         final MeterService service = ServiceManager.INSTANCE.findService(MeterService.class);
-        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(service, "meterMap");
+        final Map<MeterId, BaseMeter> meterMap = (Map<MeterId, BaseMeter>) Whitebox.getInternalState(
+            service, "meterMap");
         Assert.assertEquals(1, meterMap.size());
 
         final Object field = meterMap.values().iterator().next();
diff --git a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBaseTest.java b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBaseTest.java
index c3e392d..d3e1ad9 100644
--- a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBaseTest.java
+++ b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBaseTest.java
@@ -39,7 +39,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.junit.Before;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Mockito.when;
 
@@ -90,19 +90,32 @@ public abstract class MeterBaseTest {
         timestamp = System.currentTimeMillis();
         // single value
         processor.read(MeterData.newBuilder()
-            .setService("service").setServiceInstance("instance").setTimestamp(timestamp)
-            .setSingleValue(MeterSingleValue.newBuilder().setName("test_count1")
-                .addLabels(Label.newBuilder().setName("k1").setValue("v1").build()).setValue(1).build())
-            .build());
+                                .setService("service").setServiceInstance("instance").setTimestamp(timestamp)
+                                .setSingleValue(MeterSingleValue.newBuilder().setName("test_count1")
+                                                                .addLabels(Label.newBuilder()
+                                                                                .setName("k1")
+                                                                                .setValue("v1")
+                                                                                .build()).setValue(1).build())
+                                .build());
 
         // histogram
         processor.read(MeterData.newBuilder()
-            .setHistogram(MeterHistogram.newBuilder().setName("test_histogram")
-                .addLabels(Label.newBuilder().setName("k2").setValue("v2").build())
-                .addValues(MeterBucketValue.newBuilder().setBucket(1).setCount(10).build())
-                .addValues(MeterBucketValue.newBuilder().setBucket(5).setCount(15).build())
-                .addValues(MeterBucketValue.newBuilder().setBucket(10).setCount(3).build())
-                .build())
-            .build());
+                                .setHistogram(MeterHistogram.newBuilder().setName("test_histogram")
+                                                            .addLabels(
+                                                                Label.newBuilder().setName("k2").setValue("v2").build())
+                                                            .addValues(MeterBucketValue.newBuilder()
+                                                                                       .setBucket(1)
+                                                                                       .setCount(10)
+                                                                                       .build())
+                                                            .addValues(MeterBucketValue.newBuilder()
+                                                                                       .setBucket(5)
+                                                                                       .setCount(15)
+                                                                                       .build())
+                                                            .addValues(MeterBucketValue.newBuilder()
+                                                                                       .setBucket(10)
+                                                                                       .setCount(3)
+                                                                                       .build())
+                                                            .build())
+                                .build());
     }
 }
diff --git a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBuilderTest.java b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBuilderTest.java
index b92fd40..8a4a63e 100644
--- a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBuilderTest.java
+++ b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterBuilderTest.java
@@ -31,27 +31,28 @@ import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doCallRealMethod;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class MeterBuilderTest extends MeterBaseTest {
 
     @Test
     public void testBuildAndSend() throws ModuleStartException {
         List<AcceptableValue> values = new ArrayList<>();
         doAnswer(invocationOnMock -> {
-            values.add(invocationOnMock.getArgumentAt(0, AcceptableValue.class));
+            values.add(invocationOnMock.getArgument(0, AcceptableValue.class));
             return null;
         }).when(meterSystem).doStreamingCalculation(any());
 
-        final MeterProcessService context = (MeterProcessService) Whitebox.getInternalState(processor, "processService");
+        final MeterProcessService context = (MeterProcessService) Whitebox.getInternalState(
+            processor, "processService");
         context.enabledBuilders().stream().peek(b -> doCallRealMethod().when(b).buildAndSend(any(), any()));
         context.initMeters();
 
@@ -91,7 +92,8 @@ public class MeterBuilderTest extends MeterBaseTest {
     private void verifyDataTable(DataTable table, Object... data) {
         Assert.assertEquals(data.length / 2, table.size());
         for (int i = 0; i < data.length; i += 2) {
-            Assert.assertEquals(Long.parseLong(String.valueOf(data[i + 1])), table.get(String.valueOf(data[i])).longValue());
+            Assert.assertEquals(
+                Long.parseLong(String.valueOf(data[i + 1])), table.get(String.valueOf(data[i])).longValue());
         }
     }
 }
diff --git a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessContextTest.java b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessContextTest.java
index a53eb33..3f65b14 100644
--- a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessContextTest.java
+++ b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessContextTest.java
@@ -25,16 +25,16 @@ import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class MeterProcessContextTest extends MeterBaseTest {
     private static final String CONFIG_PATH = "meter-receive-config";
 
diff --git a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessorTest.java b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessorTest.java
index 6a042ae..b8de2e5 100644
--- a/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessorTest.java
+++ b/oap-server/analyzer/agent-analyzer/src/test/java/org/apache/skywalking/oap/server/analyzer/provider/meter/process/MeterProcessorTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.skywalking.oap.server.analyzer.provider.meter.process;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.modules.junit4.PowerMockRunner;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doNothing;
@@ -38,7 +37,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class MeterProcessorTest extends MeterBaseTest {
 
     @Test
@@ -49,15 +48,18 @@ public class MeterProcessorTest extends MeterBaseTest {
         Assert.assertEquals(timestamp, processor.timestamp().longValue());
 
         // meters check
-        final Map<String, EvalMultipleData> meters = (Map<String, EvalMultipleData>) Whitebox.getInternalState(processor, "meters");
+        final Map<String, EvalMultipleData> meters = (Map<String, EvalMultipleData>) Whitebox.getInternalState(
+            processor, "meters");
         Assert.assertEquals(2, meters.size());
 
         // single value
-        EvalSingleData singleData = verifyBaseData(meters.get("test_count1"), "test_count1", Collections.singletonMap("k1", "v1"));
+        EvalSingleData singleData = verifyBaseData(
+            meters.get("test_count1"), "test_count1", Collections.singletonMap("k1", "v1"));
         Assert.assertEquals(1, singleData.getValue(), 0.0);
 
         // histogram
-        EvalHistogramData histogramData = verifyBaseData(meters.get("test_histogram"), "test_histogram", Collections.singletonMap("k2", "v2"));
+        EvalHistogramData histogramData = verifyBaseData(
+            meters.get("test_histogram"), "test_histogram", Collections.singletonMap("k2", "v2"));
         Assert.assertEquals(3, histogramData.getBuckets().size());
         Assert.assertEquals(10, histogramData.getBuckets().get(1d).longValue());
         Assert.assertEquals(15, histogramData.getBuckets().get(5d).longValue());
@@ -68,8 +70,11 @@ public class MeterProcessorTest extends MeterBaseTest {
     public void testProcess() {
         // each builder has build and send
         MeterProcessService context = (MeterProcessService) Whitebox.getInternalState(processor, "processService");
-        List<MeterBuilder> builders = context.enabledBuilders().stream().map(Mockito::spy)
-            .peek(builder -> doNothing().when(builder).buildAndSend(any(), any())).collect(Collectors.toList());
+        List<MeterBuilder> builders = context.enabledBuilders()
+                                             .stream()
+                                             .map(Mockito::spy)
+                                             .peek(builder -> doNothing().when(builder).buildAndSend(any(), any()))
+                                             .collect(Collectors.toList());
         Whitebox.setInternalState(context, "meterBuilders", builders);
         processor.process();
         builders.stream().forEach(b -> verify(b, times(1)).buildAndSend(any(), any()));
diff --git a/oap-server/pom.xml b/oap-server/pom.xml
index 3fc4ad8..5fe4ea4 100755
--- a/oap-server/pom.xml
+++ b/oap-server/pom.xml
@@ -52,11 +52,12 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <protobuf-java.version>3.13.0</protobuf-java.version>
+        <protobuf-java-util.version>3.12.4</protobuf-java-util.version>
         <slf4j.version>1.7.25</slf4j.version>
         <log4j.version>2.9.0</log4j.version>
         <guava.version>28.1-jre</guava.version>
         <snakeyaml.version>1.18</snakeyaml.version>
-        <gson.version>2.8.6</gson.version>
         <graphql-java-tools.version>5.2.3</graphql-java-tools.version>
         <graphql-java.version>8.0</graphql-java.version>
         <zookeeper.version>3.4.10</zookeeper.version>
@@ -95,7 +96,6 @@
         <groovy.version>3.0.3</groovy.version>
 
         <zookeeper.image.version>3.5</zookeeper.image.version>
-        <protobuf-java-util.version>3.11.4</protobuf-java-util.version>
         <kafka-clients.version>2.4.1</kafka-clients.version>
         <spring-kafka-test.version>2.4.6.RELEASE</spring-kafka-test.version>
     </properties>
@@ -273,6 +273,11 @@
 
             <dependency>
                 <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java</artifactId>
+                <version>${protobuf-java.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
                 <artifactId>protobuf-java-util</artifactId>
                 <version>${protobuf-java-util.version}</version>
             </dependency>
diff --git a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandlerTest.java b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandlerTest.java
index 61c9669..d3cd9d6 100644
--- a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandlerTest.java
+++ b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandlerTest.java
@@ -59,7 +59,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 @PrepareForTest(DefaultScopeDefine.class)
 public class NotifyHandlerTest {
 
diff --git a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProviderTest.java b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProviderTest.java
index 09302fa..1b9da57 100644
--- a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProviderTest.java
+++ b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProviderTest.java
@@ -48,7 +48,7 @@ import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest(Consul.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class ClusterModuleConsulProviderTest {
 
     private ClusterModuleConsulProvider provider = new ClusterModuleConsulProvider();
diff --git a/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/ClusterModuleEtcdProviderTest.java b/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/ClusterModuleEtcdProviderTest.java
deleted file mode 100644
index 8415a77..0000000
--- a/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/ClusterModuleEtcdProviderTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.cluster.plugin.etcd;
-
-import java.net.URI;
-import java.util.List;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cluster.ClusterModule;
-import org.apache.skywalking.oap.server.library.module.ModuleConfig;
-import org.apache.skywalking.oap.server.library.module.ModuleStartException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(EtcdUtils.class)
-@PowerMockIgnore("javax.management.*")
-public class ClusterModuleEtcdProviderTest {
-
-    private ClusterModuleEtcdProvider provider = new ClusterModuleEtcdProvider();
-
-    @Test
-    public void name() {
-        assertEquals("etcd", provider.name());
-    }
-
-    @Test
-    public void module() {
-        assertEquals(ClusterModule.class, provider.module());
-    }
-
-    @Test
-    public void createConfigBeanIfAbsent() {
-        ModuleConfig moduleConfig = provider.createConfigBeanIfAbsent();
-        assertTrue(moduleConfig instanceof ClusterModuleEtcdConfig);
-    }
-
-    @Test(expected = ModuleStartException.class)
-    public void prepareWithNonHost() throws Exception {
-        provider.prepare();
-    }
-
-    @Test
-    @SuppressWarnings("unchecked")
-    public void prepare() throws Exception {
-        PowerMockito.mockStatic(EtcdUtils.class);
-        ClusterModuleEtcdConfig etcdConfig = new ClusterModuleEtcdConfig();
-        etcdConfig.setHostPort("10.0.0.1:1000,10.0.0.2:1001");
-        Whitebox.setInternalState(provider, "config", etcdConfig);
-        provider.prepare();
-
-        List<URI> uris = mock(List.class);
-        PowerMockito.when(EtcdUtils.parse(etcdConfig)).thenReturn(uris);
-        ArgumentCaptor<ClusterModuleEtcdConfig> addressCaptor = ArgumentCaptor.forClass(ClusterModuleEtcdConfig.class);
-        PowerMockito.verifyStatic();
-        EtcdUtils.parse(addressCaptor.capture());
-        ClusterModuleEtcdConfig cfg = addressCaptor.getValue();
-        assertEquals(etcdConfig.getHostPort(), cfg.getHostPort());
-    }
-
-    @Test
-    public void prepareSingle() throws Exception {
-        PowerMockito.mockStatic(EtcdUtils.class);
-        ClusterModuleEtcdConfig etcdConfig = new ClusterModuleEtcdConfig();
-        etcdConfig.setHostPort("10.0.0.1:1000");
-        Whitebox.setInternalState(provider, "config", etcdConfig);
-        provider.prepare();
-
-        List<URI> uris = mock(List.class);
-        PowerMockito.when(EtcdUtils.parse(etcdConfig)).thenReturn(uris);
-        ArgumentCaptor<ClusterModuleEtcdConfig> addressCaptor = ArgumentCaptor.forClass(ClusterModuleEtcdConfig.class);
-        PowerMockito.verifyStatic();
-        EtcdUtils.parse(addressCaptor.capture());
-        ClusterModuleEtcdConfig cfg = addressCaptor.getValue();
-        assertEquals(etcdConfig.getHostPort(), cfg.getHostPort());
-    }
-
-    @Test
-    public void start() {
-        provider.start();
-    }
-
-    @Test
-    public void notifyAfterCompleted() {
-        provider.notifyAfterCompleted();
-    }
-
-    @Test
-    public void requiredModules() {
-        String[] modules = provider.requiredModules();
-        assertArrayEquals(new String[] {CoreModule.NAME}, modules);
-    }
-}
diff --git a/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/EtcdCoordinatorTest.java b/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/EtcdCoordinatorTest.java
deleted file mode 100644
index dd5c157..0000000
--- a/oap-server/server-cluster-plugin/cluster-etcd-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/etcd/EtcdCoordinatorTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * 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.cluster.plugin.etcd;
-
-import com.google.gson.Gson;
-import java.util.ArrayList;
-import java.util.List;
-import mousio.etcd4j.EtcdClient;
-import mousio.etcd4j.promises.EtcdResponsePromise;
-import mousio.etcd4j.requests.EtcdKeyGetRequest;
-import mousio.etcd4j.requests.EtcdKeyPutRequest;
-import mousio.etcd4j.responses.EtcdKeysResponse;
-import org.apache.skywalking.oap.server.core.cluster.RemoteInstance;
-import org.apache.skywalking.oap.server.core.remote.client.Address;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(EtcdKeysResponse.class)
-@PowerMockIgnore("javax.management.*")
-public class EtcdCoordinatorTest {
-
-    private ClusterModuleEtcdConfig etcdConfig = new ClusterModuleEtcdConfig();
-
-    private EtcdClient client;
-
-    private EtcdCoordinator coordinator;
-
-    private Gson gson = new Gson();
-
-    private Address remoteAddress = new Address("10.0.0.1", 1000, false);
-    private Address selfRemoteAddress = new Address("10.0.0.2", 1001, true);
-
-    private Address internalAddress = new Address("10.0.0.3", 1002, false);
-
-    private static final String SERVICE_NAME = "my-service";
-
-    private EtcdResponsePromise<EtcdKeysResponse> getPromise;
-    private EtcdResponsePromise<EtcdKeysResponse> putPromise;
-
-    private EtcdKeysResponse response;
-
-    private EtcdKeyPutRequest putRequest = mock(EtcdKeyPutRequest.class);
-
-    private EtcdKeyGetRequest getRequest = mock(EtcdKeyGetRequest.class);
-
-    private EtcdKeyPutRequest putDirRequest = mock(EtcdKeyPutRequest.class);
-
-    private EtcdResponsePromise<EtcdKeysResponse> putDirPromise;
-
-    @Mock
-    private List<EtcdKeysResponse.EtcdNode> list = mock(List.class);
-
-    @Before
-    public void setUp() throws Exception {
-        etcdConfig.setServiceName(SERVICE_NAME);
-
-        client = mock(EtcdClient.class);
-        PowerMockito.whenNew(EtcdClient.class).withAnyArguments().thenReturn(client);
-        client = new EtcdClient("http://10.0.0.1:1000", "http://10.0.0.2:2000");
-        coordinator = new EtcdCoordinator(etcdConfig, client);
-
-        putPromise = (EtcdResponsePromise<EtcdKeysResponse>) mock(EtcdResponsePromise.class);
-        getPromise = (EtcdResponsePromise<EtcdKeysResponse>) mock(EtcdResponsePromise.class);
-        putDirPromise = (EtcdResponsePromise<EtcdKeysResponse>) mock(EtcdResponsePromise.class);
-
-        PowerMockito.when(client.putDir(anyString())).thenReturn(putDirRequest);
-        PowerMockito.when(putDirRequest.ttl(anyInt())).thenReturn(putDirRequest);
-        PowerMockito.when(putDirRequest.send()).thenReturn(putDirPromise);
-        PowerMockito.when(client.put(anyString(), anyString())).thenReturn(putRequest);
-        PowerMockito.when(putRequest.ttl(anyInt())).thenReturn(putRequest);
-        PowerMockito.when(putRequest.send()).thenReturn(putPromise);
-        PowerMockito.when(client.get(anyString())).thenReturn(getRequest);
-        PowerMockito.when(getRequest.send()).thenReturn(getPromise);
-
-        response = PowerMockito.mock(EtcdKeysResponse.class);
-
-        response = PowerMockito.mock(EtcdKeysResponse.class);
-        when(putPromise.get()).thenReturn(response);
-        when(getPromise.get()).thenReturn(response);
-        when(putDirPromise.get()).thenReturn(response);
-    }
-
-    @Test
-    @SuppressWarnings("unchecked")
-    public void queryRemoteNodesWithNonOrEmpty() {
-        EtcdKeysResponse.EtcdNode node = PowerMockito.mock(EtcdKeysResponse.EtcdNode.class);
-        when(response.getNode()).thenReturn(node);
-        when(node.getValue()).thenReturn("{}");
-        assertEquals(0, coordinator.queryRemoteNodes().size());
-        assertEquals(0, coordinator.queryRemoteNodes().size());
-    }
-
-    @Test
-    public void queryRemoteNodes() {
-        registerSelfRemote();
-
-        EtcdKeysResponse.EtcdNode node = PowerMockito.mock(EtcdKeysResponse.EtcdNode.class);
-        EtcdKeysResponse.EtcdNode node1 = PowerMockito.mock(EtcdKeysResponse.EtcdNode.class);
-
-        when(response.getNode()).thenReturn(node);
-        list = new ArrayList<>();
-        List list1 = Mockito.spy(list);
-        list1.add(node1);
-        when(node.getNodes()).thenReturn(list1);
-        when(node1.getValue()).thenReturn("{\"serviceId\":\"my-service\",\"host\":\"10.0.0.2\",\"port\":1001}");
-        List<RemoteInstance> remoteInstances = coordinator.queryRemoteNodes();
-        assertEquals(1, remoteInstances.size());
-
-        RemoteInstance selfInstance = remoteInstances.get(0);
-        velidate(selfRemoteAddress, selfInstance);
-    }
-
-    @Test
-    public void registerRemote() {
-        registerRemote(remoteAddress);
-    }
-
-    @Test
-    public void registerSelfRemote() {
-        registerRemote(selfRemoteAddress);
-    }
-
-    @Test
-    public void registerRemoteUsingInternal() {
-        etcdConfig.setInternalComHost(internalAddress.getHost());
-        etcdConfig.setInternalComPort(internalAddress.getPort());
-        registerRemote(internalAddress);
-    }
-
-    private void velidate(Address originArress, RemoteInstance instance) {
-        Address instanceAddress = instance.getAddress();
-        assertEquals(originArress.getHost(), instanceAddress.getHost());
-        assertEquals(originArress.getPort(), instanceAddress.getPort());
-    }
-
-    private void registerRemote(Address address) {
-        coordinator.registerRemote(new RemoteInstance(address));
-        EtcdEndpoint endpoint = afterRegister().get(0);
-        verifyRegistration(address, endpoint);
-    }
-
-    private List<EtcdEndpoint> afterRegister() {
-        ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);
-        ArgumentCaptor<String> nameCaptor = ArgumentCaptor.forClass(String.class);
-        verify(client).put(nameCaptor.capture(), argumentCaptor.capture());
-        EtcdEndpoint endpoint = gson.fromJson(argumentCaptor.getValue(), EtcdEndpoint.class);
-        List<EtcdEndpoint> list = new ArrayList<>();
-        list.add(endpoint);
-        return list;
-    }
-
-    private void verifyRegistration(Address remoteAddress, EtcdEndpoint endpoint) {
-        assertNotNull(endpoint);
-        assertEquals(SERVICE_NAME, endpoint.getServiceName());
-        assertEquals(remoteAddress.getHost(), endpoint.getHost());
-        assertEquals(remoteAddress.getPort(), endpoint.getPort());
-    }
-
-}
diff --git a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/ClusterModuleKubernetesProviderTest.java b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/ClusterModuleKubernetesProviderTest.java
index 79f1029..ef9864d 100644
--- a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/ClusterModuleKubernetesProviderTest.java
+++ b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/ClusterModuleKubernetesProviderTest.java
@@ -31,7 +31,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class ClusterModuleKubernetesProviderTest {
 
     private ClusterModuleKubernetesProvider provider = new ClusterModuleKubernetesProvider();
diff --git a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinatorTest.java b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinatorTest.java
index 48a8319..b6587db 100644
--- a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinatorTest.java
+++ b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinatorTest.java
@@ -46,7 +46,7 @@ import org.powermock.reflect.Whitebox;
 import static org.powermock.api.mockito.PowerMockito.when;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 @PrepareForTest({NamespacedPodListInformer.class})
 public class KubernetesCoordinatorTest {
 
diff --git a/oap-server/server-cluster-plugin/cluster-nacos-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/nacos/ClusterModuleNacosProviderTest.java b/oap-server/server-cluster-plugin/cluster-nacos-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/nacos/ClusterModuleNacosProviderTest.java
deleted file mode 100644
index f489f93..0000000
--- a/oap-server/server-cluster-plugin/cluster-nacos-plugin/src/test/java/org/apache/skywalking/oap/server/cluster/plugin/nacos/ClusterModuleNacosProviderTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.cluster.plugin.nacos;
-
-import com.alibaba.nacos.api.PropertyKeyConst;
-import com.alibaba.nacos.api.naming.NamingFactory;
-import com.alibaba.nacos.api.naming.NamingService;
-import java.util.Properties;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cluster.ClusterModule;
-import org.apache.skywalking.oap.server.library.module.ModuleConfig;
-import org.apache.skywalking.oap.server.library.module.ModuleStartException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(NamingFactory.class)
-@PowerMockIgnore("javax.management.*")
-public class ClusterModuleNacosProviderTest {
-
-    private static final String SERVICE_NAME = "test-service_name";
-
-    private ClusterModuleNacosProvider provider = new ClusterModuleNacosProvider();
-
-    @Test
-    public void name() {
-        assertEquals("nacos", provider.name());
-    }
-
-    @Test
-    public void module() {
-        assertEquals(ClusterModule.class, provider.module());
-    }
-
-    @Test
-    public void createConfigBeanIfAbsent() {
-        ModuleConfig moduleConfig = provider.createConfigBeanIfAbsent();
-        assertTrue(moduleConfig instanceof ClusterModuleNacosConfig);
-    }
-
-    @Test(expected = ModuleStartException.class)
-    public void prepareWithNonHost() throws Exception {
-        provider.prepare();
-    }
-
-    @Test
-    public void prepare() throws Exception {
-        PowerMockito.mockStatic(NamingFactory.class);
-        ClusterModuleNacosConfig nacosConfig = new ClusterModuleNacosConfig();
-        nacosConfig.setHostPort("10.0.0.1:1000,10.0.0.2:1001");
-        nacosConfig.setServiceName(SERVICE_NAME);
-        Whitebox.setInternalState(provider, "config", nacosConfig);
-        NamingService namingService = mock(NamingService.class);
-
-        Properties properties = new Properties();
-        properties.put(PropertyKeyConst.SERVER_ADDR, "10.0.0.1:1000,10.0.0.2:1001");
-
-        PowerMockito.when(NamingFactory.createNamingService(properties)).thenReturn(namingService);
-        provider.prepare();
-        ArgumentCaptor<Properties> addressCaptor = ArgumentCaptor.forClass(Properties.class);
-        PowerMockito.verifyStatic();
-        NamingFactory.createNamingService(addressCaptor.capture());
-        Properties data = addressCaptor.getValue();
-        assertEquals("10.0.0.1:1000,10.0.0.2:1001", data.getProperty(PropertyKeyConst.SERVER_ADDR));
-    }
-
-    @Test
-    public void start() {
-        provider.start();
-    }
-
-    @Test
-    public void notifyAfterCompleted() {
-        provider.notifyAfterCompleted();
-    }
-
-    @Test
-    public void requiredModules() {
-        String[] modules = provider.requiredModules();
-        assertArrayEquals(new String[] {CoreModule.NAME}, modules);
-    }
-}
diff --git a/oap-server/server-configuration/configuration-consul/src/test/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegisterTest.java b/oap-server/server-configuration/configuration-consul/src/test/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegisterTest.java
index 1cfec1e..34e6fc3 100644
--- a/oap-server/server-configuration/configuration-consul/src/test/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegisterTest.java
+++ b/oap-server/server-configuration/configuration-consul/src/test/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegisterTest.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.configuration.consul;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Sets;
 import com.google.common.io.BaseEncoding;
-import com.orbitz.consul.KeyValueClient;
 import com.orbitz.consul.cache.ConsulCache;
 import com.orbitz.consul.cache.KVCache;
 import com.orbitz.consul.model.kv.ImmutableValue;
@@ -35,6 +34,7 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.reflect.Whitebox;
@@ -48,6 +48,13 @@ import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest(KVCache.class)
+@PowerMockIgnore({
+    "com.sun.org.apache.xerces.*",
+    "javax.xml.*",
+    "org.xml.*",
+    "javax.management.*",
+    "org.w3c.*"
+})
 @SuppressWarnings({
     "unchecked",
     "OptionalGetWithoutIsPresent"
@@ -77,8 +84,8 @@ public class ConsulConfigurationWatcherRegisterTest {
         ArgumentCaptor<ConsulCache.Listener> listener2 = ArgumentCaptor.forClass(ConsulCache.Listener.class);
 
         PowerMockito.mockStatic(KVCache.class);
-        PowerMockito.when(KVCache.newCache(any(KeyValueClient.class), eq("key1"))).thenReturn(cache1);
-        PowerMockito.when(KVCache.newCache(any(KeyValueClient.class), eq("key2"))).thenReturn(cache2);
+        PowerMockito.when(KVCache.newCache(any(), eq("key1"))).thenReturn(cache1);
+        PowerMockito.when(KVCache.newCache(any(), eq("key2"))).thenReturn(cache2);
 
         when(register.readConfig(any(Set.class))).thenCallRealMethod();
 
@@ -128,8 +135,8 @@ public class ConsulConfigurationWatcherRegisterTest {
         ArgumentCaptor<ConsulCache.Listener> listener2 = ArgumentCaptor.forClass(ConsulCache.Listener.class);
 
         PowerMockito.mockStatic(KVCache.class);
-        PowerMockito.when(KVCache.newCache(any(KeyValueClient.class), eq("key1"))).thenReturn(cache1);
-        PowerMockito.when(KVCache.newCache(any(KeyValueClient.class), eq("key2"))).thenReturn(cache2);
+        PowerMockito.when(KVCache.newCache(any(), eq("key1"))).thenReturn(cache1);
+        PowerMockito.when(KVCache.newCache(any(), eq("key2"))).thenReturn(cache2);
 
         when(register.readConfig(any(Set.class))).thenCallRealMethod();
 
diff --git a/oap-server/server-configuration/configuration-etcd/src/test/java/org/apache/skywalking/oap/server/configuration/etcd/EtcdConfigWatcherRegisterTest.java b/oap-server/server-configuration/configuration-etcd/src/test/java/org/apache/skywalking/oap/server/configuration/etcd/EtcdConfigWatcherRegisterTest.java
index 4f1f476..eaf7e06 100644
--- a/oap-server/server-configuration/configuration-etcd/src/test/java/org/apache/skywalking/oap/server/configuration/etcd/EtcdConfigWatcherRegisterTest.java
+++ b/oap-server/server-configuration/configuration-etcd/src/test/java/org/apache/skywalking/oap/server/configuration/etcd/EtcdConfigWatcherRegisterTest.java
@@ -54,7 +54,7 @@ import static org.powermock.api.mockito.PowerMockito.whenNew;
     EtcdClient.class,
     URI.class
 })
-@PowerMockIgnore({"javax.management.*"})
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class EtcdConfigWatcherRegisterTest {
 
     @Before
diff --git a/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigWatcherRegisterTest.java b/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigWatcherRegisterTest.java
index 2fd449c..45ddf43 100644
--- a/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigWatcherRegisterTest.java
+++ b/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigWatcherRegisterTest.java
@@ -39,7 +39,7 @@ import org.powermock.modules.junit4.PowerMockRunner;
 import org.yaml.snakeyaml.Yaml;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 @PrepareForTest({ConfigurationConfigmapInformer.class})
 public class ConfigmapConfigWatcherRegisterTest {
 
diff --git a/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationProviderTest.java b/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationProviderTest.java
index 13d967e..4090296 100644
--- a/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationProviderTest.java
+++ b/oap-server/server-configuration/configuration-k8s-configmap/src/test/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationProviderTest.java
@@ -28,7 +28,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class ConfigmapConfigurationProviderTest {
 
     private final ConfigmapConfigurationProvider provider = new ConfigmapConfigurationProvider();
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/TimeBucketTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/TimeBucketTest.java
index 201d436..f6cff89 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/TimeBucketTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/TimeBucketTest.java
@@ -56,8 +56,8 @@ public class TimeBucketTest {
                 DownSampling.Day,
                 DAYS,
                 MILLISECONDS.toDays(NOW)
-            },
-            };
+            }
+        };
     }
 
     private DownSampling downSampling;
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/model/StorageModelsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/model/StorageModelsTest.java
index 23f4431..5267e8f 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/model/StorageModelsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/model/StorageModelsTest.java
@@ -35,11 +35,13 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest({DefaultScopeDefine.class})
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class StorageModelsTest {
     @BeforeClass
     public static void setup() {
diff --git a/oap-server/server-library/library-util/pom.xml b/oap-server/server-library/library-util/pom.xml
index 1e468a1..241b7eb 100644
--- a/oap-server/server-library/library-util/pom.xml
+++ b/oap-server/server-library/library-util/pom.xml
@@ -17,7 +17,8 @@
   ~
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <artifactId>server-library</artifactId>
         <groupId>org.apache.skywalking</groupId>
@@ -30,7 +31,6 @@
 
     <properties>
         <ststem-rules.version>1.18.0</ststem-rules.version>
-        <protobuf-java.version>3.11.4</protobuf-java.version>
     </properties>
 
     <dependencies>
@@ -57,7 +57,6 @@
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java</artifactId>
-            <version>${protobuf-java.version}</version>
         </dependency>
 
         <dependency>
diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
index c0bd932..e9b0251 100644
--- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
+++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
@@ -46,10 +46,14 @@
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java-util</artifactId>
-            <version>3.5.1</version>
+            <version>${protobuf-java-util.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency> <!-- necessary for Java 9+ -->
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>annotations-api</artifactId>
+            <version>${org.apache.tomcat.annotations-api.version}</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
-
-
 </project>
\ No newline at end of file
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserReportServletHandlerTest.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserReportServletHandlerTest.java
index b3dd333..69bd2d4 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserReportServletHandlerTest.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserReportServletHandlerTest.java
@@ -36,14 +36,14 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore({"javax.management.*"})
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class BrowserReportServletHandlerTest {
     @Mock
     private HttpServletRequest request;
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/rest/TraceSegmentReportServletHandlerTest.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/rest/TraceSegmentReportServletHandlerTest.java
index b47efc2..9a88454 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/rest/TraceSegmentReportServletHandlerTest.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v8/rest/TraceSegmentReportServletHandlerTest.java
@@ -40,14 +40,14 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Mockito.when;
 
 @RunWith(PowerMockRunner.class)
-@PowerMockIgnore({"javax.management.*"})
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
 public class TraceSegmentReportServletHandlerTest {
 
     @Mock
@@ -71,7 +71,7 @@ public class TraceSegmentReportServletHandlerTest {
         Mockito.when(moduleManager.find(AnalyzerModule.NAME)).thenReturn(analyzerModule);
 
         Mockito.when(telemetryProvider.getService(MetricsCreator.class))
-            .thenReturn(new MetricsCreatorNoop());
+               .thenReturn(new MetricsCreatorNoop());
 
         when(analyzerModuleProvider.getService(ISegmentParserService.class))
             .thenReturn(new SegmentParserServiceImpl(moduleManager, new AnalyzerModuleConfig()));
diff --git a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-bootstrap/src/test/java/org/apache/skywalking/oap/server/tool/profile/exporter/test/ProfileSnapshotExporterTest.java b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-bootstrap/src/test/java/org/apache/skywalking/oap/server/tool/profile/exporter/test/ProfileSnapshotExporterTest.java
index 189c2aa..64a42c2 100644
--- a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-bootstrap/src/test/java/org/apache/skywalking/oap/server/tool/profile/exporter/test/ProfileSnapshotExporterTest.java
+++ b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-bootstrap/src/test/java/org/apache/skywalking/oap/server/tool/profile/exporter/test/ProfileSnapshotExporterTest.java
@@ -46,8 +46,8 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
 import org.yaml.snakeyaml.Yaml;
 
 @RunWith(PowerMockRunner.class)
diff --git a/pom.xml b/pom.xml
index 69926e1..aee21c9 100755
--- a/pom.xml
+++ b/pom.xml
@@ -182,19 +182,23 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <compiler.version>1.8</compiler.version>
-        <powermock.version>1.6.4</powermock.version>
+        <powermock.version>2.0.7</powermock.version>
         <checkstyle.version>6.18</checkstyle.version>
         <junit.version>4.12</junit.version>
-        <mockito-all.version>1.10.19</mockito-all.version>
+        <mockito-core.version>3.5.13</mockito-core.version>
         <lombok.version>1.18.10</lombok.version>
 
         <!-- core lib dependency -->
-        <grpc.version>1.26.0</grpc.version>
+        <grpc.version>1.32.1</grpc.version>
+        <gson.version>2.8.6</gson.version>
         <os-maven-plugin.version>1.6.2</os-maven-plugin.version>
         <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
-        <com.google.protobuf.protoc.version>3.3.0</com.google.protobuf.protoc.version>
-        <protoc-gen-grpc-java.plugin.version>1.8.0</protoc-gen-grpc-java.plugin.version>
+        <com.google.protobuf.protoc.version>3.12.0</com.google.protobuf.protoc.version>
+        <protoc-gen-grpc-java.plugin.version>1.32.1</protoc-gen-grpc-java.plugin.version>
         <netty-tcnative-boringssl-static.version>2.0.26.Final</netty-tcnative-boringssl-static.version>
+        <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
+        <!-- necessary for Java 9+ -->
+        <org.apache.tomcat.annotations-api.version>6.0.53</org.apache.tomcat.annotations-api.version>
 
         <!-- Plugin versions -->
         <docker.plugin.version>0.4.13</docker.plugin.version>
@@ -219,7 +223,6 @@
         <gmaven-plugin.version>1.5</gmaven-plugin.version>
         <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
         <checkstyle.fails.on.error>true</checkstyle.fails.on.error>
-        <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
     </properties>
 
     <dependencies>
@@ -229,18 +232,13 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.powermock</groupId>
             <artifactId>powermock-module-junit4</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito</artifactId>
+            <artifactId>powermock-api-mockito2</artifactId>
             <scope>test</scope>
         </dependency>
 
@@ -275,8 +273,8 @@
             </dependency>
             <dependency>
                 <groupId>org.mockito</groupId>
-                <artifactId>mockito-all</artifactId>
-                <version>${mockito-all.version}</version>
+                <artifactId>mockito-core</artifactId>
+                <version>${mockito-core.version}</version>
                 <scope>test</scope>
             </dependency>
             <dependency>
@@ -287,7 +285,7 @@
             </dependency>
             <dependency>
                 <groupId>org.powermock</groupId>
-                <artifactId>powermock-api-mockito</artifactId>
+                <artifactId>powermock-api-mockito2</artifactId>
                 <version>${powermock.version}</version>
                 <scope>test</scope>
             </dependency>