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

kimmking 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 803611c  refactor orchestration facade (#6348)
803611c is described below

commit 803611ca626394f1c85e672452c082ecb283da90
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Jul 14 21:13:19 2020 +0800

    refactor orchestration facade (#6348)
---
 .../core/facade/ShardingOrchestrationFacade.java   | 111 ++++++++++++++-------
 .../facade/ShardingOrchestrationFacadeTest.java    |   8 +-
 .../AbstractOrchestrationDataSource.java           |  16 +--
 .../OrchestrationShardingSphereDataSource.java     |   8 +-
 .../OrchestrationConfigurationConverter.java       |  14 ++-
 5 files changed, 98 insertions(+), 59 deletions(-)

diff --git 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/main/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacade.java
 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/main/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacade.java
index 9c88f84..bcfb32d 100644
--- 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/main/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacade.java
+++ 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/main/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacade.java
@@ -57,84 +57,109 @@ public final class ShardingOrchestrationFacade implements 
AutoCloseable {
         ShardingSphereServiceLoader.register(ConfigCenterRepository.class);
         ShardingSphereServiceLoader.register(RegistryCenterRepository.class);
     }
-
-    @Getter
-    private static ShardingOrchestrationFacade instance;
     
-    private final ConfigCenterRepository configCenterRepository;
+    private ConfigCenterRepository configCenterRepository;
     
-    private final RegistryCenterRepository registryCenterRepository;
+    private RegistryCenterRepository registryCenterRepository;
 
-    private final ConfigCenterRepository centerRepository;
+    private ConfigCenterRepository centerRepository;
     
     @Getter
-    private final boolean isOverwrite;
+    private boolean isOverwrite;
     
     @Getter
-    private final ConfigCenter configCenter;
+    private ConfigCenter configCenter;
     
     @Getter
-    private final RegistryCenter registryCenter;
+    private RegistryCenter registryCenter;
 
     @Getter
-    private final MetaDataCenter metaDataCenter;
+    private MetaDataCenter metaDataCenter;
+    
+    private ShardingOrchestrationListenerManager listenerManager;
+    
+    private String configCenterName;
+    
+    private String registryCenterName;
+    
+    private String metaDataCenterName;
     
-    private final ShardingOrchestrationListenerManager listenerManager;
+    /**
+     * Init orchestration facade.
+     *
+     * @param orchestrationConfig orchestration configuration
+     * @param shardingSchemaNames collection of sharding schema names
+     */
+    public void init(final OrchestrationConfiguration orchestrationConfig, 
final Collection<String> shardingSchemaNames) {
+        initConfigCenter(orchestrationConfig);
+        initRegistryCenter(orchestrationConfig);
+        initMetaDataCenter(orchestrationConfig);
+        initListenerManager(shardingSchemaNames);
+    }
     
-    public ShardingOrchestrationFacade(final OrchestrationConfiguration 
orchestrationConfig, final Collection<String> shardingSchemaNames) {
-        Optional<String> configCenterName = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.CONFIG_CENTER.getValue());
-        Preconditions.checkArgument(configCenterName.isPresent(), "Can not 
find instance configuration with config center orchestration type.");
-        CenterConfiguration configCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(configCenterName.get());
+    private void initConfigCenter(final OrchestrationConfiguration 
orchestrationConfig) {
+        Optional<String> optional = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.CONFIG_CENTER.getValue());
+        Preconditions.checkArgument(optional.isPresent(), "Can not find 
instance configuration with config center orchestration type.");
+        configCenterName = optional.get();
+        CenterConfiguration configCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(configCenterName);
         Preconditions.checkNotNull(configCenterConfiguration, "Config center 
configuration cannot be null.");
         configCenterRepository = TypedSPIRegistry.getRegisteredService(
                 ConfigCenterRepository.class, 
configCenterConfiguration.getType(), configCenterConfiguration.getProps());
         configCenterRepository.init(configCenterConfiguration);
         isOverwrite = new 
OrchestrationProperties(configCenterConfiguration.getProps()).getValue(OrchestrationPropertyKey.OVERWRITE);
-        configCenter = new ConfigCenter(configCenterName.get(), 
configCenterRepository);
-        Optional<String> registryCenterName = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.REGISTRY_CENTER.getValue());
-        Preconditions.checkArgument(registryCenterName.isPresent(), "Can not 
find instance configuration with registry center orchestration type.");
-        CenterConfiguration registryCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(registryCenterName.get());
+        configCenter = new ConfigCenter(configCenterName, 
configCenterRepository);
+    }
+    
+    private void initRegistryCenter(final OrchestrationConfiguration 
orchestrationConfig) {
+        Optional<String> optional = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.REGISTRY_CENTER.getValue());
+        Preconditions.checkArgument(optional.isPresent(), "Can not find 
instance configuration with registry center orchestration type.");
+        registryCenterName = optional.get();
+        CenterConfiguration registryCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(registryCenterName);
         Preconditions.checkNotNull(registryCenterConfiguration, "Registry 
center configuration cannot be null.");
         registryCenterRepository = 
TypedSPIRegistry.getRegisteredService(RegistryCenterRepository.class, 
registryCenterConfiguration.getType(), registryCenterConfiguration.getProps());
         registryCenterRepository.init(registryCenterConfiguration);
-        registryCenter = new RegistryCenter(registryCenterName.get(), 
registryCenterRepository);
-        Optional<String> metaDataCenterName = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.METADATA_CENTER.getValue());
-        Preconditions.checkArgument(metaDataCenterName.isPresent(), "Can not 
find instance configuration with metadata center orchestration type.");
-        CenterConfiguration metaDataCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(metaDataCenterName.get());
+        registryCenter = new RegistryCenter(registryCenterName, 
registryCenterRepository);
+    }
+    
+    private void initMetaDataCenter(final OrchestrationConfiguration 
orchestrationConfig) {
+        Optional<String> optional = 
getInstanceNameByOrchestrationType(orchestrationConfig.getInstanceConfigurationMap(),
 CenterType.METADATA_CENTER.getValue());
+        Preconditions.checkArgument(optional.isPresent(), "Can not find 
instance configuration with metadata center orchestration type.");
+        metaDataCenterName = optional.get();
+        CenterConfiguration metaDataCenterConfiguration = 
orchestrationConfig.getInstanceConfigurationMap().get(metaDataCenterName);
         Preconditions.checkNotNull(metaDataCenterConfiguration, "MetaData 
center configuration cannot be null.");
         centerRepository = 
TypedSPIRegistry.getRegisteredService(ConfigCenterRepository.class, 
metaDataCenterConfiguration.getType(), metaDataCenterConfiguration.getProps());
         centerRepository.init(metaDataCenterConfiguration);
-        metaDataCenter = new MetaDataCenter(metaDataCenterName.get(), 
centerRepository);
-        listenerManager = shardingSchemaNames.isEmpty()
-                ? new ShardingOrchestrationListenerManager(
-                registryCenterName.get(), registryCenterRepository, 
configCenterName.get(),
-                configCenterRepository, metaDataCenterName.get(), 
centerRepository, configCenter.getAllShardingSchemaNames())
-                : new 
ShardingOrchestrationListenerManager(registryCenterName.get(), 
registryCenterRepository,
-                configCenterName.get(), configCenterRepository, 
metaDataCenterName.get(), centerRepository, shardingSchemaNames);
-        instance = this;
+        metaDataCenter = new MetaDataCenter(metaDataCenterName, 
centerRepository);
+    }
+    
+    private void initListenerManager(final Collection<String> 
shardingSchemaNames) {
+        listenerManager = new ShardingOrchestrationListenerManager(
+                registryCenterName, registryCenterRepository, configCenterName,
+                configCenterRepository, metaDataCenterName, centerRepository,
+                shardingSchemaNames.isEmpty() ? 
configCenter.getAllShardingSchemaNames() : shardingSchemaNames);
     }
     
     /**
-     * Initialize for orchestration.
+     * Init configurations of orchestration.
      *
      * @param dataSourceConfigurationMap schema data source configuration map
      * @param schemaRuleMap schema rule map
      * @param authentication authentication
      * @param props properties
      */
-    public void init(final Map<String, Map<String, DataSourceConfiguration>> 
dataSourceConfigurationMap,
+    public void initConfigurations(final Map<String, Map<String, 
DataSourceConfiguration>> dataSourceConfigurationMap,
                      final Map<String, Collection<RuleConfiguration>> 
schemaRuleMap, final Authentication authentication, final Properties props) {
         configCenter.persistGlobalConfiguration(authentication, props, 
isOverwrite);
         for (Entry<String, Map<String, DataSourceConfiguration>> entry : 
dataSourceConfigurationMap.entrySet()) {
             configCenter.persistConfigurations(entry.getKey(), 
dataSourceConfigurationMap.get(entry.getKey()), 
schemaRuleMap.get(entry.getKey()), isOverwrite);
         }
-        init();
+        initConfigurations();
     }
     
     /**
-     * Initialize for orchestration.
+     * Init configurations of orchestration.
      */
-    public void init() {
+    public void initConfigurations() {
         registryCenter.persistInstanceOnline();
         registryCenter.persistDataSourcesNode();
         listenerManager.initListeners();
@@ -179,4 +204,18 @@ public final class ShardingOrchestrationFacade implements 
AutoCloseable {
     private boolean contains(final String collection, final String element) {
         return 
Splitter.on(",").omitEmptyStrings().trimResults().splitToList(collection).stream().anyMatch(each
 -> element.equals(each.trim()));
     }
+    
+    /**
+     * Get orchestration facade instance.
+     *
+     * @return orchestration facade instance
+     */
+    public static ShardingOrchestrationFacade getInstance() {
+        return ShardingOrchestrationFacadeHolder.INSTANCE;
+    }
+    
+    private static final class ShardingOrchestrationFacadeHolder {
+        
+        public static final ShardingOrchestrationFacade INSTANCE = new 
ShardingOrchestrationFacade();
+    }
 }
diff --git 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/test/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacadeTest.java
 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/test/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacadeTest.java
index c9ae741..cb25c2e 100644
--- 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/test/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacadeTest.java
+++ 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/test/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacadeTest.java
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.verify;
 @RunWith(MockitoJUnitRunner.class)
 public final class ShardingOrchestrationFacadeTest {
     
-    private ShardingOrchestrationFacade shardingOrchestrationFacade;
+    private ShardingOrchestrationFacade shardingOrchestrationFacade = 
ShardingOrchestrationFacade.getInstance();
     
     @Mock
     private RegistryCenterRepository registryCenterRepository;
@@ -83,7 +83,7 @@ public final class ShardingOrchestrationFacadeTest {
         configuration3.setNamespace("namespace_3");
         instanceConfigurationMap.put("test_name_3", configuration3);
         OrchestrationConfiguration orchestrationConfiguration = new 
OrchestrationConfiguration(instanceConfigurationMap);
-        shardingOrchestrationFacade = new 
ShardingOrchestrationFacade(orchestrationConfiguration, 
Arrays.asList("sharding_db", "masterslave_db"));
+        shardingOrchestrationFacade.init(orchestrationConfiguration, 
Arrays.asList("sharding_db", "masterslave_db"));
         FieldUtil.setField(shardingOrchestrationFacade, 
"registryCenterRepository", registryCenterRepository);
         FieldUtil.setField(shardingOrchestrationFacade, "configCenter", 
configCenter);
         FieldUtil.setField(shardingOrchestrationFacade, "registryCenter", 
registryCenter);
@@ -99,7 +99,7 @@ public final class ShardingOrchestrationFacadeTest {
         Authentication authentication = new Authentication();
         authentication.getUsers().put("root", proxyUser);
         Properties props = new Properties();
-        
shardingOrchestrationFacade.init(Collections.singletonMap("sharding_db", 
dataSourceConfigurationMap), ruleConfigurationMap, authentication, props);
+        
shardingOrchestrationFacade.initConfigurations(Collections.singletonMap("sharding_db",
 dataSourceConfigurationMap), ruleConfigurationMap, authentication, props);
         verify(configCenter).persistConfigurations("sharding_db", 
dataSourceConfigurationMap, ruleConfigurationMap.get("sharding_db"), false);
         verify(configCenter).persistGlobalConfiguration(authentication, props, 
false);
         verify(registryCenter).persistInstanceOnline();
@@ -116,7 +116,7 @@ public final class ShardingOrchestrationFacadeTest {
     
     @Test
     public void assertInitWithoutParameters() {
-        shardingOrchestrationFacade.init();
+        shardingOrchestrationFacade.initConfigurations();
         verify(registryCenter).persistInstanceOnline();
         verify(registryCenter).persistDataSourcesNode();
         verify(listenerManager).initListeners();
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/AbstractOrchestrationDataSource.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/AbstractOrchestrationDataSource.java
index 12798a7..095bc4d 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/AbstractOrchestrationDataSource.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/AbstractOrchestrationDataSource.java
@@ -31,6 +31,7 @@ import 
org.apache.shardingsphere.infra.config.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.metadata.schema.RuleSchemaMetaData;
+import 
org.apache.shardingsphere.orchestration.center.config.OrchestrationConfiguration;
 import 
org.apache.shardingsphere.orchestration.core.common.eventbus.ShardingOrchestrationEventBus;
 import 
org.apache.shardingsphere.orchestration.core.facade.ShardingOrchestrationFacade;
 
@@ -39,6 +40,7 @@ import java.io.PrintWriter;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -58,13 +60,13 @@ public abstract class AbstractOrchestrationDataSource 
extends AbstractUnsupporte
     private PrintWriter logWriter = new PrintWriter(System.out);
     
     @Getter(AccessLevel.PROTECTED)
-    private final ShardingOrchestrationFacade shardingOrchestrationFacade;
+    private final ShardingOrchestrationFacade shardingOrchestrationFacade = 
ShardingOrchestrationFacade.getInstance();
     
     @Getter(AccessLevel.PROTECTED)
     private final Map<String, DataSourceConfiguration> 
dataSourceConfigurations = new LinkedHashMap<>();
     
-    public AbstractOrchestrationDataSource(final ShardingOrchestrationFacade 
shardingOrchestrationFacade) {
-        this.shardingOrchestrationFacade = shardingOrchestrationFacade;
+    public AbstractOrchestrationDataSource(final OrchestrationConfiguration 
orchestrationConfig) {
+        this.shardingOrchestrationFacade.init(orchestrationConfig, 
Collections.singletonList(DefaultSchema.LOGIC_NAME));
         ShardingOrchestrationEventBus.getInstance().register(this);
     }
     
@@ -87,12 +89,12 @@ public abstract class AbstractOrchestrationDataSource 
extends AbstractUnsupporte
     }
     
     protected final void initShardingOrchestrationFacade() {
-        shardingOrchestrationFacade.init();
+        shardingOrchestrationFacade.initConfigurations();
         
dataSourceConfigurations.putAll(shardingOrchestrationFacade.getConfigCenter().loadDataSourceConfigurations(DefaultSchema.LOGIC_NAME));
     }
     
     protected final void initShardingOrchestrationFacade(final 
ClusterConfiguration clusterConfiguration) {
-        shardingOrchestrationFacade.init();
+        shardingOrchestrationFacade.initConfigurations();
         
shardingOrchestrationFacade.initClusterConfiguration(clusterConfiguration);
         
dataSourceConfigurations.putAll(shardingOrchestrationFacade.getConfigCenter().loadDataSourceConfigurations(DefaultSchema.LOGIC_NAME));
     }
@@ -100,14 +102,14 @@ public abstract class AbstractOrchestrationDataSource 
extends AbstractUnsupporte
     protected final void initShardingOrchestrationFacade(
             final Map<String, Map<String, DataSourceConfiguration>> 
dataSourceConfigurations,
             final Map<String, Collection<RuleConfiguration>> schemaRules, 
final Properties props) {
-        shardingOrchestrationFacade.init(dataSourceConfigurations, 
schemaRules, null, props);
+        
shardingOrchestrationFacade.initConfigurations(dataSourceConfigurations, 
schemaRules, null, props);
         
this.dataSourceConfigurations.putAll(dataSourceConfigurations.get(DefaultSchema.LOGIC_NAME));
     }
     
     protected final void initShardingOrchestrationFacade(
             final Map<String, Map<String, DataSourceConfiguration>> 
dataSourceConfigurations,
             final Map<String, Collection<RuleConfiguration>> schemaRules, 
final Properties props, final ClusterConfiguration clusterConfiguration) {
-        shardingOrchestrationFacade.init(dataSourceConfigurations, 
schemaRules, null, props);
+        
shardingOrchestrationFacade.initConfigurations(dataSourceConfigurations, 
schemaRules, null, props);
         
shardingOrchestrationFacade.initClusterConfiguration(clusterConfiguration);
         
this.dataSourceConfigurations.putAll(dataSourceConfigurations.get(DefaultSchema.LOGIC_NAME));
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
index de6d024..72c6b26 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
@@ -70,7 +70,7 @@ public class OrchestrationShardingSphereDataSource extends 
AbstractOrchestration
     private ShardingSphereDataSource dataSource;
     
     public OrchestrationShardingSphereDataSource(final 
OrchestrationConfiguration orchestrationConfig) throws SQLException {
-        super(new ShardingOrchestrationFacade(orchestrationConfig, 
Collections.singletonList(DefaultSchema.LOGIC_NAME)));
+        super(orchestrationConfig);
         ConfigCenter configService = 
getShardingOrchestrationFacade().getConfigCenter();
         Collection<RuleConfiguration> configurations = 
configService.loadRuleConfigurations(DefaultSchema.LOGIC_NAME);
         Preconditions.checkState(!configurations.isEmpty(), "Missing the 
sharding rule configuration on registry center");
@@ -83,7 +83,7 @@ public class OrchestrationShardingSphereDataSource extends 
AbstractOrchestration
     }
     
     public OrchestrationShardingSphereDataSource(final 
ShardingSphereDataSource shardingSphereDataSource, final 
OrchestrationConfiguration orchestrationConfig) {
-        super(new ShardingOrchestrationFacade(orchestrationConfig, 
Collections.singletonList(DefaultSchema.LOGIC_NAME)));
+        super(orchestrationConfig);
         dataSource = shardingSphereDataSource;
         
initShardingOrchestrationFacade(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
 
DataSourceConverter.getDataSourceConfigurationMap(dataSource.getDataSourceMap())),
                 getRuleConfigurationMap(), 
dataSource.getSchemaContexts().getProps().getProps());
@@ -93,7 +93,7 @@ public class OrchestrationShardingSphereDataSource extends 
AbstractOrchestration
     }
     
     public OrchestrationShardingSphereDataSource(final 
OrchestrationConfiguration orchestrationConfig, final ClusterConfiguration 
clusterConfiguration) throws SQLException {
-        super(new ShardingOrchestrationFacade(orchestrationConfig, 
Collections.singletonList(DefaultSchema.LOGIC_NAME)));
+        super(orchestrationConfig);
         ConfigCenter configService = 
getShardingOrchestrationFacade().getConfigCenter();
         Collection<RuleConfiguration> configurations = 
configService.loadRuleConfigurations(DefaultSchema.LOGIC_NAME);
         Preconditions.checkState(!configurations.isEmpty(), "Missing the 
sharding rule configuration on registry center");
@@ -107,7 +107,7 @@ public class OrchestrationShardingSphereDataSource extends 
AbstractOrchestration
     
     public OrchestrationShardingSphereDataSource(final 
ShardingSphereDataSource shardingSphereDataSource,
                                                  final 
OrchestrationConfiguration orchestrationConfig, final ClusterConfiguration 
clusterConfiguration) {
-        super(new ShardingOrchestrationFacade(orchestrationConfig, 
Collections.singletonList(DefaultSchema.LOGIC_NAME)));
+        super(orchestrationConfig);
         dataSource = shardingSphereDataSource;
         
initShardingOrchestrationFacade(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
 
DataSourceConverter.getDataSourceConfigurationMap(dataSource.getDataSourceMap())),
                 getRuleConfigurationMap(), 
dataSource.getSchemaContexts().getProps().getProps(), clusterConfiguration);
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-orchestration/src/main/java/org/apache/shardingsphere/proxy/orchestration/OrchestrationConfigurationConverter.java
 
b/shardingsphere-proxy/shardingsphere-proxy-orchestration/src/main/java/org/apache/shardingsphere/proxy/orchestration/OrchestrationConfigurationConverter.java
index 086fc27..64b6a0f 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-orchestration/src/main/java/org/apache/shardingsphere/proxy/orchestration/OrchestrationConfigurationConverter.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-orchestration/src/main/java/org/apache/shardingsphere/proxy/orchestration/OrchestrationConfigurationConverter.java
@@ -52,17 +52,15 @@ import java.util.Set;
  */
 public class OrchestrationConfigurationConverter extends 
AbstractConfigurationConverter {
     
-    private ShardingOrchestrationFacade shardingOrchestrationFacade;
+    private ShardingOrchestrationFacade shardingOrchestrationFacade = 
ShardingOrchestrationFacade.getInstance();
     
     @Override
     public ProxyConfiguration convert(final ShardingConfiguration 
shardingConfiguration) {
         Map<String, YamlCenterRepositoryConfiguration> orchestration = 
shardingConfiguration.getServerConfiguration().getOrchestration();
         Set<String> schemaNames = 
shardingConfiguration.getRuleConfigurationMap().keySet();
         ProxyConfiguration proxyConfiguration = new ProxyConfiguration();
-        shardingOrchestrationFacade = new ShardingOrchestrationFacade(
-                new OrchestrationConfigurationYamlSwapper().swapToObject(new 
YamlOrchestrationConfiguration(orchestration)), schemaNames
-        );
-        
initShardingOrchestrationFacade(shardingConfiguration.getServerConfiguration(), 
shardingConfiguration.getRuleConfigurationMap(), shardingOrchestrationFacade);
+        shardingOrchestrationFacade.init(new 
OrchestrationConfigurationYamlSwapper().swapToObject(new 
YamlOrchestrationConfiguration(orchestration)), schemaNames);
+        
initOrchestrationConfigurations(shardingConfiguration.getServerConfiguration(), 
shardingConfiguration.getRuleConfigurationMap(), shardingOrchestrationFacade);
         Authentication authentication = 
shardingOrchestrationFacade.getConfigCenter().loadAuthentication();
         Properties properties = 
shardingOrchestrationFacade.getConfigCenter().loadProperties();
         Map<String, Map<String, DataSourceParameter>> schemaDataSources = 
getDataSourceParametersMap(shardingOrchestrationFacade);
@@ -82,12 +80,12 @@ public class OrchestrationConfigurationConverter extends 
AbstractConfigurationCo
         return new ProxyOrchestrationSchemaContexts(builder.build());
     }
     
-    private void initShardingOrchestrationFacade(
+    private void initOrchestrationConfigurations(
             final YamlProxyServerConfiguration serverConfig, final Map<String, 
YamlProxyRuleConfiguration> ruleConfigs, final ShardingOrchestrationFacade 
shardingOrchestrationFacade) {
         if (isEmptyLocalConfiguration(serverConfig, ruleConfigs)) {
-            shardingOrchestrationFacade.init();
+            shardingOrchestrationFacade.initConfigurations();
         } else {
-            
shardingOrchestrationFacade.init(getDataSourceConfigurationMap(ruleConfigs),
+            
shardingOrchestrationFacade.initConfigurations(getDataSourceConfigurationMap(ruleConfigs),
                     getRuleConfigurations(ruleConfigs), new 
AuthenticationYamlSwapper().swapToObject(serverConfig.getAuthentication()), 
serverConfig.getProps());
         }
         
shardingOrchestrationFacade.initMetricsConfiguration(Optional.ofNullable(serverConfig.getMetrics()).map(new
 MetricsConfigurationYamlSwapper()::swapToObject).orElse(null));

Reply via email to