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 24bd2851ecd Refactor MetaDataContextsFactory (#34025)
24bd2851ecd is described below

commit 24bd2851ecd2f6a2d34663b3de0c8ea8011eebb1
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Dec 12 16:26:22 2024 +0800

    Refactor MetaDataContextsFactory (#34025)
---
 .../mode/metadata/MetaDataContextsFactory.java     | 69 +++++++++++-----------
 1 file changed, 35 insertions(+), 34 deletions(-)

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 f2b67e77511..aad43443acc 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
@@ -77,15 +77,13 @@ public final class MetaDataContextsFactory {
      *
      * @param persistService persist service
      * @param param context manager builder parameter
-     * @param computeNodeInstanceContext compute node instance context
+     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
     public static MetaDataContexts create(final MetaDataPersistService 
persistService, final ContextManagerBuilderParameter param,
-                                          final ComputeNodeInstanceContext 
computeNodeInstanceContext) throws SQLException {
-        return 
persistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames().isEmpty()
-                ? createByLocal(persistService, param, 
computeNodeInstanceContext)
-                : createByRepository(persistService, param, 
computeNodeInstanceContext);
+                                          final ComputeNodeInstanceContext 
instanceContext) throws SQLException {
+        return isCreateByLocal(persistService) ? createByLocal(persistService, 
param, instanceContext) : createByRepository(persistService, param, 
instanceContext);
     }
     
     /**
@@ -99,34 +97,37 @@ public final class MetaDataContextsFactory {
         return new MetaDataContexts(metaData, initStatistics(persistService, 
metaData));
     }
     
+    private static boolean isCreateByLocal(final MetaDataPersistService 
persistService) {
+        return 
persistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames().isEmpty();
+    }
+    
     private static MetaDataContexts createByLocal(final MetaDataPersistService 
persistService, final ContextManagerBuilderParameter param,
-                                                  final 
ComputeNodeInstanceContext computeNodeInstanceContext) throws SQLException {
+                                                  final 
ComputeNodeInstanceContext instanceContext) throws SQLException {
         Map<String, DatabaseConfiguration> effectiveDatabaseConfigs = 
param.getDatabaseConfigs();
         Collection<RuleConfiguration> globalRuleConfigs;
-        if (computeNodeInstanceContext.getModeConfiguration().isCluster()) {
-            globalRuleConfigs = new 
RuleConfigurationPersistDecorateEngine(computeNodeInstanceContext).tryRestore(param.getGlobalRuleConfigs());
+        if (instanceContext.getModeConfiguration().isCluster()) {
+            globalRuleConfigs = new 
RuleConfigurationPersistDecorateEngine(instanceContext).tryRestore(param.getGlobalRuleConfigs());
             param.getGlobalRuleConfigs().clear();
             param.getGlobalRuleConfigs().addAll(globalRuleConfigs);
         } else {
             globalRuleConfigs = param.getGlobalRuleConfigs();
         }
         ConfigurationProperties props = new 
ConfigurationProperties(param.getProps());
-        Map<String, ShardingSphereDatabase> databases = 
ExternalMetaDataFactory.create(effectiveDatabaseConfigs, props, 
computeNodeInstanceContext);
+        Map<String, ShardingSphereDatabase> databases = 
ExternalMetaDataFactory.create(effectiveDatabaseConfigs, props, 
instanceContext);
         MetaDataContexts result = newMetaDataContexts(persistService, param, 
globalRuleConfigs, databases, props);
-        persistDatabaseConfigurations(result, param, persistService, 
computeNodeInstanceContext);
+        persistDatabaseConfigurations(result, param, persistService, 
instanceContext);
         persistMetaData(result, persistService);
         return result;
     }
     
-    private static MetaDataContexts createByRepository(final 
MetaDataPersistService persistService, final ContextManagerBuilderParameter 
param,
-                                                       final 
ComputeNodeInstanceContext computeNodeInstanceContext) {
-        Map<String, DatabaseConfiguration> effectiveDatabaseConfigs =
-                
createEffectiveDatabaseConfigurations(getDatabaseNames(computeNodeInstanceContext,
 param.getDatabaseConfigs(), persistService), param.getDatabaseConfigs(), 
persistService);
+    private static MetaDataContexts createByRepository(final 
MetaDataPersistService persistService, final ContextManagerBuilderParameter 
param, final ComputeNodeInstanceContext instanceContext) {
+        Map<String, DatabaseConfiguration> effectiveDatabaseConfigs = 
createEffectiveDatabaseConfigurations(
+                getDatabaseNames(instanceContext, param.getDatabaseConfigs(), 
persistService), param.getDatabaseConfigs(), persistService);
         Collection<RuleConfiguration> globalRuleConfigs = 
persistService.getGlobalRuleService().load();
         ConfigurationProperties props = new 
ConfigurationProperties(persistService.getPropsService().load());
-        Map<String, ShardingSphereDatabase> databases = 
InternalMetaDataFactory.create(persistService, effectiveDatabaseConfigs, props, 
computeNodeInstanceContext);
+        Map<String, ShardingSphereDatabase> databases = 
InternalMetaDataFactory.create(persistService, effectiveDatabaseConfigs, props, 
instanceContext);
         MetaDataContexts result = newMetaDataContexts(persistService, param, 
globalRuleConfigs, databases, props);
-        restoreRules(result, computeNodeInstanceContext);
+        restoreRules(result, instanceContext);
         return result;
     }
     
@@ -141,9 +142,9 @@ public final class MetaDataContextsFactory {
         return new MetaDataContexts(shardingSphereMetaData, 
shardingSphereStatistics);
     }
     
-    private static Collection<String> getDatabaseNames(final 
ComputeNodeInstanceContext computeNodeInstanceContext,
+    private static Collection<String> getDatabaseNames(final 
ComputeNodeInstanceContext instanceContext,
                                                        final Map<String, 
DatabaseConfiguration> databaseConfigs, final MetaDataPersistService 
persistService) {
-        return computeNodeInstanceContext.getInstance().getMetaData() 
instanceof JDBCInstanceMetaData
+        return instanceContext.getInstance().getMetaData() instanceof 
JDBCInstanceMetaData
                 ? databaseConfigs.keySet()
                 : 
persistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames();
     }
@@ -210,8 +211,8 @@ public final class MetaDataContextsFactory {
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
-    private static void restoreRules(final MetaDataContexts metaDataContexts, 
final ComputeNodeInstanceContext computeNodeInstanceContext) {
-        if (!computeNodeInstanceContext.getModeConfiguration().isCluster()) {
+    private static void restoreRules(final MetaDataContexts metaDataContexts, 
final ComputeNodeInstanceContext instanceContext) {
+        if (!instanceContext.getModeConfiguration().isCluster()) {
             return;
         }
         for (RuleConfigurationPersistDecorator each : 
ShardingSphereServiceLoader.getServiceInstances(RuleConfigurationPersistDecorator.class))
 {
@@ -225,8 +226,8 @@ public final class MetaDataContextsFactory {
     }
     
     private static void persistDatabaseConfigurations(final MetaDataContexts 
metadataContexts, final ContextManagerBuilderParameter param, final 
MetaDataPersistService persistService,
-                                                      final 
ComputeNodeInstanceContext computeNodeInstanceContext) {
-        RuleConfigurationPersistDecorateEngine ruleConfigPersistDecorateEngine 
= new RuleConfigurationPersistDecorateEngine(computeNodeInstanceContext);
+                                                      final 
ComputeNodeInstanceContext instanceContext) {
+        RuleConfigurationPersistDecorateEngine ruleConfigPersistDecorateEngine 
= new RuleConfigurationPersistDecorateEngine(instanceContext);
         
persistService.persistGlobalRuleConfiguration(ruleConfigPersistDecorateEngine.decorate(metadataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations()),
 param.getProps());
         for (Entry<String, ? extends DatabaseConfiguration> entry : 
param.getDatabaseConfigs().entrySet()) {
             String databaseName = entry.getKey();
@@ -260,15 +261,15 @@ public final class MetaDataContextsFactory {
      * @param switchingResource switching resource
      * @param originalMetaDataContexts original meta data contexts
      * @param metaDataPersistService meta data persist service
-     * @param computeNodeInstanceContext compute node instance context
+     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
     public static MetaDataContexts createBySwitchResource(final String 
databaseName, final boolean internalLoadMetaData, final SwitchingResource 
switchingResource,
                                                           final 
MetaDataContexts originalMetaDataContexts, final MetaDataPersistService 
metaDataPersistService,
-                                                          final 
ComputeNodeInstanceContext computeNodeInstanceContext) throws SQLException {
+                                                          final 
ComputeNodeInstanceContext instanceContext) throws SQLException {
         ShardingSphereDatabase changedDatabase = createChangedDatabase(
-                databaseName, internalLoadMetaData, switchingResource, null, 
originalMetaDataContexts, metaDataPersistService, computeNodeInstanceContext);
+                databaseName, internalLoadMetaData, switchingResource, null, 
originalMetaDataContexts, metaDataPersistService, instanceContext);
         ConfigurationProperties props = 
originalMetaDataContexts.getMetaData().getProps();
         ShardingSphereMetaData clonedMetaData = 
cloneMetaData(originalMetaDataContexts.getMetaData(), changedDatabase);
         RuleMetaData changedGlobalMetaData = new RuleMetaData(
@@ -285,15 +286,15 @@ public final class MetaDataContextsFactory {
      * @param ruleConfigs rule configs
      * @param originalMetaDataContexts original meta data contexts
      * @param metaDataPersistService meta data persist service
-     * @param computeNodeInstanceContext compute node instance context
+     * @param instanceContext compute node instance context
      * @return meta data contexts
      * @throws SQLException SQL exception
      */
     public static MetaDataContexts createByAlterRule(final String 
databaseName, final boolean internalLoadMetaData, final 
Collection<RuleConfiguration> ruleConfigs,
                                                      final MetaDataContexts 
originalMetaDataContexts, final MetaDataPersistService metaDataPersistService,
-                                                     final 
ComputeNodeInstanceContext computeNodeInstanceContext) throws SQLException {
+                                                     final 
ComputeNodeInstanceContext instanceContext) throws SQLException {
         ShardingSphereDatabase changedDatabase = createChangedDatabase(
-                databaseName, internalLoadMetaData, null, ruleConfigs, 
originalMetaDataContexts, metaDataPersistService, computeNodeInstanceContext);
+                databaseName, internalLoadMetaData, null, ruleConfigs, 
originalMetaDataContexts, metaDataPersistService, instanceContext);
         ShardingSphereMetaData clonedMetaData = 
cloneMetaData(originalMetaDataContexts.getMetaData(), changedDatabase);
         ConfigurationProperties props = 
originalMetaDataContexts.getMetaData().getProps();
         RuleMetaData changedGlobalMetaData = new RuleMetaData(
@@ -318,7 +319,7 @@ public final class MetaDataContextsFactory {
      * @param ruleConfigs rule configurations
      * @param originalMetaDataContext original meta data contexts
      * @param metaDataPersistService meta data persist service
-     * @param computeNodeInstanceContext compute node instance context
+     * @param instanceContext compute node instance context
      * @return changed database
      * @throws SQLException SQL exception
      */
@@ -326,22 +327,22 @@ public final class MetaDataContextsFactory {
                                                                final 
SwitchingResource switchingResource, final Collection<RuleConfiguration> 
ruleConfigs,
                                                                final 
MetaDataContexts originalMetaDataContext,
                                                                final 
MetaDataPersistService metaDataPersistService,
-                                                               final 
ComputeNodeInstanceContext computeNodeInstanceContext) throws SQLException {
+                                                               final 
ComputeNodeInstanceContext instanceContext) 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,
-                metaDataPersistService, toBeCreatedDatabaseConfig, 
originalMetaDataContext.getMetaData().getProps(), computeNodeInstanceContext);
+                metaDataPersistService, toBeCreatedDatabaseConfig, 
originalMetaDataContext.getMetaData().getProps(), instanceContext);
     }
     
     private static ShardingSphereDatabase createChangedDatabase(final String 
databaseName, final boolean internalLoadMetaData, final MetaDataPersistService 
persistService,
                                                                 final 
DatabaseConfiguration databaseConfig, final ConfigurationProperties props,
-                                                                final 
ComputeNodeInstanceContext computeNodeInstanceContext) throws SQLException {
+                                                                final 
ComputeNodeInstanceContext instanceContext) throws SQLException {
         return internalLoadMetaData
-                ? InternalMetaDataFactory.create(databaseName, persistService, 
databaseConfig, props, computeNodeInstanceContext)
-                : ExternalMetaDataFactory.create(databaseName, databaseConfig, 
props, computeNodeInstanceContext);
+                ? InternalMetaDataFactory.create(databaseName, persistService, 
databaseConfig, props, instanceContext)
+                : ExternalMetaDataFactory.create(databaseName, databaseConfig, 
props, instanceContext);
     }
     
     private static ResourceMetaData getEffectiveResourceMetaData(final 
ShardingSphereDatabase database, final SwitchingResource resource) {

Reply via email to