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

menghaoran 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 d52b2c0e9c8 Refactor ContextManager (#36621)
d52b2c0e9c8 is described below

commit d52b2c0e9c87a2c423cae07a4daecf54b5063b26
Author: Haoran Meng <menghaora...@gmail.com>
AuthorDate: Fri Sep 19 10:28:12 2025 +0800

    Refactor ContextManager (#36621)
---
 .../metrics/prometheus/PrometheusPluginLifecycleServiceTest.java  | 4 ++--
 .../org/apache/shardingsphere/mode/manager/ContextManager.java    | 8 ++------
 .../mode/manager/cluster/ClusterContextManagerBuilder.java        | 4 +++-
 .../mode/manager/standalone/StandaloneContextManagerBuilder.java  | 4 +++-
 .../test/it/data/pipeline/core/util/PipelineContextUtils.java     | 2 +-
 5 files changed, 11 insertions(+), 11 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 9d8c9e7ec11..8c33cc27fd1 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
@@ -27,7 +27,7 @@ import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatist
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 import org.apache.shardingsphere.infra.util.props.PropertiesBuilder;
 import org.apache.shardingsphere.infra.util.props.PropertiesBuilder.Property;
-import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorContext;
+import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorEngine;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.standalone.workerid.StandaloneWorkerIdGenerator;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -74,6 +74,6 @@ class PrometheusPluginLifecycleServiceTest {
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new 
ModeConfiguration("Standalone", null), new EventBusContext());
         computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
-        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class), 
mock(ExclusiveOperatorContext.class));
+        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class), 
mock(ExclusiveOperatorEngine.class));
     }
 }
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 08c47de4b15..fdfee62fe5a 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
@@ -39,7 +39,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericS
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsFactory;
 import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
-import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorContext;
 import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorEngine;
 import 
org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListenerFactory;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -74,20 +73,17 @@ public final class ContextManager implements AutoCloseable {
     
     private final MetaDataContextManager metaDataContextManager;
     
-    private final ExclusiveOperatorContext exclusiveOperatorContext;
-    
     private final ExclusiveOperatorEngine exclusiveOperatorEngine;
     
     public ContextManager(final MetaDataContexts metaDataContexts, final 
ComputeNodeInstanceContext computeNodeInstanceContext,
-                          final PersistRepository repository, final 
ExclusiveOperatorContext exclusiveOperatorContext) {
+                          final PersistRepository repository, final 
ExclusiveOperatorEngine exclusiveOperatorEngine) {
         this.metaDataContexts = metaDataContexts;
         this.computeNodeInstanceContext = computeNodeInstanceContext;
-        this.exclusiveOperatorContext = exclusiveOperatorContext;
+        this.exclusiveOperatorEngine = exclusiveOperatorEngine;
         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);
         stateContext = new 
StateContext(persistServiceFacade.getStateService().load());
-        exclusiveOperatorEngine = new 
ExclusiveOperatorEngine(exclusiveOperatorContext);
         ContextManagerLifecycleListenerFactory.getListeners(this).forEach(each 
-> each.onInitialized(this));
     }
     
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 e72c3533e03..204628590eb 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
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 import org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber;
 import org.apache.shardingsphere.mode.deliver.DeliverEventSubscriberRegistry;
+import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorEngine;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.manager.builder.ContextManagerBuilder;
 import 
org.apache.shardingsphere.mode.manager.builder.ContextManagerBuilderParameter;
@@ -58,8 +59,9 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(new ComputeNodeInstance(param.getInstanceMetaData(), 
param.getLabels()), modeConfig, eventBusContext);
         ClusterPersistRepository repository = 
getClusterPersistRepository(config, computeNodeInstanceContext);
         computeNodeInstanceContext.init(new 
ClusterWorkerIdGenerator(repository, param.getInstanceMetaData().getId()));
+        ExclusiveOperatorEngine exclusiveOperatorEngine = new 
ExclusiveOperatorEngine(new ClusterExclusiveOperatorContext(repository));
         MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistFacade(repository), computeNodeInstanceContext).create(param);
-        ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository, new 
ClusterExclusiveOperatorContext(repository));
+        ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository, exclusiveOperatorEngine);
         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 3a2e2df2d38..fa29d3a79d2 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
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
+import org.apache.shardingsphere.mode.exclusive.ExclusiveOperatorEngine;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.manager.builder.ContextManagerBuilder;
 import 
org.apache.shardingsphere.mode.manager.builder.ContextManagerBuilderParameter;
@@ -47,8 +48,9 @@ public final class StandaloneContextManagerBuilder implements 
ContextManagerBuil
         computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator());
         StandalonePersistRepository repository = TypedSPILoader.getService(
                 StandalonePersistRepository.class, null == repositoryConfig ? 
null : repositoryConfig.getType(), null == repositoryConfig ? new Properties() 
: repositoryConfig.getProps());
+        ExclusiveOperatorEngine exclusiveOperatorEngine = new 
ExclusiveOperatorEngine(new StandaloneExclusiveOperatorContext());
         MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistFacade(repository), computeNodeInstanceContext).create(param);
-        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository, new 
StandaloneExclusiveOperatorContext());
+        return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository, exclusiveOperatorEngine);
     }
     
     @Override
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 f7ffb933a15..103f80d0895 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
@@ -114,7 +114,7 @@ public final class PipelineContextUtils {
         MetaDataContexts metaDataContexts = 
renewMetaDataContexts(contextManager.getMetaDataContexts(), new 
MetaDataPersistFacade(persistRepository, true));
         PipelineContextManager.putContext(contextKey,
                 new ContextManager(metaDataContexts, 
contextManager.getComputeNodeInstanceContext(), 
contextManager.getPersistServiceFacade().getRepository(),
-                        contextManager.getExclusiveOperatorContext()));
+                        contextManager.getExclusiveOperatorEngine()));
     }
     
     @SneakyThrows({ReflectiveOperationException.class, SQLException.class})

Reply via email to