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

zhangliang 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 ebdfef41e7f Move ComputeNodeInstanceContext.getLockContext() to 
ContextManager (#35030)
ebdfef41e7f is described below

commit ebdfef41e7f3c26345d85f9c9a922b907f07a0b4
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Mar 18 23:06:27 2025 +0800

    Move ComputeNodeInstanceContext.getLockContext() to ContextManager (#35030)
    
    * Move ComputeNodeInstanceContext.getLockContext() to ContextManager
    
    * Move ComputeNodeInstanceContext.getLockContext() to ContextManager
    
    * Move ComputeNodeInstanceContext.getLockContext() to ContextManager
    
    * Move ComputeNodeInstanceContext.getLockContext() to ContextManager
---
 .../PrometheusPluginLifecycleServiceTest.java       |  4 ++--
 .../checker/ShardingRouteCacheableCheckerTest.java  |  2 +-
 .../infra/instance/ComputeNodeInstanceContext.java  | 17 +----------------
 .../instance/ComputeNodeInstanceContextTest.java    | 21 +++++++++------------
 .../migration/preparer/MigrationJobPreparer.java    |  2 +-
 .../shardingsphere/mode/manager/ContextManager.java |  8 ++++++--
 .../statistics/StatisticsRefreshEngine.java         |  2 +-
 .../mode/manager/ContextManagerTest.java            |  2 +-
 .../cluster/ClusterContextManagerBuilder.java       |  6 ++----
 .../standalone/StandaloneContextManagerBuilder.java |  4 ++--
 .../jdbc/transaction/BackendTransactionManager.java |  4 ++--
 .../ral/updatable/lock/LockClusterExecutor.java     |  2 +-
 .../ral/updatable/lock/UnlockClusterExecutor.java   |  2 +-
 .../ProxyDatabaseConnectionManagerTest.java         |  4 +---
 .../backend/connector/ProxySQLExecutorTest.java     |  2 +-
 .../proxy/backend/context/ProxyContextTest.java     |  2 +-
 .../admin/DatabaseAdminQueryBackendHandlerTest.java |  2 +-
 .../distsql/DistSQLQueryBackendHandlerTest.java     |  2 +-
 .../export/ExportMetaDataExecutorTest.java          |  3 +--
 .../imports/ImportMetaDataExecutorTest.java         |  3 +--
 .../variable/SetDistVariableExecutorTest.java       |  5 ++---
 .../FrontDatabaseProtocolTypeFactoryTest.java       |  3 +--
 .../proxy/frontend/state/impl/OKProxyStateTest.java |  2 +-
 .../command/PostgreSQLCommandExecuteEngineTest.java |  3 +--
 .../pipeline/core/util/PipelineContextUtils.java    |  2 +-
 25 files changed, 43 insertions(+), 66 deletions(-)

diff --git 
a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
 
b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
index 00202f68df4..86ba03677c3 100644
--- 
a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
+++ 
b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
@@ -73,7 +73,7 @@ class PrometheusPluginLifecycleServiceTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, new 
ShardingSphereStatistics());
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new 
ModeConfiguration("Standalone", null), new EventBusContext());
-        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator(), 
mock(LockContext.class));
-        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class));
+        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
+        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(LockContext.class), 
mock(PersistRepository.class));
     }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableCheckerTest.java
index 1af0543e4fa..e70046f99e3 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableCheckerTest.java
@@ -113,7 +113,7 @@ class ShardingRouteCacheableCheckerTest {
         ruleConfig.getTables().add(nonCacheableTableSharding);
         ruleConfig.setShardingCache(new ShardingCacheConfiguration(100, new 
ShardingCacheOptionsConfiguration(true, 0, 0)));
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(mock(ComputeNodeInstance.class), null, null);
-        instanceContext.init(props -> 0, null);
+        instanceContext.init(props -> 0);
         return new ShardingRule(ruleConfig, Maps.of("ds_0", new 
MockedDataSource(), "ds_1", new MockedDataSource()), instanceContext, 
Collections.emptyList());
     }
     
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
index 64da77c8c5b..afc7277a005 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
@@ -22,7 +22,6 @@ import lombok.Getter;
 import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 
@@ -48,8 +47,6 @@ public final class ComputeNodeInstanceContext {
     @Getter(AccessLevel.NONE)
     private final AtomicReference<WorkerIdGenerator> workerIdGenerator;
     
-    private final AtomicReference<LockContext> lockContext;
-    
     private final ClusterInstanceRegistry clusterInstanceRegistry;
     
     public ComputeNodeInstanceContext(final ComputeNodeInstance instance, 
final ModeConfiguration modeConfiguration, final EventBusContext 
eventBusContext) {
@@ -57,7 +54,6 @@ public final class ComputeNodeInstanceContext {
         this.modeConfiguration = modeConfiguration;
         this.eventBusContext = eventBusContext;
         workerIdGenerator = new AtomicReference<>();
-        lockContext = new AtomicReference<>();
         clusterInstanceRegistry = new ClusterInstanceRegistry();
     }
     
@@ -65,11 +61,9 @@ public final class ComputeNodeInstanceContext {
      * Initialize compute node instance context.
      *
      * @param workerIdGenerator worker id generator
-     * @param lockContext lock context
      */
-    public void init(final WorkerIdGenerator workerIdGenerator, final 
LockContext lockContext) {
+    public void init(final WorkerIdGenerator workerIdGenerator) {
         this.workerIdGenerator.set(workerIdGenerator);
-        this.lockContext.set(lockContext);
     }
     
     /**
@@ -141,13 +135,4 @@ public final class ComputeNodeInstanceContext {
         instance.setWorkerId(result);
         return result;
     }
-    
-    /**
-     * Get lock context.
-     *
-     * @return lock context
-     */
-    public LockContext getLockContext() {
-        return Optional.ofNullable(lockContext.get()).orElseThrow(() -> new 
IllegalStateException("Lock context is not initialized."));
-    }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
index e0c39e3b0b5..24138d3c2c0 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
 import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
 import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 import org.junit.jupiter.api.Test;
@@ -42,18 +41,16 @@ class ComputeNodeInstanceContextTest {
     void assertInit() {
         ComputeNodeInstanceContext context = new 
ComputeNodeInstanceContext(new 
ComputeNodeInstance(mock(InstanceMetaData.class)), 
mock(ModeConfiguration.class), new EventBusContext());
         WorkerIdGenerator workerIdGenerator = mock(WorkerIdGenerator.class);
-        LockContext lockContext = mock(LockContext.class);
-        context.init(workerIdGenerator, lockContext);
+        context.init(workerIdGenerator);
         context.generateWorkerId(new Properties());
         verify(workerIdGenerator).generate(new Properties());
-        assertThat(context.getLockContext(), is(lockContext));
     }
     
     @Test
     void assertUpdateStatusWithInvalidInstanceState() {
         InstanceMetaData instanceMetaData = mock(InstanceMetaData.class);
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(instanceMetaData), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.updateStatus("id", "INVALID");
         verify(instanceMetaData, times(0)).getId();
     }
@@ -62,7 +59,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateStatusWithCurrentInstance() {
         InstanceMetaData instanceMetaData = new 
ProxyInstanceMetaData("foo_instance_id", 3306);
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(instanceMetaData), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.getClusterInstanceRegistry().add(new 
ComputeNodeInstance(new ProxyInstanceMetaData("bar_instance_id", 3307)));
         instanceContext.updateStatus("foo_instance_id", 
InstanceState.CIRCUIT_BREAK.name());
         assertThat(instanceContext.getInstance().getState().getCurrentState(), 
is(InstanceState.CIRCUIT_BREAK));
@@ -72,7 +69,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateStatusWithOtherInstance() {
         InstanceMetaData instanceMetaData = new 
ProxyInstanceMetaData("foo_instance_id", 3306);
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(instanceMetaData), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.getClusterInstanceRegistry().add(new 
ComputeNodeInstance(new ProxyInstanceMetaData("bar_instance_id", 3307)));
         instanceContext.updateStatus("bar_instance_id", 
InstanceState.CIRCUIT_BREAK.name());
         assertThat(instanceContext.getInstance().getState().getCurrentState(), 
is(InstanceState.OK));
@@ -82,7 +79,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateLabelsWithCurrentInstance() {
         InstanceMetaData instanceMetaData = new 
ProxyInstanceMetaData("foo_instance_id", 3306);
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(instanceMetaData), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.updateLabels("foo_instance_id", 
Arrays.asList("label_1", "label_2"));
         assertThat(instanceContext.getInstance().getLabels(), 
is(Arrays.asList("label_1", "label_2")));
     }
@@ -91,7 +88,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateLabelsWithOtherInstance() {
         InstanceMetaData instanceMetaData = new 
ProxyInstanceMetaData("foo_instance_id", 3306);
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(instanceMetaData), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.getClusterInstanceRegistry().add(new 
ComputeNodeInstance(new ProxyInstanceMetaData("bar_instance_id", 3307)));
         instanceContext.updateLabels("bar_instance_id", 
Arrays.asList("label_1", "label_2"));
         assertTrue(instanceContext.getInstance().getLabels().isEmpty());
@@ -102,7 +99,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateWorkerIdWithCurrentInstance() {
         ComputeNodeInstance instance = new ComputeNodeInstance(new 
ProxyInstanceMetaData("foo_instance_id", 3306));
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(instance, mock(ModeConfiguration.class), new 
EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.updateWorkerId("foo_instance_id", 10);
         assertThat(instanceContext.getWorkerId(), is(10));
     }
@@ -111,7 +108,7 @@ class ComputeNodeInstanceContextTest {
     void assertUpdateWorkerIdWithOtherInstance() {
         ComputeNodeInstance instance = new ComputeNodeInstance(new 
ProxyInstanceMetaData("foo_instance_id", 3306));
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(instance, mock(ModeConfiguration.class), new 
EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         instanceContext.getClusterInstanceRegistry().add(new 
ComputeNodeInstance(new ProxyInstanceMetaData("bar_instance_id", 3307)));
         instanceContext.updateWorkerId("bar_instance_id", 10);
         assertThat(instanceContext.getWorkerId(), is(-1));
@@ -121,7 +118,7 @@ class ComputeNodeInstanceContextTest {
     @Test
     void assertGenerateWorkerId() {
         ComputeNodeInstanceContext instanceContext = new 
ComputeNodeInstanceContext(new 
ComputeNodeInstance(mock(InstanceMetaData.class)), 
mock(ModeConfiguration.class), new EventBusContext());
-        instanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
+        instanceContext.init(mock(WorkerIdGenerator.class));
         assertThat(instanceContext.generateWorkerId(new Properties()), is(0));
     }
 }
diff --git 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
index 029b97261e8..03331b71b5d 100644
--- 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
+++ 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
@@ -113,7 +113,7 @@ public final class MigrationJobPreparer implements 
PipelineJobPreparer<Migration
         String jobId = jobConfig.getJobId();
         PipelineContextKey contextKey = 
PipelineJobIdUtils.parseContextKey(jobId);
         ContextManager contextManager = 
PipelineContextManager.getContext(contextKey).getContextManager();
-        LockContext lockContext = 
contextManager.getComputeNodeInstanceContext().getLockContext();
+        LockContext lockContext = contextManager.getLockContext();
         if (!jobItemManager.getProgress(jobId, 
jobItemContext.getShardingItem()).isPresent()) {
             jobItemManager.persistProgress(jobItemContext);
         }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 1616747213b..b90a816017f 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -29,6 +29,7 @@ import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.databa
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
+import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
@@ -64,17 +65,20 @@ public final class ContextManager implements AutoCloseable {
     
     private final ComputeNodeInstanceContext computeNodeInstanceContext;
     
-    private final ExecutorEngine executorEngine;
+    private final LockContext lockContext;
     
     private final StateContext stateContext;
     
+    private final ExecutorEngine executorEngine;
+    
     private final PersistServiceFacade persistServiceFacade;
     
     private final MetaDataContextManager metaDataContextManager;
     
-    public ContextManager(final MetaDataContexts metaDataContexts, final 
ComputeNodeInstanceContext computeNodeInstanceContext, final PersistRepository 
repository) {
+    public ContextManager(final MetaDataContexts metaDataContexts, final 
ComputeNodeInstanceContext computeNodeInstanceContext, final LockContext 
lockContext, final PersistRepository repository) {
         this.metaDataContexts = metaDataContexts;
         this.computeNodeInstanceContext = computeNodeInstanceContext;
+        this.lockContext = lockContext;
         executorEngine = 
ExecutorEngine.createExecutorEngineWithSize(metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE));
         metaDataContextManager = new MetaDataContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
         persistServiceFacade = new PersistServiceFacade(repository, 
computeNodeInstanceContext.getModeConfiguration(), metaDataContextManager);
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/statistics/StatisticsRefreshEngine.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/statistics/StatisticsRefreshEngine.java
index 04f1023d042..250dfdecc29 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/statistics/StatisticsRefreshEngine.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/statistics/StatisticsRefreshEngine.java
@@ -68,7 +68,7 @@ public final class StatisticsRefreshEngine {
     public void refresh() {
         try {
             if 
(contextManager.getMetaDataContexts().getMetaData().getTemporaryProps().getValue(TemporaryConfigurationPropertyKey.PROXY_META_DATA_COLLECTOR_ENABLED))
 {
-                LockContext lockContext = 
contextManager.getComputeNodeInstanceContext().getLockContext();
+                LockContext lockContext = contextManager.getLockContext();
                 GlobalLockDefinition lockDefinition = new 
GlobalLockDefinition(new StatisticsLock());
                 if (lockContext.tryLock(lockDefinition, 5000L)) {
                     try {
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index d7f59c54d40..04352d6012f 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -87,7 +87,7 @@ class ContextManagerTest {
         
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
         when(computeNodeInstanceContext.getInstance()).thenReturn(new 
ComputeNodeInstance(new ProxyInstanceMetaData("foo_id", 3307), 
Collections.emptyList()));
         when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(new 
ModeConfiguration("FIXTURE", mock()));
-        contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock());
+        contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(), mock());
     }
     
     private ShardingSphereDatabase mockDatabase() throws SQLException {
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index fce8a3405a1..cf548c3d659 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePrecondition
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import 
org.apache.shardingsphere.infra.instance.metadata.jdbc.JDBCInstanceMetaData;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
@@ -59,10 +58,9 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         ClusterPersistRepositoryConfiguration config = 
(ClusterPersistRepositoryConfiguration) modeConfig.getRepository();
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(param.getInstanceMetaData(), 
param.getLabels()), modeConfig, eventBusContext);
         ClusterPersistRepository repository = 
getClusterPersistRepository(config, computeNodeInstanceContext);
-        LockContext lockContext = new ClusterLockContext(new 
GlobalLockPersistService(repository));
-        computeNodeInstanceContext.init(new 
ClusterWorkerIdGenerator(repository, param.getInstanceMetaData().getId()), 
lockContext);
+        computeNodeInstanceContext.init(new 
ClusterWorkerIdGenerator(repository, param.getInstanceMetaData().getId()));
         MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistFacade(repository), computeNodeInstanceContext).create(param);
-        ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
+        ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, new ClusterLockContext(new 
GlobalLockPersistService(repository)), repository);
         registerOnline(computeNodeInstanceContext, param, result);
         new 
DeliverEventSubscriberRegistry(result.getComputeNodeInstanceContext().getEventBusContext()).register(createDeliverEventSubscribers(repository));
         return result;
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 6f6a79c833d..282f1ca7057 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -44,11 +44,11 @@ public final class StandaloneContextManagerBuilder 
implements ContextManagerBuil
     public ContextManager build(final ContextManagerBuilderParameter param, 
final EventBusContext eventBusContext) throws SQLException {
         PersistRepositoryConfiguration repositoryConfig = 
param.getModeConfiguration().getRepository();
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(new 
ComputeNodeInstance(param.getInstanceMetaData()), param.getModeConfiguration(), 
eventBusContext);
-        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator(), new 
StandaloneLockContext());
+        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
         StandalonePersistRepository repository = TypedSPILoader.getService(
                 StandalonePersistRepository.class, null == repositoryConfig ? 
null : repositoryConfig.getType(), null == repositoryConfig ? new Properties() 
: repositoryConfig.getProps());
         MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistFacade(repository), computeNodeInstanceContext).create(param);
-        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
+        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, new StandaloneLockContext(), repository);
     }
     
     @Override
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
index 5c2331ebba1..b0402431380 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
@@ -98,7 +98,7 @@ public final class BackendTransactionManager implements 
TransactionManager {
         DatabaseType databaseType = 
ProxyContext.getInstance().getDatabaseType();
         for (Entry<ShardingSphereRule, TransactionHook> entry : 
transactionHooks.entrySet()) {
             entry.getValue().beforeCommit(entry.getKey(), databaseType,
-                    connection.getCachedConnections().values(), 
getTransactionContext(), 
ProxyContext.getInstance().getContextManager().getComputeNodeInstanceContext().getLockContext());
+                    connection.getCachedConnections().values(), 
getTransactionContext(), 
ProxyContext.getInstance().getContextManager().getLockContext());
         }
         if 
(connection.getConnectionSession().getTransactionStatus().isInTransaction()) {
             try {
@@ -110,7 +110,7 @@ public final class BackendTransactionManager implements 
TransactionManager {
             } finally {
                 for (Entry<ShardingSphereRule, TransactionHook> entry : 
transactionHooks.entrySet()) {
                     entry.getValue().afterCommit(entry.getKey(), databaseType,
-                            connection.getCachedConnections().values(), 
getTransactionContext(), 
ProxyContext.getInstance().getContextManager().getComputeNodeInstanceContext().getLockContext());
+                            connection.getCachedConnections().values(), 
getTransactionContext(), 
ProxyContext.getInstance().getContextManager().getLockContext());
                 }
                 for (Connection each : 
connection.getCachedConnections().values()) {
                     
ConnectionSavepointManager.getInstance().transactionFinished(each);
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/LockClusterExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/LockClusterExecutor.java
index 5b9d62d079a..c03e957cc5b 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/LockClusterExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/LockClusterExecutor.java
@@ -41,7 +41,7 @@ public final class LockClusterExecutor implements 
DistSQLUpdateExecutor<LockClus
     public void executeUpdate(final LockClusterStatement sqlStatement, final 
ContextManager contextManager) {
         checkState(contextManager);
         checkAlgorithm(sqlStatement);
-        LockContext lockContext = 
contextManager.getComputeNodeInstanceContext().getLockContext();
+        LockContext lockContext = contextManager.getLockContext();
         GlobalLockDefinition lockDefinition = new GlobalLockDefinition(new 
ClusterLock());
         long timeoutMillis = sqlStatement.getTimeoutMillis().orElse(3000L);
         if (lockContext.tryLock(lockDefinition, timeoutMillis)) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/UnlockClusterExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/UnlockClusterExecutor.java
index 1bee67221fb..aea58127b77 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/UnlockClusterExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/UnlockClusterExecutor.java
@@ -36,7 +36,7 @@ public final class UnlockClusterExecutor implements 
DistSQLUpdateExecutor<Unlock
     @Override
     public void executeUpdate(final UnlockClusterStatement sqlStatement, final 
ContextManager contextManager) {
         checkState(contextManager);
-        LockContext lockContext = 
contextManager.getComputeNodeInstanceContext().getLockContext();
+        LockContext lockContext = contextManager.getLockContext();
         GlobalLockDefinition lockDefinition = new GlobalLockDefinition(new 
ClusterLock());
         long timeoutMillis = sqlStatement.getTimeoutMillis().orElse(3000L);
         if (lockContext.tryLock(lockDefinition, timeoutMillis)) {
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 7f42c84fa1a..64793ebecdc 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
@@ -32,7 +32,6 @@ import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSpher
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ConnectionPostProcessor;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement;
@@ -128,8 +127,7 @@ class ProxyDatabaseConnectionManagerTest {
         when(metaData.getGlobalRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singletonList(transactionRule)));
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
-        return new ContextManager(new MetaDataContexts(metaData,
-                ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, 
mock(PersistRepository.class));
+        return new ContextManager(new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock(), mock());
     }
     
     @AfterEach
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index 842bcfca952..4e9ce1810f2 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -111,7 +111,7 @@ class ProxySQLExecutorTest {
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
         ContextManager contextManager = new ContextManager(new 
MetaDataContexts(metaData,
-                ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, 
mock(PersistRepository.class, RETURNS_DEEP_STUBS));
+                ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock(), 
mock(PersistRepository.class, RETURNS_DEEP_STUBS));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
     }
     
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index f6052c637df..afc2f04dea3 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -72,7 +72,7 @@ class ProxyContextTest {
     void assertInit() {
         ShardingSphereMetaData metaData = new ShardingSphereMetaData();
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, new 
ShardingSphereStatistics());
-        ProxyContext.init(new ContextManager(metaDataContexts, 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS), 
mock(PersistRepository.class)));
+        ProxyContext.init(new ContextManager(metaDataContexts, 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS), mock(), 
mock(PersistRepository.class)));
         
assertThat(ProxyContext.getInstance().getContextManager().getStateContext(), 
is(ProxyContext.getInstance().getContextManager().getStateContext()));
         
assertThat(ProxyContext.getInstance().getContextManager().getStateContext().getState(),
 is(ShardingSphereState.OK));
         
assertThat(ProxyContext.getInstance().getContextManager().getMetaDataContexts(),
 is(ProxyContext.getInstance().getContextManager().getMetaDataContexts()));
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
index 3107c5d8c11..c6421850fc3 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -113,6 +113,6 @@ class DatabaseAdminQueryBackendHandlerTest {
         ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), new 
ConfigurationProperties(new Properties()));
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
         return new ContextManager(
-                new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock());
+                new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock(), mock());
     }
 }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
index ebbc17ffbfa..2da05658bdd 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
@@ -75,7 +75,7 @@ class DistSQLQueryBackendHandlerTest {
         when(connectionSession.getUsedDatabaseName()).thenReturn("unknown");
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
-        ContextManager contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class));
+        ContextManager contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(), mock(PersistRepository.class));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         assertThrows(UnknownDatabaseException.class, () -> new 
DistSQLQueryBackendHandler(mock(ExportDatabaseConfigurationStatement.class), 
connectionSession).execute());
     }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
index 929d7559bba..8d2b0e93fae 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
@@ -32,7 +32,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -141,7 +140,7 @@ class ExportMetaDataExecutorTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new 
ModeConfiguration("Standalone", null), new EventBusContext());
-        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator(), 
mock(LockContext.class));
+        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
         ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
         
when(result.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutorTest.java
index ac2e53b925f..f46c647910e 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutorTest.java
@@ -33,7 +33,6 @@ import 
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storag
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
@@ -121,7 +120,7 @@ class ImportMetaDataExecutorTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new 
ModeConfiguration("Standalone", null), new EventBusContext());
-        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator(), 
mock(LockContext.class));
+        computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
         ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
         
when(result.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutorTest.java
index b9cfcc9eb6b..de53240133d 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutorTest.java
@@ -27,7 +27,6 @@ import 
org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
 import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
@@ -110,7 +109,7 @@ class SetDistVariableExecutorTest {
         
when(metaDataPersistFacade.getPropsService()).thenReturn(mock(PropertiesPersistService.class));
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new 
ModeConfiguration("Standalone", null), new EventBusContext());
-        computeNodeInstanceContext.init(mock(WorkerIdGenerator.class), 
mock(LockContext.class));
-        return new ContextManager(new MetaDataContexts(new 
ShardingSphereMetaData(), new ShardingSphereStatistics()), 
computeNodeInstanceContext, mock());
+        computeNodeInstanceContext.init(mock(WorkerIdGenerator.class));
+        return new ContextManager(new MetaDataContexts(new 
ShardingSphereMetaData(), new ShardingSphereStatistics()), 
computeNodeInstanceContext, mock(), mock());
     }
 }
diff --git 
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
 
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index bd5590fbfd0..54a3f328dd8 100644
--- 
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ 
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -29,7 +29,6 @@ import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSpher
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -93,6 +92,6 @@ class FrontDatabaseProtocolTypeFactoryTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
-        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class));
+        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(), mock());
     }
 }
diff --git 
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
 
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
index 1df8e69587a..e7f268626e0 100644
--- 
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
+++ 
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
@@ -97,7 +97,7 @@ class OKProxyStateTest {
         when(metaData.getGlobalRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singletonList(transactionRule)));
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
-        return new ContextManager(new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock());
+        return new ContextManager(new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics())), computeNodeInstanceContext, mock(), mock());
     }
     
     @SuppressWarnings({"unchecked", "SameParameterValue"})
diff --git 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
index 5990f922d23..007aedeb21b 100644
--- 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
+++ 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
@@ -28,7 +28,6 @@ import 
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import 
org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ConnectionResourceLock;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -124,7 +123,7 @@ class PostgreSQLCommandExecuteEngineTest {
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
         ContextManager contextManager = new ContextManager(
-                new MetaDataContexts(new ShardingSphereMetaData(), new 
ShardingSphereStatistics()), computeNodeInstanceContext, 
mock(PersistRepository.class));
+                new MetaDataContexts(new ShardingSphereMetaData(), new 
ShardingSphereStatistics()), computeNodeInstanceContext, mock(), mock());
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         commandExecuteEngine.writeQueryData(channelHandlerContext, 
databaseConnectionManager, queryCommandExecutor, 0);
         verify(connectionResourceLock).doAwait(channelHandlerContext);
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
index 8d60470b4a8..7c37182e46b 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
@@ -110,7 +110,7 @@ public final class PipelineContextUtils {
         ClusterPersistRepository persistRepository = 
getClusterPersistRepository((ClusterPersistRepositoryConfiguration) 
modeConfig.getRepository());
         MetaDataContexts metaDataContexts = 
renewMetaDataContexts(contextManager.getMetaDataContexts(), new 
MetaDataPersistFacade(persistRepository));
         PipelineContext pipelineContext = new PipelineContext(modeConfig, new 
ContextManager(metaDataContexts, contextManager.getComputeNodeInstanceContext(),
-                contextManager.getPersistServiceFacade().getRepository()));
+                contextManager.getLockContext(), 
contextManager.getPersistServiceFacade().getRepository()));
         PipelineContextManager.putContext(contextKey, pipelineContext);
     }
     

Reply via email to