[SCB-2638] Remove jmockit from dynamic-config module (#3200)

diff --git a/dynamic-config/config-apollo/pom.xml b/dynamic-config/config-apollo/pom.xml
index 69ac357..13487f9 100644
--- a/dynamic-config/config-apollo/pom.xml
+++ b/dynamic-config/config-apollo/pom.xml
@@ -40,10 +40,5 @@
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.jmockit</groupId>
-      <artifactId>jmockit</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/dynamic-config/config-apollo/src/main/java/org/apache/servicecomb/config/client/ApolloClient.java b/dynamic-config/config-apollo/src/main/java/org/apache/servicecomb/config/client/ApolloClient.java
index d838d34..9dc040c 100644
--- a/dynamic-config/config-apollo/src/main/java/org/apache/servicecomb/config/client/ApolloClient.java
+++ b/dynamic-config/config-apollo/src/main/java/org/apache/servicecomb/config/client/ApolloClient.java
@@ -29,6 +29,7 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.config.archaius.sources.ApolloConfigurationSourceImpl.UpdateHandler;
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
 import org.slf4j.Logger;
@@ -77,6 +78,16 @@
     this.updateHandler = updateHandler;
   }
 
+  @VisibleForTesting
+  static Map<String, Object> getOriginalConfigMap() {
+    return originalConfigMap;
+  }
+
+  @VisibleForTesting
+  static void setRest(RestTemplate rest) {
+    ApolloClient.rest = rest;
+  }
+
   public void refreshApolloConfig() {
     EXECUTOR
         .scheduleWithFixedDelay(new ConfigRefresh(serviceUri), firstRefreshInterval, refreshInterval, TimeUnit.SECONDS);
diff --git a/dynamic-config/config-apollo/src/test/java/org/apache/servicecomb/config/client/ApolloClientTest.java b/dynamic-config/config-apollo/src/test/java/org/apache/servicecomb/config/client/ApolloClientTest.java
index 2d73b62..66ae6c1 100644
--- a/dynamic-config/config-apollo/src/test/java/org/apache/servicecomb/config/client/ApolloClientTest.java
+++ b/dynamic-config/config-apollo/src/test/java/org/apache/servicecomb/config/client/ApolloClientTest.java
@@ -35,8 +35,6 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.client.RestTemplate;
 
-import mockit.Deencapsulation;
-
 public class ApolloClientTest {
   @BeforeAll
   public static void setUpClass() {
@@ -48,6 +46,7 @@
   public void refreshApolloConfig() {
     ApolloConfig apolloConfig = ApolloConfig.INSTANCE;
     RestTemplate rest = Mockito.mock(RestTemplate.class);
+    ApolloClient.setRest(rest);
 
     ResponseEntity<String> responseEntity = new ResponseEntity<>(
         "{\"apollo\":\"mocked\", \"configurations\":{\"timeout\":1000}}", HttpStatus.OK);
@@ -59,12 +58,10 @@
     ApolloConfigurationSourceImpl impl = new ApolloConfigurationSourceImpl();
     UpdateHandler updateHandler = impl.new UpdateHandler();
     ApolloClient apolloClient = new ApolloClient(updateHandler);
-    Deencapsulation.setField(apolloClient, "rest", rest);
     ConfigRefresh cr = apolloClient.new ConfigRefresh(apolloConfig.getServerUri());
     cr.run();
 
-    Map<String, Object> originMap = Deencapsulation.getField(apolloClient, "originalConfigMap");
-    Assertions.assertEquals(1, originMap.size());
+    Assertions.assertEquals(1, ApolloClient.getOriginalConfigMap().size());
   }
 
   @Test
diff --git a/dynamic-config/config-cc/pom.xml b/dynamic-config/config-cc/pom.xml
index 1a9edc2..cfc44b0 100644
--- a/dynamic-config/config-cc/pom.xml
+++ b/dynamic-config/config-cc/pom.xml
@@ -63,11 +63,6 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>config-center-client</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.jmockit</groupId>
-      <artifactId>jmockit</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
 </project>
diff --git a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/ConfigCenterConfigurationSourceImplTest.java b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/ConfigCenterConfigurationSourceImplTest.java
index dc0dbb0..a1466a5 100644
--- a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/ConfigCenterConfigurationSourceImplTest.java
+++ b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/ConfigCenterConfigurationSourceImplTest.java
@@ -29,8 +29,6 @@
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-import mockit.Deencapsulation;
-
 class ConfigCenterConfigurationSourceImplTest {
 
   @Test
@@ -64,7 +62,7 @@
     AddressManager addressManager = new AddressManager("test", addresses, EventManager.getEventBus());
     addressManager.onRefreshEndpointEvent(event);
 
-    List<String> availableAZ = Deencapsulation.getField(addressManager, "availableZone");
+    List<String> availableAZ = addressManager.getAvailableZone();
     Assertions.assertEquals("https://127.0.0.1:30100/v3/test", availableAZ.get(0));
   }
 }
diff --git a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/center/client/AddressManagerTest.java b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/center/client/AddressManagerTest.java
index fc8c0c9..1e72e85 100644
--- a/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/center/client/AddressManagerTest.java
+++ b/dynamic-config/config-cc/src/test/java/org/apache/servicecomb/config/center/client/AddressManagerTest.java
@@ -28,8 +28,6 @@
 
 import com.google.common.eventbus.EventBus;
 
-import mockit.Deencapsulation;
-
 class AddressManagerTest {
   private static final List<String> addresses = new ArrayList<>();
 
@@ -47,7 +45,7 @@
     Assertions.assertNotNull(addressManager1);
     Assertions.assertNotNull(addressManager2);
 
-    List<String> addresses = Deencapsulation.getField(addressManager1, "addresses");
+    List<String> addresses = addressManager1.getAddresses();
     Assertions.assertEquals(2, addresses.size());
     Assertions.assertEquals("http://127.0.0.1:30103/v3/project", addresses.get(0));
 
@@ -69,10 +67,10 @@
     RefreshEndpointEvent event = new RefreshEndpointEvent(zoneAndRegion, "CseConfigCenter");
     addressManager1.refreshEndpoint(event, "CseConfigCenter");
 
-    List<String> availableZone = Deencapsulation.getField(addressManager1, "availableZone");
+    List<String> availableZone = addressManager1.getAvailableZone();
     Assertions.assertEquals("http://127.0.0.3:30100/v3/project", availableZone.get(0));
 
-    List<String> availableRegion = Deencapsulation.getField(addressManager1, "availableRegion");
+    List<String> availableRegion = addressManager1.getAvailableRegion();
     Assertions.assertEquals("http://127.0.0.4:30100/v3/project", availableRegion.get(0));
 
     Assertions.assertEquals("http://127.0.0.3:30100/v3/project", addressManager1.address());
diff --git a/dynamic-config/config-nacos/pom.xml b/dynamic-config/config-nacos/pom.xml
index bf12272..1f279d0 100644
--- a/dynamic-config/config-nacos/pom.xml
+++ b/dynamic-config/config-nacos/pom.xml
@@ -41,10 +41,5 @@
       <groupId>com.alibaba.nacos</groupId>
       <artifactId>nacos-client</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.jmockit</groupId>
-      <artifactId>jmockit</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/dynamic-config/config-nacos/src/main/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImpl.java b/dynamic-config/config-nacos/src/main/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImpl.java
index abed303..528553c 100644
--- a/dynamic-config/config-nacos/src/main/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImpl.java
+++ b/dynamic-config/config-nacos/src/main/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImpl.java
@@ -27,6 +27,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.config.ConfigMapping;
 import org.apache.servicecomb.config.nacos.client.ConfigurationAction;
@@ -52,6 +53,11 @@
 
   private final UpdateHandler updateHandler = new UpdateHandler();
 
+  @VisibleForTesting
+  UpdateHandler getUpdateHandler() {
+    return updateHandler;
+  }
+
   @Override
   public int getOrder() {
     return ORDER_BASE * 4;
diff --git a/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImplTest.java b/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImplTest.java
index f388fcb..aa51be7 100644
--- a/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImplTest.java
+++ b/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/archaius/sources/NacosConfigurationSourceImplTest.java
@@ -28,27 +28,25 @@
 
 import com.netflix.config.WatchedUpdateListener;
 
-import mockit.Deencapsulation;
-
 public class NacosConfigurationSourceImplTest {
   @Test
   public void testCreate() throws Exception {
     NacosConfigurationSourceImpl nacosConfigurationSource = new NacosConfigurationSourceImpl();
     nacosConfigurationSource.addUpdateListener(result -> Assertions.assertFalse(result.getAdded().isEmpty()));
-    UpdateHandler udateHandler = Deencapsulation.getField(nacosConfigurationSource, UpdateHandler.class);
+    UpdateHandler updateHandler = nacosConfigurationSource.getUpdateHandler();
     Map<String, Object> createItems = new HashMap<>();
     createItems.put("nacosTestKey", "testValue");
-    udateHandler.handle(ConfigurationAction.CREATE, createItems);
+    updateHandler.handle(ConfigurationAction.CREATE, createItems);
   }
 
   @Test
   public void testUpdate() throws Exception {
     NacosConfigurationSourceImpl nacosConfigurationSource = new NacosConfigurationSourceImpl();
     nacosConfigurationSource.addUpdateListener(result -> Assertions.assertFalse(result.getChanged().isEmpty()));
-    UpdateHandler udateHandler = Deencapsulation.getField(nacosConfigurationSource, UpdateHandler.class);
+    UpdateHandler updateHandler = nacosConfigurationSource.getUpdateHandler();
     Map<String, Object> updateItems = new HashMap<>();
     updateItems.put("nacosTestKey", "testValue");
-    udateHandler.handle(ConfigurationAction.SET, updateItems);
+    updateHandler.handle(ConfigurationAction.SET, updateItems);
 
   }
 
@@ -56,12 +54,12 @@
   public void testDelete() throws Exception {
     NacosConfigurationSourceImpl nacosConfigurationSource = new NacosConfigurationSourceImpl();
     nacosConfigurationSource.addUpdateListener(result -> Assertions.assertFalse(result.getDeleted().isEmpty()));
-    UpdateHandler udateHandler = Deencapsulation.getField(nacosConfigurationSource, UpdateHandler.class);
+    UpdateHandler updateHandler = nacosConfigurationSource.getUpdateHandler();
     Map<String, Object> deleteItems = new HashMap<>();
     deleteItems.put("nacosTestKey", "testValue");
 
     nacosConfigurationSource.getCurrentData().put("nacosTestKey", "testValue");
-    udateHandler.handle(ConfigurationAction.DELETE, deleteItems);
+    updateHandler.handle(ConfigurationAction.DELETE, deleteItems);
     Assertions.assertTrue(nacosConfigurationSource.getCurrentData().isEmpty());
   }
 
diff --git a/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/client/NacosClientTest.java b/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/client/NacosClientTest.java
index 4b82a8f..3a49bbc 100644
--- a/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/client/NacosClientTest.java
+++ b/dynamic-config/config-nacos/src/test/java/org/apache/servicecomb/config/nacos/client/NacosClientTest.java
@@ -23,7 +23,6 @@
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.config.nacos.archaius.sources.NacosConfigurationSourceImpl;
 import org.apache.servicecomb.config.nacos.archaius.sources.NacosConfigurationSourceImpl.UpdateHandler;
-import mockit.Deencapsulation;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -35,20 +34,6 @@
   }
 
   @Test
-  public void refreshNacosConfig() {
-
-    NacosConfigurationSourceImpl impl = new NacosConfigurationSourceImpl();
-    UpdateHandler updateHandler = impl.new UpdateHandler();
-    NacosClient nacosClient = new NacosClient(updateHandler);
-    //before open this code,you need to start nacos-console first
-    //and make sure the address is 127.0.0.1:8848
-    //nacosClient.refreshNacosConfig();
-    Map<String, Object> originMap = Deencapsulation.getField(nacosClient, "originalConfigMap");
-    originMap.put("nacos", "12345");
-    Assertions.assertEquals(1, originMap.size());
-  }
-
-  @Test
   public void testCompareChangedConfig() {
     boolean status = true;
     Map<String, Object> before = new HashMap<>();