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

totalo 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 b91974904e9 Refactor ContextManagerBuilder (#19167)
b91974904e9 is described below

commit b91974904e92ce78fdd556946df03c78616b6d94
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 14 23:24:10 2022 +0800

    Refactor ContextManagerBuilder (#19167)
    
    * Refactor MetaDataContexts.metaData from optional to required
    
    * Add ContextManagerBuilderParameter.getModeConfiguration
    
    * Refactor StandaloneContextManagerBuilder
    
    * Refactor EventBusContext
    
    * Refactor ClusterContextManagerBuilder
    
    * Refactor ClusterContextManagerBuilder
---
 .../shardingsphere/infra/eventbus/EventBusContext.java    |  1 +
 .../manager/cluster/ClusterContextManagerBuilder.java     | 15 +++++++--------
 .../standalone/StandaloneContextManagerBuilder.java       |  4 +++-
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
index 1abfbf17c08..89e8e5da455 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
@@ -23,6 +23,7 @@ import org.slf4j.bridge.SLF4JBridgeHandler;
 /**
  * Event bus context.
  */
+@SuppressWarnings("UnstableApiUsage")
 public final class EventBusContext {
     
     private final EventBus eventBus = new EventBus();
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index 0fbc0e05292..ab4bb414791 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -64,8 +64,7 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         ClusterPersistRepository repository = 
ClusterPersistRepositoryFactory.getInstance((ClusterPersistRepositoryConfiguration)
 parameter.getModeConfiguration().getRepository());
         MetaDataPersistService persistService = new 
MetaDataPersistService(repository);
         persistConfigurations(persistService, parameter);
-        EventBusContext eventBusContext = new EventBusContext();
-        RegistryCenter registryCenter = new RegistryCenter(repository, 
eventBusContext);
+        RegistryCenter registryCenter = new RegistryCenter(repository, new 
EventBusContext());
         InstanceContext instanceContext = buildInstanceContext(registryCenter, 
parameter.getInstanceMetaData(), parameter.getModeConfiguration());
         registryCenter.getRepository().watchSessionConnection(instanceContext);
         MetaDataContexts metaDataContexts = 
buildMetaDataContexts(persistService, parameter, instanceContext);
@@ -82,6 +81,12 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         }
     }
     
+    private InstanceContext buildInstanceContext(final RegistryCenter 
registryCenter, final InstanceMetaData instanceMetaData, final 
ModeConfiguration modeConfig) {
+        ClusterWorkerIdGenerator clusterWorkerIdGenerator = new 
ClusterWorkerIdGenerator(registryCenter.getRepository(), registryCenter, 
instanceMetaData);
+        DistributedLockContext distributedLockContext = new 
DistributedLockContext(registryCenter.getRepository());
+        return new InstanceContext(new ComputeNodeInstance(instanceMetaData), 
clusterWorkerIdGenerator, modeConfig, distributedLockContext, 
registryCenter.getEventBusContext());
+    }
+    
     private MetaDataContexts buildMetaDataContexts(final 
MetaDataPersistService persistService,
                                                    final 
ContextManagerBuilderParameter parameter, final InstanceContext 
instanceContext) throws SQLException {
         Collection<String> databaseNames = parameter.getInstanceMetaData() 
instanceof JDBCInstanceMetaData
@@ -112,12 +117,6 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
                 .forEach((schemaName, tables) -> 
metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName,
 schemaName, tables)));
     }
     
-    private InstanceContext buildInstanceContext(final RegistryCenter 
registryCenter, final InstanceMetaData instanceMetaData, final 
ModeConfiguration modeConfig) {
-        ClusterWorkerIdGenerator clusterWorkerIdGenerator = new 
ClusterWorkerIdGenerator(registryCenter.getRepository(), registryCenter, 
instanceMetaData);
-        DistributedLockContext distributedLockContext = new 
DistributedLockContext(registryCenter.getRepository());
-        return new InstanceContext(new ComputeNodeInstance(instanceMetaData), 
clusterWorkerIdGenerator, modeConfig, distributedLockContext, 
registryCenter.getEventBusContext());
-    }
-    
     private void registerOnline(final MetaDataPersistService persistService, 
final RegistryCenter registryCenter,
                                 final ContextManagerBuilderParameter 
parameter, final ContextManager contextManager) {
         
contextManager.getInstanceContext().getInstance().setLabels(parameter.getLabels());
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 55bdc839f75..6512ceab7e1 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -38,6 +38,7 @@ import 
org.apache.shardingsphere.mode.manager.standalone.lock.StandaloneLockCont
 import 
org.apache.shardingsphere.mode.manager.standalone.workerid.generator.StandaloneWorkerIdGenerator;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
+import 
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepository;
 import 
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryFactory;
 import org.apache.shardingsphere.schedule.core.ScheduleContextFactory;
 
@@ -55,7 +56,8 @@ public final class StandaloneContextManagerBuilder implements 
ContextManagerBuil
     @Override
     public ContextManager build(final ContextManagerBuilderParameter 
parameter) throws SQLException {
         
ScheduleContextFactory.getInstance().init(parameter.getInstanceMetaData().getId(),
 parameter.getModeConfiguration());
-        MetaDataPersistService persistService = new 
MetaDataPersistService(StandalonePersistRepositoryFactory.getInstance(parameter.getModeConfiguration().getRepository()));
+        StandalonePersistRepository repository = 
StandalonePersistRepositoryFactory.getInstance(parameter.getModeConfiguration().getRepository());
+        MetaDataPersistService persistService = new 
MetaDataPersistService(repository);
         persistConfigurations(persistService, parameter);
         InstanceContext instanceContext = buildInstanceContext(parameter);
         return new ContextManager(buildMetaDataContexts(persistService, 
parameter, instanceContext), instanceContext);

Reply via email to