You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2025/03/14 07:51:37 UTC

(shardingsphere) branch master updated: Minor refactor for MetaDataImportExecutor and StandaloneContextManagerBuilder (#34990)

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

duanzhengqiang 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 e510edbe0f3 Minor refactor for MetaDataImportExecutor and StandaloneContextManagerBuilder (#34990)
e510edbe0f3 is described below

commit e510edbe0f3476ab5fbaaf9e8a89f2d693100dc8
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Fri Mar 14 15:51:31 2025 +0800

    Minor refactor for MetaDataImportExecutor and StandaloneContextManagerBuilder (#34990)
---
 .../StandaloneContextManagerBuilder.java           |  4 ++--
 .../proxy/backend/util/MetaDataImportExecutor.java | 26 +++++++++++++---------
 2 files changed, 18 insertions(+), 12 deletions(-)

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 87ba37a632c..6f6a79c833d 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
@@ -43,10 +43,10 @@ public final class StandaloneContextManagerBuilder implements ContextManagerBuil
     @Override
     public ContextManager build(final ContextManagerBuilderParameter param, final EventBusContext eventBusContext) throws SQLException {
         PersistRepositoryConfiguration repositoryConfig = param.getModeConfiguration().getRepository();
-        StandalonePersistRepository repository = TypedSPILoader.getService(
-                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());
+        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);
     }
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
index 8ecf5eea812..c7286e529b3 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
@@ -27,7 +27,9 @@ import org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyServerConfig
 import org.apache.shardingsphere.proxy.backend.distsql.export.ExportedMetaData;
 
 import java.util.Collection;
-import java.util.LinkedList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
 
 /**
  * Metadata import executor.
@@ -52,13 +54,13 @@ public final class MetaDataImportExecutor {
      * @param exportedMetaData exported metadata
      */
     public void importClusterConfigurations(final ExportedMetaData exportedMetaData) {
-        Collection<YamlProxyDatabaseConfiguration> databaseConfigs = getYamlProxyDatabaseConfigurations(exportedMetaData);
-        importServerConfiguration(exportedMetaData);
-        importDatabaseConfigurations(databaseConfigs);
+        Map<String, YamlProxyDatabaseConfiguration> databaseConfigs = getYamlProxyDatabaseConfigurations(exportedMetaData);
+        YamlProxyServerConfiguration yamlServerConfig = getYamlServerConfig(exportedMetaData);
+        importServerConfiguration(yamlServerConfig);
+        importDatabaseConfigurations(databaseConfigs.values());
     }
     
-    private void importServerConfiguration(final ExportedMetaData exportedMetaData) {
-        YamlProxyServerConfiguration yamlServerConfig = YamlEngine.unmarshal(exportedMetaData.getRules() + System.lineSeparator() + exportedMetaData.getProps(), YamlProxyServerConfiguration.class);
+    private void importServerConfiguration(final YamlProxyServerConfiguration yamlServerConfig) {
         if (null == yamlServerConfig) {
             return;
         }
@@ -77,14 +79,18 @@ public final class MetaDataImportExecutor {
         contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
     }
     
-    private Collection<YamlProxyDatabaseConfiguration> getYamlProxyDatabaseConfigurations(final ExportedMetaData exportedMetaData) {
-        Collection<YamlProxyDatabaseConfiguration> result = new LinkedList<>();
-        for (String each : exportedMetaData.getDatabases().values()) {
-            result.add(YamlEngine.unmarshal(each, YamlProxyDatabaseConfiguration.class));
+    private Map<String, YamlProxyDatabaseConfiguration> getYamlProxyDatabaseConfigurations(final ExportedMetaData exportedMetaData) {
+        Map<String, YamlProxyDatabaseConfiguration> result = new LinkedHashMap<>();
+        for (Entry<String, String> entry : exportedMetaData.getDatabases().entrySet()) {
+            result.put(entry.getKey(), YamlEngine.unmarshal(entry.getValue(), YamlProxyDatabaseConfiguration.class));
         }
         return result;
     }
     
+    private YamlProxyServerConfiguration getYamlServerConfig(final ExportedMetaData exportedMetaData) {
+        return YamlEngine.unmarshal(exportedMetaData.getRules() + System.lineSeparator() + exportedMetaData.getProps(), YamlProxyServerConfiguration.class);
+    }
+    
     /**
      * Import database configurations.
      *