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 acf6a6742d3 Add computeNodeInstanceContext as field of 
MetaDataContextsFactory (#34398)
acf6a6742d3 is described below

commit acf6a6742d358bb434e7c0b3481b4c9f4d4d4f14
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 19 16:12:10 2025 +0800

    Add computeNodeInstanceContext as field of MetaDataContextsFactory (#34398)
    
    * Refactor MetaDataContextsFactory
    
    * Refactor MetaDataContextsFactory
    
    * Add computeNodeInstanceContext as field of MetaDataContextsFactory
---
 .../mode/metadata/MetaDataContextManager.java      |  4 +--
 .../mode/metadata/MetaDataContextsFactory.java     | 38 +++++++++-------------
 .../manager/DatabaseRuleConfigurationManager.java  |  2 +-
 .../mode/metadata/manager/StorageUnitManager.java  |  4 +--
 .../mode/metadata/MetaDataContextsFactoryTest.java |  4 +--
 .../cluster/ClusterContextManagerBuilder.java      |  2 +-
 .../ClusterMetaDataManagerPersistService.java      | 12 +++----
 .../StandaloneContextManagerBuilder.java           |  2 +-
 .../StandaloneMetaDataManagerPersistService.java   | 12 +++----
 9 files changed, 37 insertions(+), 43 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
index 38a4942e969..119d40b1098 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
@@ -145,8 +145,8 @@ public class MetaDataContextManager {
         Map<String, DataSourcePoolProperties> dataSourcePoolPropsFromRegCenter 
= metaDataPersistService.getDataSourceUnitService().load(database.getName());
         SwitchingResource switchingResource = 
resourceSwitchManager.switchByAlterStorageUnit(database.getResourceMetaData(), 
dataSourcePoolPropsFromRegCenter);
         Collection<RuleConfiguration> ruleConfigs = 
metaDataPersistService.getDatabaseRulePersistService().load(database.getName());
-        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService)
-                .createChangedDatabase(database.getName(), false, 
switchingResource, ruleConfigs, metaDataContexts, computeNodeInstanceContext);
+        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService, computeNodeInstanceContext)
+                .createChangedDatabase(database.getName(), false, 
switchingResource, ruleConfigs, metaDataContexts);
         metaDataContexts.getMetaData().putDatabase(changedDatabase);
         ConfigurationProperties props = new 
ConfigurationProperties(metaDataPersistService.getPropsService().load());
         Collection<RuleConfiguration> globalRuleConfigs = 
metaDataPersistService.getGlobalRuleService().load();
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 2fb10a2090e..681608c445f 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -64,25 +64,25 @@ public final class MetaDataContextsFactory {
     
     private final MetaDataPersistService persistService;
     
+    private final ComputeNodeInstanceContext instanceContext;
+    
     /**
      * Create meta data contexts.
      *
      * @param param context manager builder parameter
-     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
-    public MetaDataContexts create(final ContextManagerBuilderParameter param, 
final ComputeNodeInstanceContext instanceContext) throws SQLException {
-        return containsRegisteredDatabases() ? createFromRegisterCenter(param, 
instanceContext) : createFromLocalConfiguration(param, instanceContext);
+    public MetaDataContexts create(final ContextManagerBuilderParameter param) 
throws SQLException {
+        return containsRegisteredDatabases() ? createFromRegisterCenter(param) 
: createFromLocalConfiguration(param);
     }
     
     private boolean containsRegisteredDatabases() {
         return 
!persistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames().isEmpty();
     }
     
-    private MetaDataContexts createFromRegisterCenter(final 
ContextManagerBuilderParameter param, final ComputeNodeInstanceContext 
instanceContext) {
-        Map<String, DatabaseConfiguration> effectiveDatabaseConfigs = 
createEffectiveDatabaseConfigurations(
-                getDatabaseNames(param.getDatabaseConfigs(), instanceContext), 
param.getDatabaseConfigs());
+    private MetaDataContexts createFromRegisterCenter(final 
ContextManagerBuilderParameter param) {
+        Map<String, DatabaseConfiguration> effectiveDatabaseConfigs = 
createEffectiveDatabaseConfigurations(getDatabaseNames(param.getDatabaseConfigs()),
 param.getDatabaseConfigs());
         Collection<RuleConfiguration> globalRuleConfigs = 
persistService.getGlobalRuleService().load();
         // TODO load global data sources from persist service
         Map<String, DataSource> globalDataSources = 
param.getGlobalDataSources();
@@ -92,7 +92,7 @@ public final class MetaDataContextsFactory {
         return createMetaDataContexts(globalRuleConfigs, globalDataSources, 
databases, props);
     }
     
-    private MetaDataContexts createFromLocalConfiguration(final 
ContextManagerBuilderParameter param, final ComputeNodeInstanceContext 
instanceContext) throws SQLException {
+    private MetaDataContexts createFromLocalConfiguration(final 
ContextManagerBuilderParameter param) throws SQLException {
         ConfigurationProperties props = new 
ConfigurationProperties(param.getProps());
         Collection<ShardingSphereDatabase> databases = 
ShardingSphereDatabasesFactory.create(param.getDatabaseConfigs(), props, 
instanceContext);
         MetaDataContexts result = 
createMetaDataContexts(param.getGlobalRuleConfigs(), 
param.getGlobalDataSources(), databases, props);
@@ -136,7 +136,7 @@ public final class MetaDataContextsFactory {
         }
     }
     
-    private Collection<String> getDatabaseNames(final Map<String, 
DatabaseConfiguration> databaseConfigs, final ComputeNodeInstanceContext 
instanceContext) {
+    private Collection<String> getDatabaseNames(final Map<String, 
DatabaseConfiguration> databaseConfigs) {
         return instanceContext.getInstance().getMetaData() instanceof 
JDBCInstanceMetaData
                 ? databaseConfigs.keySet()
                 : 
persistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames();
@@ -170,14 +170,12 @@ public final class MetaDataContextsFactory {
      * @param internalLoadMetaData internal load meta data
      * @param switchingResource switching resource
      * @param originalMetaDataContexts original meta data contexts
-     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
     public MetaDataContexts createBySwitchResource(final String databaseName, 
final boolean internalLoadMetaData, final SwitchingResource switchingResource,
-                                                   final MetaDataContexts 
originalMetaDataContexts, final ComputeNodeInstanceContext instanceContext) 
throws SQLException {
-        ShardingSphereDatabase changedDatabase = createChangedDatabase(
-                databaseName, internalLoadMetaData, switchingResource, null, 
originalMetaDataContexts, instanceContext);
+                                                   final MetaDataContexts 
originalMetaDataContexts) throws SQLException {
+        ShardingSphereDatabase changedDatabase = 
createChangedDatabase(databaseName, internalLoadMetaData, switchingResource, 
null, originalMetaDataContexts);
         ConfigurationProperties props = 
originalMetaDataContexts.getMetaData().getProps();
         ShardingSphereMetaData clonedMetaData = 
cloneMetaData(originalMetaDataContexts.getMetaData(), changedDatabase);
         RuleMetaData changedGlobalMetaData = new RuleMetaData(
@@ -194,14 +192,12 @@ public final class MetaDataContextsFactory {
      * @param internalLoadMetaData internal load meta data
      * @param ruleConfigs rule configs
      * @param originalMetaDataContexts original meta data contexts
-     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
     public MetaDataContexts createByAlterRule(final String databaseName, final 
boolean internalLoadMetaData, final Collection<RuleConfiguration> ruleConfigs,
-                                              final MetaDataContexts 
originalMetaDataContexts, final ComputeNodeInstanceContext instanceContext) 
throws SQLException {
-        ShardingSphereDatabase changedDatabase = createChangedDatabase(
-                databaseName, internalLoadMetaData, null, ruleConfigs, 
originalMetaDataContexts, instanceContext);
+                                              final MetaDataContexts 
originalMetaDataContexts) throws SQLException {
+        ShardingSphereDatabase changedDatabase = 
createChangedDatabase(databaseName, internalLoadMetaData, null, ruleConfigs, 
originalMetaDataContexts);
         ShardingSphereMetaData clonedMetaData = 
cloneMetaData(originalMetaDataContexts.getMetaData(), changedDatabase);
         ConfigurationProperties props = 
originalMetaDataContexts.getMetaData().getProps();
         RuleMetaData changedGlobalMetaData = new RuleMetaData(
@@ -226,24 +222,22 @@ public final class MetaDataContextsFactory {
      * @param switchingResource switching resource
      * @param ruleConfigs rule configurations
      * @param originalMetaDataContext original meta data contexts
-     * @param instanceContext compute node instance context
      * @return changed database
      * @throws SQLException SQL exception
      */
-    public ShardingSphereDatabase createChangedDatabase(final String 
databaseName, final boolean internalLoadMetaData,
-                                                        final 
SwitchingResource switchingResource, final Collection<RuleConfiguration> 
ruleConfigs,
-                                                        final MetaDataContexts 
originalMetaDataContext, final ComputeNodeInstanceContext instanceContext) 
throws SQLException {
+    public ShardingSphereDatabase createChangedDatabase(final String 
databaseName, final boolean internalLoadMetaData, final SwitchingResource 
switchingResource,
+                                                        final 
Collection<RuleConfiguration> ruleConfigs, final MetaDataContexts 
originalMetaDataContext) throws SQLException {
         ResourceMetaData effectiveResourceMetaData = 
getEffectiveResourceMetaData(originalMetaDataContext.getMetaData().getDatabase(databaseName),
 switchingResource);
         Collection<RuleConfiguration> toBeCreatedRuleConfigs = null == 
ruleConfigs
                 ? 
originalMetaDataContext.getMetaData().getDatabase(databaseName).getRuleMetaData().getConfigurations()
                 : ruleConfigs;
         DatabaseConfiguration toBeCreatedDatabaseConfig = 
getDatabaseConfiguration(effectiveResourceMetaData, switchingResource, 
toBeCreatedRuleConfigs);
         return 
createChangedDatabase(originalMetaDataContext.getMetaData().getDatabase(databaseName).getName(),
 internalLoadMetaData,
-                toBeCreatedDatabaseConfig, 
originalMetaDataContext.getMetaData().getProps(), instanceContext);
+                toBeCreatedDatabaseConfig, 
originalMetaDataContext.getMetaData().getProps());
     }
     
     private ShardingSphereDatabase createChangedDatabase(final String 
databaseName, final boolean internalLoadMetaData, final DatabaseConfiguration 
databaseConfig,
-                                                         final 
ConfigurationProperties props, final ComputeNodeInstanceContext 
instanceContext) throws SQLException {
+                                                         final 
ConfigurationProperties props) throws SQLException {
         DatabaseType protocolType = 
DatabaseTypeEngine.getProtocolType(databaseConfig, props);
         return internalLoadMetaData
                 ? ShardingSphereDatabase.create(databaseName, protocolType, 
databaseConfig, instanceContext, 
persistService.getDatabaseMetaDataFacade().getSchema().load(databaseName))
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
index 08387674c4e..996b7a7f16d 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
@@ -102,7 +102,7 @@ public final class DatabaseRuleConfigurationManager {
     }
     
     private void refreshMetadata(final String databaseName, final 
Collection<RuleConfiguration> ruleConfigurations) throws SQLException {
-        metaDataContexts.update(new 
MetaDataContextsFactory(metaDataPersistService).createByAlterRule(databaseName, 
false, ruleConfigurations, metaDataContexts, computeNodeInstanceContext));
+        metaDataContexts.update(new 
MetaDataContextsFactory(metaDataPersistService, 
computeNodeInstanceContext).createByAlterRule(databaseName, false, 
ruleConfigurations, metaDataContexts));
     }
     
     private Collection<RuleConfiguration> getRuleConfigurations(final 
Collection<ShardingSphereRule> rules) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
index 3079015c6f6..66539df3e15 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
@@ -107,8 +107,8 @@ public final class StorageUnitManager {
     }
     
     private void buildNewMetaDataContext(final String databaseName, final 
SwitchingResource switchingResource) throws SQLException {
-        MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService).createBySwitchResource(
-                databaseName, true, switchingResource, metaDataContexts, 
computeNodeInstanceContext);
+        MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService, 
computeNodeInstanceContext).createBySwitchResource(
+                databaseName, true, switchingResource, metaDataContexts);
         metaDataContexts.update(reloadMetaDataContexts);
         
metaDataContexts.getMetaData().putDatabase(buildDatabase(reloadMetaDataContexts.getMetaData().getDatabase(databaseName)));
         switchingResource.closeStaleDataSources();
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
index f88f1a4fabe..79f8feeebcf 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
@@ -109,7 +109,7 @@ class MetaDataContextsFactoryTest {
     void assertCreateWithJDBCInstanceMetaData() throws SQLException {
         ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
         
when(computeNodeInstanceContext.getInstance().getMetaData()).thenReturn(mock(JDBCInstanceMetaData.class));
-        MetaDataContexts actual = new 
MetaDataContextsFactory(metaDataPersistService).create(createContextManagerBuilderParameter(),
 computeNodeInstanceContext);
+        MetaDataContexts actual = new 
MetaDataContextsFactory(metaDataPersistService, 
computeNodeInstanceContext).create(createContextManagerBuilderParameter());
         
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().size(), 
is(1));
         
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().iterator().next(),
 instanceOf(MockedRule.class));
         assertTrue(actual.getMetaData().containsDatabase("foo_db"));
@@ -120,7 +120,7 @@ class MetaDataContextsFactoryTest {
     void assertCreateWithProxyInstanceMetaData() throws SQLException {
         
when(databaseMetaDataPersistFacade.getDatabase().loadAllDatabaseNames()).thenReturn(Collections.singletonList("foo_db"));
         
when(metaDataPersistService.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataPersistFacade);
-        MetaDataContexts actual = new 
MetaDataContextsFactory(metaDataPersistService).create(createContextManagerBuilderParameter(),
 mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS));
+        MetaDataContexts actual = new 
MetaDataContextsFactory(metaDataPersistService, 
mock(ComputeNodeInstanceContext.class, 
RETURNS_DEEP_STUBS)).create(createContextManagerBuilderParameter());
         
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().size(), 
is(1));
         
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().iterator().next(),
 instanceOf(MockedRule.class));
         assertTrue(actual.getMetaData().containsDatabase("foo_db"));
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 de6545ebea9..d3288bfad09 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
@@ -60,7 +60,7 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         ClusterPersistRepository repository = 
getClusterPersistRepository(config, computeNodeInstanceContext);
         LockContext lockContext = new ClusterLockContext(new 
GlobalLockPersistService(repository));
         computeNodeInstanceContext.init(new 
ClusterWorkerIdGenerator(repository, param.getInstanceMetaData().getId()), 
lockContext);
-        MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistService(repository)).create(param, computeNodeInstanceContext);
+        MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistService(repository), computeNodeInstanceContext).create(param);
         ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
         registerOnline(computeNodeInstanceContext, param, result, repository);
         return result;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index b8bc61de563..bccb6da4eaa 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -125,8 +125,8 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
             SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager()
                     
.switchByRegisterStorageUnit(originalMetaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData(),
 toBeRegisteredProps);
             newDataSources.putAll(switchingResource.getNewDataSources());
-            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService).createBySwitchResource(
-                    databaseName, false, switchingResource, 
originalMetaDataContexts, 
metaDataContextManager.getComputeNodeInstanceContext());
+            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createBySwitchResource(
+                    databaseName, false, switchingResource, 
originalMetaDataContexts);
             
metaDataPersistService.getDataSourceUnitService().persist(databaseName, 
toBeRegisteredProps);
             afterStorageUnitsAltered(databaseName, originalMetaDataContexts, 
reloadMetaDataContexts);
             reloadMetaDataContexts.getMetaData().close();
@@ -143,8 +143,8 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
             SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager()
                     
.switchByAlterStorageUnit(originalMetaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData(),
 toBeUpdatedProps);
             newDataSources.putAll(switchingResource.getNewDataSources());
-            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService).createBySwitchResource(
-                    databaseName, false, switchingResource, 
originalMetaDataContexts, 
metaDataContextManager.getComputeNodeInstanceContext());
+            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createBySwitchResource(
+                    databaseName, false, switchingResource, 
originalMetaDataContexts);
             DataSourceUnitPersistService dataSourceService = 
metaDataPersistService.getDataSourceUnitService();
             metaDataPersistService.getMetaDataVersionPersistService()
                     
.switchActiveVersion(dataSourceService.persist(databaseName, toBeUpdatedProps));
@@ -161,8 +161,8 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
             MetaDataContexts originalMetaDataContexts = 
buildOriginalMetaDataContexts();
             SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager()
                     
.createByUnregisterStorageUnit(originalMetaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData(),
 Collections.singletonList(each));
-            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService).createBySwitchResource(
-                    databaseName, false, switchingResource, 
originalMetaDataContexts, 
metaDataContextManager.getComputeNodeInstanceContext());
+            MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createBySwitchResource(
+                    databaseName, false, switchingResource, 
originalMetaDataContexts);
             
metaDataPersistService.getDataSourceUnitService().delete(databaseName, each);
             afterStorageUnitsDropped(databaseName, originalMetaDataContexts, 
reloadMetaDataContexts);
             reloadMetaDataContexts.getMetaData().close();
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 03d10bf61a1..38737a3222d 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
@@ -47,7 +47,7 @@ public final class StandaloneContextManagerBuilder implements 
ContextManagerBuil
                 StandalonePersistRepository.class, null == repositoryConfig ? 
null : repositoryConfig.getType(), null == repositoryConfig ? new Properties() 
: repositoryConfig.getProps());
         ComputeNodeInstanceContext computeNodeInstanceContext = new 
ComputeNodeInstanceContext(new 
ComputeNodeInstance(param.getInstanceMetaData()), param.getModeConfiguration(), 
eventBusContext);
         computeNodeInstanceContext.init(new StandaloneWorkerIdGenerator(), new 
StandaloneLockContext());
-        MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistService(repository)).create(param, computeNodeInstanceContext);
+        MetaDataContexts metaDataContexts = new MetaDataContextsFactory(new 
MetaDataPersistService(repository), computeNodeInstanceContext).create(param);
         return new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
     }
     
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index e2769ccabbe..45018548fc6 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -224,8 +224,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     public void registerStorageUnits(final String databaseName, final 
Map<String, DataSourcePoolProperties> toBeRegisteredProps) throws SQLException {
         SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager().switchByRegisterStorageUnit(metaDataContextManager.getMetaDataContexts()
                 
.getMetaData().getDatabase(databaseName).getResourceMetaData(), 
toBeRegisteredProps);
-        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService).createChangedDatabase(
-                databaseName, false, switchingResource, null, 
metaDataContextManager.getMetaDataContexts(), 
metaDataContextManager.getComputeNodeInstanceContext());
+        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createChangedDatabase(
+                databaseName, false, switchingResource, null, 
metaDataContextManager.getMetaDataContexts());
         
metaDataContextManager.getMetaDataContexts().getMetaData().putDatabase(changedDatabase);
         
metaDataContextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
                 .forEach(each -> ((GlobalRule) 
each).refresh(metaDataContextManager.getMetaDataContexts().getMetaData().getAllDatabases(),
 GlobalRuleChangedType.DATABASE_CHANGED));
@@ -246,8 +246,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     public void alterStorageUnits(final String databaseName, final Map<String, 
DataSourcePoolProperties> toBeUpdatedProps) throws SQLException {
         SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager().switchByAlterStorageUnit(metaDataContextManager.getMetaDataContexts().getMetaData()
                 .getDatabase(databaseName).getResourceMetaData(), 
toBeUpdatedProps);
-        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService).createChangedDatabase(
-                databaseName, true, switchingResource, null, 
metaDataContextManager.getMetaDataContexts(), 
metaDataContextManager.getComputeNodeInstanceContext());
+        ShardingSphereDatabase changedDatabase = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createChangedDatabase(
+                databaseName, true, switchingResource, null, 
metaDataContextManager.getMetaDataContexts());
         
metaDataContextManager.getMetaDataContexts().getMetaData().putDatabase(changedDatabase);
         
metaDataContextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
                 .forEach(each -> ((GlobalRule) 
each).refresh(metaDataContextManager.getMetaDataContexts().getMetaData().getAllDatabases(),
 GlobalRuleChangedType.DATABASE_CHANGED));
@@ -262,8 +262,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     public void unregisterStorageUnits(final String databaseName, final 
Collection<String> toBeDroppedStorageUnitNames) throws SQLException {
         SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager().switchByUnregisterStorageUnit(metaDataContextManager.getMetaDataContexts().getMetaData()
                 .getDatabase(databaseName).getResourceMetaData(), 
toBeDroppedStorageUnitNames);
-        MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService).createBySwitchResource(
-                databaseName, false, switchingResource, 
metaDataContextManager.getMetaDataContexts(), 
metaDataContextManager.getComputeNodeInstanceContext());
+        MetaDataContexts reloadMetaDataContexts = new 
MetaDataContextsFactory(metaDataPersistService, 
metaDataContextManager.getComputeNodeInstanceContext()).createBySwitchResource(
+                databaseName, false, switchingResource, 
metaDataContextManager.getMetaDataContexts());
         metaDataPersistService.persistReloadDatabaseByDrop(databaseName, 
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
                 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName));
         metaDataContextManager.dropSchemas(databaseName, 
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),

Reply via email to