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

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


The following commit(s) were added to refs/heads/master by this push:
     new ec14182d3fe Use MemberAccessor for set fields (#32879)
ec14182d3fe is described below

commit ec14182d3fe223a27f2c668364b628bfc241a274
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 15 14:40:58 2024 +0800

    Use MemberAccessor for set fields (#32879)
---
 .../ReadwriteSplittingDataSourceRouterTest.java    | 16 +++++----------
 .../merge/dql/orderby/OrderByValueTest.java        | 16 ++++++---------
 .../token/ShardingTokenGenerateBuilderTest.java    |  2 +-
 .../rdl/resource/AlterStorageUnitExecutorTest.java |  2 +-
 .../resource/RegisterStorageUnitExecutorTest.java  |  2 +-
 .../parser/cache/SQLStatementCacheLoaderTest.java  |  2 +-
 .../driver/jdbc/adapter/StatementAdapterTest.java  |  2 +-
 .../connection/ShardingSphereConnectionTest.java   |  2 +-
 .../persist/MetaDataPersistServiceTest.java        |  2 +-
 ...eataATShardingSphereTransactionManagerTest.java | 10 +++++-----
 .../xa/XAShardingSphereTransactionManagerTest.java |  4 ++--
 .../dispatch/ProcessListChangedSubscriberTest.java | 15 +++++++-------
 .../DatabaseMetaDataChangedListenerTest.java       | 15 ++++++--------
 .../ClusterMetaDataManagerPersistServiceTest.java  | 15 ++++----------
 .../workerid/ClusterWorkerIdGeneratorTest.java     | 23 ++++------------------
 .../lock/impl/DefaultDistributedLockTest.java      |  8 ++------
 .../cluster/etcd/EtcdRepositoryTest.java           | 10 +++-------
 .../SessionConnectionReconnectListenerTest.java    |  7 ++-----
 ...tandaloneMetaDataManagerPersistServiceTest.java | 12 +++--------
 .../sql/parser/api/SQLParserExecutorTest.java      |  4 ++--
 .../database/cache/ParseTreeCacheLoaderTest.java   |  2 +-
 .../backend/connector/DatabaseConnectorTest.java   |  6 ++----
 .../backend/connector/MockConnectionUtils.java     |  2 +-
 .../ProxyDatabaseConnectionManagerTest.java        |  2 +-
 .../ImportDatabaseConfigurationExecutorTest.java   |  4 ++--
 .../ral/updatable/ImportMetaDataExecutorTest.java  |  6 +++---
 .../TransactionBackendHandlerFactoryTest.java      |  2 +-
 .../query/MySQLComQueryPacketExecutorTest.java     | 16 +++++----------
 28 files changed, 75 insertions(+), 134 deletions(-)

diff --git 
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingDataSourceRouterTest.java
 
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingDataSourceRouterTest.java
index ddb56b78533..2ca27d391b2 100644
--- 
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingDataSourceRouterTest.java
+++ 
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingDataSourceRouterTest.java
@@ -31,8 +31,8 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 
-import java.lang.reflect.Field;
 import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -54,30 +54,24 @@ class ReadwriteSplittingDataSourceRouterTest {
     @Mock
     private HintValueContext hintValueContext;
     
+    @SneakyThrows(ReflectiveOperationException.class)
     @Test
     void assertRouteWithQualifiedRouters() {
         ReadwriteSplittingDataSourceRouter router = new 
ReadwriteSplittingDataSourceRouter(rule, mock(ConnectionContext.class));
         QualifiedReadwriteSplittingDataSourceRouter qualifiedRouter = 
mock(QualifiedReadwriteSplittingDataSourceRouter.class);
         when(qualifiedRouter.isQualified(sqlStatementContext, rule, 
hintValueContext)).thenReturn(true);
         when(qualifiedRouter.route(rule)).thenReturn("qualified_ds");
-        setQualifiedRouters(router, qualifiedRouter);
+        
Plugins.getMemberAccessor().set(ReadwriteSplittingDataSourceRouter.class.getDeclaredField("qualifiedRouters"),
 router, qualifiedRouter);
         assertThat(router.route(sqlStatementContext, hintValueContext), 
is("qualified_ds"));
     }
     
+    @SneakyThrows(ReflectiveOperationException.class)
     @Test
     void assertRouteWithStandardRouters() {
         when(rule.getLoadBalancer().getTargetName(any(), 
any())).thenReturn("standard_ds");
         ReadwriteSplittingDataSourceRouter router = new 
ReadwriteSplittingDataSourceRouter(rule, mock(ConnectionContext.class));
-        setQualifiedRouters(router, 
mock(QualifiedReadwriteSplittingDataSourceRouter.class));
+        
Plugins.getMemberAccessor().set(ReadwriteSplittingDataSourceRouter.class.getDeclaredField("qualifiedRouters"),
 router, mock(QualifiedReadwriteSplittingDataSourceRouter.class));
         
when(ShardingSphereServiceLoader.getServiceInstances(ReadDataSourcesFilter.class)).thenReturn(Collections.emptyList());
         assertThat(router.route(sqlStatementContext, hintValueContext), 
is("standard_ds"));
     }
-    
-    @SneakyThrows(ReflectiveOperationException.class)
-    private void setQualifiedRouters(final ReadwriteSplittingDataSourceRouter 
router, final QualifiedReadwriteSplittingDataSourceRouter qualifiedRouter) {
-        Field field = router.getClass().getDeclaredField("qualifiedRouters");
-        field.setAccessible(true);
-        field.set(router, Collections.singleton(qualifiedRouter));
-        field.setAccessible(false);
-    }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
index f99f44339d9..1e7067a61a4 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
@@ -45,7 +45,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectState
 import 
org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
 import org.junit.jupiter.api.Test;
 import org.mockito.internal.configuration.plugins.Plugins;
-import org.mockito.plugins.MemberAccessor;
 
 import java.sql.SQLException;
 import java.util.Arrays;
@@ -98,15 +97,14 @@ class OrderByValueTest {
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.ASC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.ASC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue1, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue1, Arrays.asList(false, false));
         assertTrue(orderByValue1.next());
         QueryResult queryResult2 = createQueryResult("3", "4");
         OrderByValue orderByValue2 = new OrderByValue(queryResult2, 
Arrays.asList(
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.ASC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.ASC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue2, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue2, Arrays.asList(false, false));
         assertTrue(orderByValue2.next());
         assertTrue(orderByValue1.compareTo(orderByValue2) < 0);
         assertFalse(orderByValue1.getQueryResult().next());
@@ -156,15 +154,14 @@ class OrderByValueTest {
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.DESC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.DESC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue1, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue1, Arrays.asList(false, false));
         assertTrue(orderByValue1.next());
         QueryResult queryResult2 = createQueryResult("3", "4");
         OrderByValue orderByValue2 = new OrderByValue(queryResult2, 
Arrays.asList(
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.DESC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.DESC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue2, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue2, Arrays.asList(false, false));
         assertTrue(orderByValue2.next());
         assertTrue(orderByValue1.compareTo(orderByValue2) > 0);
         assertFalse(orderByValue1.getQueryResult().next());
@@ -208,15 +205,14 @@ class OrderByValueTest {
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.ASC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.DESC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue1, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue1, Arrays.asList(false, false));
         assertTrue(orderByValue1.next());
         QueryResult queryResult2 = createQueryResult("1", "2");
         OrderByValue orderByValue2 = new OrderByValue(queryResult2, 
Arrays.asList(
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, 
OrderDirection.ASC, NullsOrderType.FIRST)),
                 createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, 
OrderDirection.DESC, NullsOrderType.FIRST))),
                 selectStatementContext, schema);
-        
accessor.set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), 
orderByValue2, Arrays.asList(false, false));
+        
Plugins.getMemberAccessor().set(OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"),
 orderByValue2, Arrays.asList(false, false));
         assertTrue(orderByValue2.next());
         assertThat(orderByValue1.compareTo(orderByValue2), is(0));
         assertFalse(orderByValue1.getQueryResult().next());
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
index b04a26c93a6..fc0b087bdc2 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingTokenGenerateBuilderTest.java
@@ -82,6 +82,6 @@ class ShardingTokenGenerateBuilderTest {
     }
     
     private void assertField(final SQLTokenGenerator sqlTokenGenerator, final 
Object filedInstance, final String fieldName) throws Exception {
-        
assertThat(Plugins.getMemberAccessor().get(sqlTokenGenerator.getClass().getDeclaredField(fieldName),
 sqlTokenGenerator), is(filedInstance));
+        
assertThat(Plugins.getMemberAccessor().get(SQLTokenGenerator.class.getDeclaredField(fieldName),
 sqlTokenGenerator), is(filedInstance));
     }
 }
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
index c9c47ae891d..516c552150a 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
@@ -59,7 +59,7 @@ class AlterStorageUnitExecutorTest {
     @BeforeEach
     void setUp() throws ReflectiveOperationException {
         executor.setDatabase(database);
-        
Plugins.getMemberAccessor().set(executor.getClass().getDeclaredField("validateHandler"),
 executor, mock(DistSQLDataSourcePoolPropertiesValidator.class));
+        
Plugins.getMemberAccessor().set(AlterStorageUnitExecutor.class.getDeclaredField("validateHandler"),
 executor, mock(DistSQLDataSourcePoolPropertiesValidator.class));
     }
     
     @Test
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
index e06efe08be8..7167437d0e0 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
@@ -60,7 +60,7 @@ class RegisterStorageUnitExecutorTest {
         when(database.getName()).thenReturn("foo_db");
         when(database.getRuleMetaData()).thenReturn(mock(RuleMetaData.class));
         executor.setDatabase(database);
-        
Plugins.getMemberAccessor().set(executor.getClass().getDeclaredField("validateHandler"),
 executor, mock(DistSQLDataSourcePoolPropertiesValidator.class));
+        
Plugins.getMemberAccessor().set(RegisterStorageUnitExecutor.class.getDeclaredField("validateHandler"),
 executor, mock(DistSQLDataSourcePoolPropertiesValidator.class));
     }
     
     @Test
diff --git 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
index 3964cd1f97a..12fff0aab83 100644
--- 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
+++ 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
@@ -38,7 +38,7 @@ class SQLStatementCacheLoaderTest {
     void assertSQLStatementCacheLoad() throws ReflectiveOperationException {
         SQLStatementCacheLoader sqlStatementCacheLoader = new 
SQLStatementCacheLoader(TypedSPILoader.getService(DatabaseType.class, "MySQL"), 
new CacheOption(128, 1024L));
         SQLStatementParserExecutor executor = 
mock(SQLStatementParserExecutor.class, RETURNS_DEEP_STUBS);
-        
Plugins.getMemberAccessor().set(sqlStatementCacheLoader.getClass().getDeclaredField("sqlStatementParserExecutor"),
 sqlStatementCacheLoader, executor);
+        
Plugins.getMemberAccessor().set(SQLStatementCacheLoader.class.getDeclaredField("sqlStatementParserExecutor"),
 sqlStatementCacheLoader, executor);
         assertThat(sqlStatementCacheLoader.load(SQL), isA(SQLStatement.class));
     }
 }
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
index 17a8e2de8e4..3b68f95f3a4 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
@@ -268,6 +268,6 @@ class StatementAdapterTest {
     
     @SneakyThrows(ReflectiveOperationException.class)
     private void setExecutionContext(final ShardingSphereStatement statement) {
-        
Plugins.getMemberAccessor().set(statement.getClass().getDeclaredField("sqlStatementContext"),
 statement, mock(SQLStatementContext.class));
+        
Plugins.getMemberAccessor().set(ShardingSphereStatement.class.getDeclaredField("sqlStatementContext"),
 statement, mock(SQLStatementContext.class));
     }
 }
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
index 7a7aa07e2d3..136ab424eaf 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
@@ -136,7 +136,7 @@ class ShardingSphereConnectionTest {
         DriverDatabaseConnectionManager result = 
mock(DriverDatabaseConnectionManager.class);
         
when(result.getConnectionTransaction()).thenReturn(connectionTransaction);
         when(result.getConnectionContext()).thenReturn(new 
ConnectionContext(Collections::emptySet));
-        
Plugins.getMemberAccessor().set(connection.getClass().getDeclaredField("databaseConnectionManager"),
 connection, result);
+        
Plugins.getMemberAccessor().set(ShardingSphereConnection.class.getDeclaredField("databaseConnectionManager"),
 connection, result);
         return result;
     }
     
diff --git 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
index 8ae3e463363..e280d603d5c 100644
--- 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
+++ 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
@@ -59,7 +59,7 @@ class MetaDataPersistServiceTest {
     }
     
     private void setField(final String name, final Object value) throws 
ReflectiveOperationException {
-        
Plugins.getMemberAccessor().set(metaDataPersistService.getClass().getDeclaredField(name),
 metaDataPersistService, value);
+        
Plugins.getMemberAccessor().set(MetaDataPersistService.class.getDeclaredField(name),
 metaDataPersistService, value);
     }
     
     @Test
diff --git 
a/kernel/transaction/type/base/seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
 
b/kernel/transaction/type/base/seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
index 5ca0caf94c6..8c68ebca2d3 100644
--- 
a/kernel/transaction/type/base/seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
+++ 
b/kernel/transaction/type/base/seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
@@ -191,7 +191,7 @@ class SeataATShardingSphereTransactionManagerTest {
     @SneakyThrows(ReflectiveOperationException.class)
     @SuppressWarnings("unchecked")
     private Map<String, DataSource> getDataSourceMap() {
-        return (Map<String, DataSource>) 
Plugins.getMemberAccessor().get(seataTransactionManager.getClass().getDeclaredField("dataSourceMap"),
 seataTransactionManager);
+        return (Map<String, DataSource>) 
Plugins.getMemberAccessor().get(SeataATShardingSphereTransactionManager.class.getDeclaredField("dataSourceMap"),
 seataTransactionManager);
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
@@ -202,9 +202,9 @@ class SeataATShardingSphereTransactionManagerTest {
     
     @SneakyThrows(ReflectiveOperationException.class)
     private void releaseRpcClient() {
-        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.getInstance().getClass().getDeclaredField("initialized"),
 TmNettyRemotingClient.getInstance(), new AtomicBoolean(false));
-        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.getInstance().getClass().getDeclaredField("instance"),
 TmNettyRemotingClient.getInstance(), null);
-        
Plugins.getMemberAccessor().set(RmNettyRemotingClient.getInstance().getClass().getDeclaredField("initialized"),
 RmNettyRemotingClient.getInstance(), new AtomicBoolean(false));
-        
Plugins.getMemberAccessor().set(RmNettyRemotingClient.getInstance().getClass().getDeclaredField("instance"),
 RmNettyRemotingClient.getInstance(), null);
+        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.class.getDeclaredField("initialized"),
 TmNettyRemotingClient.getInstance(), new AtomicBoolean(false));
+        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.class.getDeclaredField("instance"),
 TmNettyRemotingClient.getInstance(), null);
+        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.class.getDeclaredField("initialized"),
 RmNettyRemotingClient.getInstance(), new AtomicBoolean(false));
+        
Plugins.getMemberAccessor().set(TmNettyRemotingClient.class.getDeclaredField("instance"),
 RmNettyRemotingClient.getInstance(), null);
     }
 }
diff --git 
a/kernel/transaction/type/xa/core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
 
b/kernel/transaction/type/xa/core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
index 36f34733aea..d2b8487aa82 100644
--- 
a/kernel/transaction/type/xa/core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
+++ 
b/kernel/transaction/type/xa/core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
@@ -137,13 +137,13 @@ class XAShardingSphereTransactionManagerTest {
     @SneakyThrows(ReflectiveOperationException.class)
     @SuppressWarnings("unchecked")
     private Map<String, XATransactionDataSource> getCachedDataSources() {
-        return (Map<String, XATransactionDataSource>) 
Plugins.getMemberAccessor().get(xaTransactionManager.getClass().getDeclaredField("cachedDataSources"),
 xaTransactionManager);
+        return (Map<String, XATransactionDataSource>) 
Plugins.getMemberAccessor().get(XAShardingSphereTransactionManager.class.getDeclaredField("cachedDataSources"),
 xaTransactionManager);
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
     @SuppressWarnings("unchecked")
     private ThreadLocal<Map<Transaction, Connection>> 
getEnlistedTransactions(final XATransactionDataSource transactionDataSource) {
-        return (ThreadLocal<Map<Transaction, Connection>>) 
Plugins.getMemberAccessor().get(transactionDataSource.getClass().getDeclaredField("enlistedTransactions"),
 transactionDataSource);
+        return (ThreadLocal<Map<Transaction, Connection>>) 
Plugins.getMemberAccessor().get(XATransactionDataSource.class.getDeclaredField("enlistedTransactions"),
 transactionDataSource);
     }
     
     private Map<String, DataSource> createDataSources(final DatabaseType 
databaseType) {
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ProcessListChangedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ProcessListChangedSubscriberTest.java
index f9bbe6a6545..64a93bc3abf 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ProcessListChangedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ProcessListChangedSubscriberTest.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import lombok.SneakyThrows;
 import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
@@ -32,14 +33,15 @@ import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
-import 
org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.KillLocalProcessCompletedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.KillLocalProcessEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.ReportLocalProcessesCompletedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.ReportLocalProcessesEvent;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
+import 
org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.persist.PersistServiceFacade;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 import org.awaitility.Awaitility;
@@ -50,7 +52,6 @@ import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.plugins.MemberAccessor;
 
 import java.sql.SQLException;
 import java.util.Collections;
@@ -81,15 +82,15 @@ class ProcessListChangedSubscriberTest {
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
+    @SneakyThrows(ReflectiveOperationException.class)
     @BeforeEach
-    void setUp() throws SQLException, NoSuchFieldException, 
IllegalAccessException {
+    void setUp() throws SQLException {
         EventBusContext eventBusContext = new EventBusContext();
         contextManager = new 
ClusterContextManagerBuilder().build(createContextManagerBuilderParameter(), 
eventBusContext);
         
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getPersistServiceFacade().getMetaDataPersistService(),
 new ShardingSphereMetaData(createDatabases(),
                 
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(), 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
                 new ConfigurationProperties(new Properties()))));
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(contextManager.getPersistServiceFacade().getClass().getDeclaredField("repository"),
 contextManager.getPersistServiceFacade(), repository);
+        
Plugins.getMemberAccessor().set(PersistServiceFacade.class.getDeclaredField("repository"),
 contextManager.getPersistServiceFacade(), repository);
         subscriber = new ProcessListChangedSubscriber(contextManager);
     }
     
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/listener/DatabaseMetaDataChangedListenerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/listener/DatabaseMetaDataChangedListenerTest.java
index 299d577982c..0a24dd7de06 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/listener/DatabaseMetaDataChangedListenerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/listener/DatabaseMetaDataChangedListenerTest.java
@@ -44,11 +44,11 @@ import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.ArgumentsProvider;
 import org.junit.jupiter.params.provider.ArgumentsSource;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.junit.jupiter.MockitoSettings;
 import org.mockito.quality.Strictness;
 
-import java.lang.reflect.Field;
 import java.util.Optional;
 import java.util.stream.Stream;
 
@@ -71,17 +71,14 @@ class DatabaseMetaDataChangedListenerTest {
     @BeforeEach
     void setUp() {
         listener = new DatabaseMetaDataChangedListener(eventBusContext);
-        RuleConfigurationEventBuilder builder = 
mock(RuleConfigurationEventBuilder.class);
-        when(builder.build(eq("foo_db"), 
any(DataChangedEvent.class))).thenReturn(Optional.of(new 
AlterUniqueRuleItemEvent("foo_db", "key", "value", "type")));
-        setField(builder);
+        setMockedBuilder();
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
-    private void setField(final RuleConfigurationEventBuilder builder) {
-        Field field = 
DatabaseMetaDataChangedListener.class.getDeclaredField("builder");
-        field.setAccessible(true);
-        field.set(listener, builder);
-        field.setAccessible(false);
+    private void setMockedBuilder() {
+        RuleConfigurationEventBuilder builder = 
mock(RuleConfigurationEventBuilder.class);
+        when(builder.build(eq("foo_db"), 
any(DataChangedEvent.class))).thenReturn(Optional.of(new 
AlterUniqueRuleItemEvent("foo_db", "key", "value", "type")));
+        
Plugins.getMemberAccessor().set(DatabaseMetaDataChangedListener.class.getDeclaredField("builder"),
 listener, builder);
     }
     
     @ParameterizedTest(name = "{0}")
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistServiceTest.java
index cb45774742b..2bd61ce0f9e 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistServiceTest.java
@@ -34,9 +34,9 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import java.lang.reflect.Field;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -66,19 +66,12 @@ class ClusterMetaDataManagerPersistServiceTest {
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private MetaDataContextManager metaDataContextManager;
     
+    @SneakyThrows(ReflectiveOperationException.class)
     @BeforeEach
     void setUp() {
         metaDataManagerPersistService = new 
ClusterMetaDataManagerPersistService(mock(PersistRepository.class), 
metaDataContextManager);
-        setField("metaDataPersistService", metaDataPersistService);
-        setField("listenerAssistedPersistService", 
listenerAssistedPersistService);
-    }
-    
-    @SneakyThrows(ReflectiveOperationException.class)
-    void setField(final String filedName, final Object fieldValue) {
-        Field field = 
metaDataManagerPersistService.getClass().getDeclaredField(filedName);
-        field.setAccessible(true);
-        field.set(metaDataManagerPersistService, fieldValue);
-        field.setAccessible(false);
+        
Plugins.getMemberAccessor().set(ClusterMetaDataManagerPersistService.class.getDeclaredField("metaDataPersistService"),
 metaDataManagerPersistService, metaDataPersistService);
+        
Plugins.getMemberAccessor().set(ClusterMetaDataManagerPersistService.class.getDeclaredField("listenerAssistedPersistService"),
 metaDataManagerPersistService, listenerAssistedPersistService);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
index 7e60a27ad16..e7f4d959d2e 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
@@ -29,9 +29,9 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import java.lang.reflect.Field;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Optional;
@@ -54,11 +54,12 @@ class ClusterWorkerIdGeneratorTest {
     @Mock
     private ReservationPersistService reservationPersistService;
     
+    @SneakyThrows(ReflectiveOperationException.class)
     @BeforeEach
     void setUp() {
         workerIdGenerator = new 
ClusterWorkerIdGenerator(mock(ClusterPersistRepository.class), "foo_id");
-        setComputeNodePersistService();
-        setReservationPersistService();
+        
Plugins.getMemberAccessor().set(ClusterWorkerIdGenerator.class.getDeclaredField("computeNodePersistService"),
 workerIdGenerator, computeNodePersistService);
+        
Plugins.getMemberAccessor().set(ClusterWorkerIdGenerator.class.getDeclaredField("reservationPersistService"),
 workerIdGenerator, reservationPersistService);
     }
     
     @Test
@@ -90,20 +91,4 @@ class ClusterWorkerIdGeneratorTest {
         assertThat(workerIdGenerator.generate(PropertiesBuilder.build(new 
Property(WorkerIdGenerator.WORKER_ID_KEY, "100"))), is(10));
         assertThat(workerIdGenerator.generate(PropertiesBuilder.build(new 
Property(WorkerIdGenerator.WORKER_ID_KEY, "100"))), is(10));
     }
-    
-    private void setComputeNodePersistService() {
-        setField("computeNodePersistService", computeNodePersistService);
-    }
-    
-    private void setReservationPersistService() {
-        setField("reservationPersistService", reservationPersistService);
-    }
-    
-    @SneakyThrows(ReflectiveOperationException.class)
-    private void setField(final String fieldName, final Object fieldValue) {
-        Field field = workerIdGenerator.getClass().getDeclaredField(fieldName);
-        field.setAccessible(true);
-        field.set(workerIdGenerator, fieldValue);
-        field.setAccessible(false);
-    }
 }
diff --git 
a/mode/type/cluster/repository/api/src/test/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLockTest.java
 
b/mode/type/cluster/repository/api/src/test/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLockTest.java
index 59b86c0a5b7..20b346fe5a8 100644
--- 
a/mode/type/cluster/repository/api/src/test/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLockTest.java
+++ 
b/mode/type/cluster/repository/api/src/test/java/org/apache/shardingsphere/mode/repository/cluster/lock/impl/DefaultDistributedLockTest.java
@@ -27,9 +27,9 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import java.lang.reflect.Field;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -101,10 +101,6 @@ class DefaultDistributedLockTest {
     @SuppressWarnings("unchecked")
     @SneakyThrows(ReflectiveOperationException.class)
     private Map<Thread, ?> getThreadData() {
-        Field field = 
distributedLock.getClass().getDeclaredField("threadData");
-        field.setAccessible(true);
-        Map<Thread, ?> result = (Map<Thread, ?>) field.get(distributedLock);
-        field.setAccessible(false);
-        return result;
+        return (Map<Thread, ?>) 
Plugins.getMemberAccessor().get(DefaultDistributedLock.class.getDeclaredField("threadData"),
 distributedLock);
     }
 }
diff --git 
a/mode/type/cluster/repository/provider/etcd/src/test/java/org/apache/shardingsphere/mode/repository/cluster/etcd/EtcdRepositoryTest.java
 
b/mode/type/cluster/repository/provider/etcd/src/test/java/org/apache/shardingsphere/mode/repository/cluster/etcd/EtcdRepositoryTest.java
index 995afdc6cca..72c9a3074d3 100644
--- 
a/mode/type/cluster/repository/provider/etcd/src/test/java/org/apache/shardingsphere/mode/repository/cluster/etcd/EtcdRepositoryTest.java
+++ 
b/mode/type/cluster/repository/provider/etcd/src/test/java/org/apache/shardingsphere/mode/repository/cluster/etcd/EtcdRepositoryTest.java
@@ -42,7 +42,6 @@ import org.mockito.Mock;
 import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.plugins.MemberAccessor;
 import org.mockito.quality.Strictness;
 
 import java.nio.charset.StandardCharsets;
@@ -107,14 +106,12 @@ class EtcdRepositoryTest {
     @SneakyThrows(ReflectiveOperationException.class)
     private void setClient() {
         mockClient();
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        accessor.set(repository.getClass().getDeclaredField("client"), 
repository, client);
+        
Plugins.getMemberAccessor().set(EtcdRepository.class.getDeclaredField("client"),
 repository, client);
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
     private void setProperties() {
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        accessor.set(repository.getClass().getDeclaredField("etcdProps"), 
repository, new EtcdProperties(new Properties()));
+        
Plugins.getMemberAccessor().set(EtcdRepository.class.getDeclaredField("etcdProps"),
 repository, new EtcdProperties(new Properties()));
     }
     
     @SuppressWarnings("unchecked")
@@ -278,8 +275,7 @@ class EtcdRepositoryTest {
                 .setValue(ByteString.copyFromUtf8("value1")).build();
         KeyValue keyValue = new KeyValue(keyValue1, ByteSequence.EMPTY);
         events.add(new WatchEvent(keyValue, mock(KeyValue.class), eventType));
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        accessor.set(result.getClass().getDeclaredField("events"), result, 
events);
+        
Plugins.getMemberAccessor().set(WatchResponse.class.getDeclaredField("events"), 
result, events);
         return result;
     }
 }
diff --git 
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
 
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
index ff82e7a050c..8ac280a61bb 100644
--- 
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
+++ 
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
@@ -27,9 +27,9 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import java.lang.reflect.Field;
 import java.util.Properties;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -78,10 +78,7 @@ class SessionConnectionReconnectListenerTest {
     @SneakyThrows(ReflectiveOperationException.class)
     private SessionConnectionReconnectListener 
getSessionConnectionReconnectListener(final ComputeNodePersistService 
computeNodePersistService) {
         SessionConnectionReconnectListener result = new 
SessionConnectionReconnectListener(computeNodeInstanceContext, repository);
-        Field field = 
result.getClass().getDeclaredField("computeNodePersistService");
-        field.setAccessible(true);
-        field.set(result, computeNodePersistService);
-        field.setAccessible(false);
+        
Plugins.getMemberAccessor().set(SessionConnectionReconnectListener.class.getDeclaredField("computeNodePersistService"),
 result, computeNodePersistService);
         return result;
     }
 }
diff --git 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistServiceTest.java
 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistServiceTest.java
index 07f37ea1941..5a6ae0ac55d 100644
--- 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistServiceTest.java
@@ -43,9 +43,9 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
+import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import java.lang.reflect.Field;
 import java.sql.SQLException;
 import java.util.Arrays;
 import java.util.Collection;
@@ -78,10 +78,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
     @SneakyThrows(ReflectiveOperationException.class)
     void setUp() {
         metaDataManagerPersistService = new 
StandaloneMetaDataManagerPersistService(mock(PersistRepository.class), 
metaDataContextManager);
-        Field field = 
metaDataManagerPersistService.getClass().getDeclaredField("metaDataPersistService");
-        field.setAccessible(true);
-        field.set(metaDataManagerPersistService, metaDataPersistService);
-        field.setAccessible(false);
+        
Plugins.getMemberAccessor().set(StandaloneMetaDataManagerPersistService.class.getDeclaredField("metaDataPersistService"),
 metaDataManagerPersistService, metaDataPersistService);
     }
     
     @Test
@@ -246,9 +243,6 @@ class StandaloneMetaDataManagerPersistServiceTest {
     
     @SneakyThrows(ReflectiveOperationException.class)
     private void setRuleConfigurationEventBuilder(final 
RuleConfigurationEventBuilder ruleConfigurationEventBuilder) {
-        Field field = 
metaDataManagerPersistService.getClass().getDeclaredField("ruleConfigurationEventBuilder");
-        field.setAccessible(true);
-        field.set(metaDataManagerPersistService, 
ruleConfigurationEventBuilder);
-        field.setAccessible(false);
+        
Plugins.getMemberAccessor().set(StandaloneMetaDataManagerPersistService.class.getDeclaredField("ruleConfigurationEventBuilder"),
 metaDataManagerPersistService, ruleConfigurationEventBuilder);
     }
 }
diff --git 
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
 
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
index 8353acb7924..20743e96263 100644
--- 
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
+++ 
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserExecutorTest.java
@@ -42,7 +42,7 @@ class SQLParserExecutorTest {
         
when(sqlParserExecutor.parse(SQL)).thenReturn(mock(ParseASTNode.class));
         CacheOption cacheOption = new CacheOption(128, 1024L);
         SQLParserEngine sqlParserEngine = new SQLParserEngine("FIXTURE", 
cacheOption);
-        
Plugins.getMemberAccessor().set(sqlParserEngine.getClass().getDeclaredField("sqlParserExecutor"),
 sqlParserEngine, sqlParserExecutor);
+        
Plugins.getMemberAccessor().set(SQLParserEngine.class.getDeclaredField("sqlParserExecutor"),
 sqlParserEngine, sqlParserExecutor);
         LoadingCache<String, ParseASTNode> parseTreeCache = 
Caffeine.newBuilder().softValues().initialCapacity(128)
                 .maximumSize(1024L).build(new CacheLoader<String, 
ParseASTNode>() {
                     
@@ -52,7 +52,7 @@ class SQLParserExecutorTest {
                         return sqlParserExecutor.parse(sql);
                     }
                 });
-        
Plugins.getMemberAccessor().set(sqlParserEngine.getClass().getDeclaredField("parseTreeCache"),
 sqlParserEngine, parseTreeCache);
+        
Plugins.getMemberAccessor().set(SQLParserEngine.class.getDeclaredField("parseTreeCache"),
 sqlParserEngine, parseTreeCache);
         sqlParserEngine.parse(SQL, true);
         verify(sqlParserExecutor).parse(SQL);
         sqlParserEngine.parse(SQL, true);
diff --git 
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
 
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
index ef79784ca60..7f3d1ba9689 100644
--- 
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
+++ 
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
@@ -37,7 +37,7 @@ class ParseTreeCacheLoaderTest {
     void assertParseTreeCacheLoader() throws ReflectiveOperationException {
         SQLParserExecutor sqlParserExecutor = mock(SQLParserExecutor.class, 
RETURNS_DEEP_STUBS);
         ParseTreeCacheLoader loader = new 
ParseTreeCacheLoader(TypedSPILoader.getService(DatabaseType.class, "FIXTURE"));
-        
Plugins.getMemberAccessor().set(loader.getClass().getDeclaredField("sqlParserExecutor"),
 loader, sqlParserExecutor);
+        
Plugins.getMemberAccessor().set(ParseTreeCacheLoader.class.getDeclaredField("sqlParserExecutor"),
 loader, sqlParserExecutor);
         assertThat(loader.load(SQL), isA(ParseASTNode.class));
     }
 }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
index 13d5e36690c..a47753305ad 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
@@ -65,7 +65,6 @@ import org.mockito.Mock;
 import org.mockito.MockedStatic;
 import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.plugins.MemberAccessor;
 import org.mockito.quality.Strictness;
 
 import java.lang.reflect.Field;
@@ -152,13 +151,12 @@ class DatabaseConnectorTest {
         assertThat(engine, instanceOf(DatabaseConnector.class));
         Field queryHeadersField = 
DatabaseConnector.class.getDeclaredField("queryHeaders");
         ShardingSphereDatabase database = createDatabaseMetaData();
-        MemberAccessor accessor = Plugins.getMemberAccessor();
         try (MockedStatic<DatabaseTypedSPILoader> spiLoader = 
mockStatic(DatabaseTypedSPILoader.class)) {
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(QueryHeaderBuilder.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"))).thenReturn(new 
QueryHeaderBuilderFixture());
-            accessor.set(queryHeadersField, engine,
+            Plugins.getMemberAccessor().set(queryHeadersField, engine,
                     Collections.singletonList(new 
QueryHeaderBuilderEngine(TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).build(createQueryResultMetaData(), database, 1)));
             Field mergedResultField = 
DatabaseConnector.class.getDeclaredField("mergedResult");
-            accessor.set(mergedResultField, engine, new 
MemoryMergedResult<ShardingSphereRule>(null, null, null, 
Collections.emptyList()) {
+            Plugins.getMemberAccessor().set(mergedResultField, engine, new 
MemoryMergedResult<ShardingSphereRule>(null, null, null, 
Collections.emptyList()) {
                 
                 @Override
                 protected List<MemoryQueryResultRow> init(final 
ShardingSphereRule rule, final ShardingSphereSchema schema,
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/MockConnectionUtils.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/MockConnectionUtils.java
index 26b792e836c..fee12dffe8d 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/MockConnectionUtils.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/MockConnectionUtils.java
@@ -47,7 +47,7 @@ final class MockConnectionUtils {
     static void setCachedConnections(final ProxyDatabaseConnectionManager 
databaseConnectionManager, final String dataSourceName, final int 
connectionSize) {
         Multimap<String, Connection> cachedConnections = HashMultimap.create();
         
cachedConnections.putAll(databaseConnectionManager.getConnectionSession().getUsedDatabaseName()
 + "." + dataSourceName, mockNewConnections(connectionSize));
-        
Plugins.getMemberAccessor().set(databaseConnectionManager.getClass().getDeclaredField("cachedConnections"),
 databaseConnectionManager, cachedConnections);
+        
Plugins.getMemberAccessor().set(ProxyDatabaseConnectionManager.class.getDeclaredField("cachedConnections"),
 databaseConnectionManager, cachedConnections);
     }
     
     /**
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
index b4633a7aac3..34f70664ee0 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
@@ -132,7 +132,7 @@ class ProxyDatabaseConnectionManagerTest {
     
     @AfterEach
     void clean() throws ReflectiveOperationException {
-        Field field = 
ProxyContext.getInstance().getClass().getDeclaredField("backendDataSource");
+        Field field = ProxyContext.class.getDeclaredField("backendDataSource");
         Object datasource = 
field.getType().getDeclaredConstructor().newInstance();
         Plugins.getMemberAccessor().set(field, ProxyContext.getInstance(), 
datasource);
     }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
index 17177580d9c..8d0f398ccf0 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
@@ -133,9 +133,9 @@ class ImportDatabaseConfigurationExecutorTest {
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         executor = new ImportDatabaseConfigurationExecutor();
         YamlDatabaseConfigurationImportExecutor databaseConfigImportExecutor = 
new YamlDatabaseConfigurationImportExecutor();
-        
Plugins.getMemberAccessor().set(executor.getClass().getDeclaredField("databaseConfigImportExecutor"),
 executor, databaseConfigImportExecutor);
+        
Plugins.getMemberAccessor().set(ImportDatabaseConfigurationExecutor.class.getDeclaredField("databaseConfigImportExecutor"),
 executor, databaseConfigImportExecutor);
         Plugins.getMemberAccessor().set(
-                
databaseConfigImportExecutor.getClass().getDeclaredField("validateHandler"), 
databaseConfigImportExecutor, 
mock(DistSQLDataSourcePoolPropertiesValidator.class));
+                
YamlDatabaseConfigurationImportExecutor.class.getDeclaredField("validateHandler"),
 databaseConfigImportExecutor, 
mock(DistSQLDataSourcePoolPropertiesValidator.class));
     }
     
     private ContextManager mockContextManager(final String databaseName) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutorTest.java
index dc1868db954..58b0e953b0e 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutorTest.java
@@ -118,9 +118,9 @@ class ImportMetaDataExecutorTest {
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         
when(ProxyContext.getInstance().databaseExists(feature)).thenReturn(true);
         YamlDatabaseConfigurationImportExecutor databaseConfigImportExecutor = 
new YamlDatabaseConfigurationImportExecutor();
-        
Plugins.getMemberAccessor().set(executor.getClass().getDeclaredField("databaseConfigImportExecutor"),
 executor, databaseConfigImportExecutor);
-        
Plugins.getMemberAccessor().set(databaseConfigImportExecutor.getClass().getDeclaredField("validateHandler"),
 databaseConfigImportExecutor,
-                mock(DistSQLDataSourcePoolPropertiesValidator.class));
+        
Plugins.getMemberAccessor().set(ImportMetaDataExecutor.class.getDeclaredField("databaseConfigImportExecutor"),
 executor, databaseConfigImportExecutor);
+        Plugins.getMemberAccessor().set(
+                
YamlDatabaseConfigurationImportExecutor.class.getDeclaredField("validateHandler"),
 databaseConfigImportExecutor, 
mock(DistSQLDataSourcePoolPropertiesValidator.class));
     }
     
     private ContextManager mockContextManager(final String feature) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
index b0492aab0ca..eb7881bda26 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
@@ -130,6 +130,6 @@ class TransactionBackendHandlerFactoryTest {
     
     @SneakyThrows(ReflectiveOperationException.class)
     private BackendTransactionManager getBackendTransactionManager(final 
TransactionBackendHandler transactionBackendHandler) {
-        return (BackendTransactionManager) 
Plugins.getMemberAccessor().get(transactionBackendHandler.getClass().getDeclaredField("backendTransactionManager"),
 transactionBackendHandler);
+        return (BackendTransactionManager) 
Plugins.getMemberAccessor().get(TransactionBackendHandler.class.getDeclaredField("backendTransactionManager"),
 transactionBackendHandler);
     }
 }
diff --git 
a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
 
b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
index 6f5803b1a88..93dbb02dc2c 100644
--- 
a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
+++ 
b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
@@ -58,7 +58,6 @@ import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.internal.configuration.plugins.Plugins;
 import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.plugins.MemberAccessor;
 import org.mockito.quality.Strictness;
 
 import java.sql.SQLException;
@@ -100,8 +99,7 @@ class MySQLComQueryPacketExecutorTest {
     @Test
     void assertIsQueryResponse() throws SQLException, NoSuchFieldException, 
IllegalAccessException {
         MySQLComQueryPacketExecutor mysqlComQueryPacketExecutor = new 
MySQLComQueryPacketExecutor(packet, connectionSession);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 mysqlComQueryPacketExecutor, proxyBackendHandler);
+        
Plugins.getMemberAccessor().set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 mysqlComQueryPacketExecutor, proxyBackendHandler);
         QueryHeader queryHeader = mock(QueryHeader.class);
         when(queryHeader.getColumnTypeName()).thenReturn("VARCHAR");
         when(proxyBackendHandler.execute()).thenReturn(new 
QueryResponseHeader(Collections.singletonList(queryHeader)));
@@ -112,8 +110,7 @@ class MySQLComQueryPacketExecutorTest {
     @Test
     void assertIsUpdateResponse() throws SQLException, NoSuchFieldException, 
IllegalAccessException {
         MySQLComQueryPacketExecutor mysqlComQueryPacketExecutor = new 
MySQLComQueryPacketExecutor(packet, connectionSession);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 mysqlComQueryPacketExecutor, proxyBackendHandler);
+        
Plugins.getMemberAccessor().set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 mysqlComQueryPacketExecutor, proxyBackendHandler);
         when(proxyBackendHandler.execute()).thenReturn(new 
UpdateResponseHeader(mock(SQLStatement.class)));
         mysqlComQueryPacketExecutor.execute();
         assertThat(mysqlComQueryPacketExecutor.getResponseType(), 
is(ResponseType.UPDATE));
@@ -130,8 +127,7 @@ class MySQLComQueryPacketExecutorTest {
         
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         MySQLComQueryPacketExecutor actual = new 
MySQLComQueryPacketExecutor(packet, connectionSession);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
+        
Plugins.getMemberAccessor().set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
         when(proxyBackendHandler.execute()).thenReturn(new 
UpdateResponseHeader(mock(SQLStatement.class)));
         Collection<DatabasePacket> actualPackets = actual.execute();
         assertThat(actualPackets.size(), is(1));
@@ -163,8 +159,7 @@ class MySQLComQueryPacketExecutorTest {
     @Test
     void assertNext() throws SQLException, NoSuchFieldException, 
IllegalAccessException {
         MySQLComQueryPacketExecutor actual = new 
MySQLComQueryPacketExecutor(packet, connectionSession);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
+        
Plugins.getMemberAccessor().set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
         when(proxyBackendHandler.next()).thenReturn(true, false);
         assertTrue(actual.next());
         assertFalse(actual.next());
@@ -178,8 +173,7 @@ class MySQLComQueryPacketExecutorTest {
     @Test
     void assertClose() throws SQLException, NoSuchFieldException, 
IllegalAccessException {
         MySQLComQueryPacketExecutor actual = new 
MySQLComQueryPacketExecutor(packet, connectionSession);
-        MemberAccessor accessor = Plugins.getMemberAccessor();
-        
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
+        
Plugins.getMemberAccessor().set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"),
 actual, proxyBackendHandler);
         actual.close();
         verify(proxyBackendHandler).close();
     }

Reply via email to