You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ki...@apache.org on 2020/07/14 13:13:43 UTC
[shardingsphere] branch master updated: refactor orchestration
facade (#6348)
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 <me...@gmail.com>
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));