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 70f8fc7  Pull up common logic to AbstractBootstrapInitializer (#11864)
70f8fc7 is described below

commit 70f8fc75d8e43961eb8de6ffd591194462be75e7
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Aug 17 21:22:37 2021 +0800

    Pull up common logic to AbstractBootstrapInitializer (#11864)
    
    * Refactor AbstractBootstrapInitializer
    
    * Refactor AbstractBootstrapInitializer
---
 .../governance/context/ClusterContextManager.java  |  1 +
 .../initializer/BootstrapInitializerFactory.java   |  4 +-
 .../impl/AbstractBootstrapInitializer.java         | 90 ++++++----------------
 .../impl/ClusterBootstrapInitializer.java          | 59 +-------------
 .../impl/MemoryBootstrapInitializer.java           | 34 +-------
 .../impl/StandaloneBootstrapInitializer.java       | 39 +---------
 6 files changed, 36 insertions(+), 191 deletions(-)

diff --git 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
index bb60107..dfe4e36 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
@@ -103,6 +103,7 @@ public final class ClusterContextManager implements 
ContextManager {
         disableDataSources();
         persistMetaData();
         lock = createShardingSphereLock(registryCenter.getRepository());
+        registryCenter.onlineInstance(metaDataContexts.getAllSchemaNames());
     }
     
     private void disableDataSources() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializerFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializerFactory.java
index 8e19870..1fac766 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializerFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializerFactory.java
@@ -42,10 +42,10 @@ public final class BootstrapInitializerFactory {
     public static BootstrapInitializer newInstance(final ShardingSphereMode 
mode, final boolean overwrite) {
         // TODO split to pluggable SPI
         if (mode instanceof StandaloneMode) {
-            return new StandaloneBootstrapInitializer(mode, overwrite);
+            return new StandaloneBootstrapInitializer(mode);
         }
         if (mode instanceof ClusterMode) {
-            return new ClusterBootstrapInitializer(mode, overwrite);
+            return new ClusterBootstrapInitializer(mode);
         }
         return new MemoryBootstrapInitializer(mode);
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
index d7300f0..7856ef0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
@@ -21,21 +21,16 @@ import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLServerInfo;
 import 
org.apache.shardingsphere.db.protocol.postgresql.constant.PostgreSQLServerInfo;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import 
org.apache.shardingsphere.infra.config.condition.PreConditionRuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
+import org.apache.shardingsphere.infra.context.manager.ContextManagerBuilder;
 import org.apache.shardingsphere.infra.mode.ShardingSphereMode;
 import org.apache.shardingsphere.infra.persist.DistMetaDataPersistService;
-import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRuleConfiguration;
-import 
org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfigurationSwapperEngine;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
 import 
org.apache.shardingsphere.proxy.config.util.DataSourceParameterConverter;
-import org.apache.shardingsphere.proxy.config.yaml.YamlProxyRuleConfiguration;
-import 
org.apache.shardingsphere.proxy.config.yaml.YamlProxyServerConfiguration;
 import 
org.apache.shardingsphere.proxy.config.yaml.swapper.YamlProxyConfigurationSwapper;
 import org.apache.shardingsphere.proxy.database.DatabaseServerInfo;
 import org.apache.shardingsphere.proxy.initializer.BootstrapInitializer;
@@ -43,13 +38,10 @@ import 
org.apache.shardingsphere.scaling.core.config.ServerConfiguration;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
-import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
-import java.util.Properties;
-import java.util.stream.Collectors;
 
 /**
  * Abstract bootstrap initializer.
@@ -70,14 +62,32 @@ public abstract class AbstractBootstrapInitializer 
implements BootstrapInitializ
     @Override
     public final void init(final YamlProxyConfiguration yamlConfig) throws 
SQLException {
         ProxyConfiguration proxyConfig = new 
YamlProxyConfigurationSwapper().swap(yamlConfig);
-        ContextManager contextManager = createContextManager(mode, 
proxyConfig);
+        boolean isOverwrite = null == 
yamlConfig.getServerConfiguration().getMode() || 
yamlConfig.getServerConfiguration().getMode().isOverwrite();
+        ContextManager contextManager = createContextManagerBuilder().build(
+                mode, getDataSourcesMap(proxyConfig.getSchemaDataSources()), 
proxyConfig.getSchemaRules(), proxyConfig.getGlobalRules(), 
proxyConfig.getProps(), isOverwrite);
         ProxyContext.getInstance().init(contextManager);
         setDatabaseServerInfo();
         initScalingInternal(yamlConfig);
-        postInit(yamlConfig);
     }
     
-    protected abstract ContextManager createContextManager(ShardingSphereMode 
mode, ProxyConfiguration proxyConfig) throws SQLException;
+    protected abstract ContextManagerBuilder createContextManagerBuilder();
+    
+    // TODO add DataSourceParameter param to ContextManagerBuilder to avoid 
re-build data source
+    private Map<String, Map<String, DataSource>> getDataSourcesMap(final 
Map<String, Map<String, DataSourceParameter>> dataSourceParametersMap) {
+        Map<String, Map<String, DataSource>> result = new 
LinkedHashMap<>(dataSourceParametersMap.size(), 1);
+        for (Entry<String, Map<String, DataSourceParameter>> entry : 
dataSourceParametersMap.entrySet()) {
+            result.put(entry.getKey(), 
getDataSourceMap(DataSourceParameterConverter.getDataSourceConfigurationMap(entry.getValue())));
+        }
+        return result;
+    }
+    
+    private Map<String, DataSource> getDataSourceMap(final Map<String, 
DataSourceConfiguration> dataSourceConfigMap) {
+        Map<String, DataSource> result = new 
LinkedHashMap<>(dataSourceConfigMap.size(), 1);
+        for (Entry<String, DataSourceConfiguration> entry : 
dataSourceConfigMap.entrySet()) {
+            result.put(entry.getKey(), entry.getValue().createDataSource());
+        }
+        return result;
+    }
     
     private void setDatabaseServerInfo() {
         findBackendDataSource().ifPresent(dataSourceSample -> {
@@ -118,60 +128,4 @@ public abstract class AbstractBootstrapInitializer 
implements BootstrapInitializ
     }
     
     protected abstract void initScaling(YamlProxyConfiguration yamlConfig);
-    
-    protected final void persistConfigurations(final YamlProxyConfiguration 
yamlConfig, final boolean overwrite) {
-        YamlProxyServerConfiguration serverConfig = 
yamlConfig.getServerConfiguration();
-        Map<String, YamlProxyRuleConfiguration> ruleConfigs = 
yamlConfig.getRuleConfigurations();
-        if (!isEmptyLocalConfiguration(serverConfig, ruleConfigs) && null != 
distMetaDataPersistService) {
-            
distMetaDataPersistService.persistConfigurations(getDataSourceConfigurationMap(ruleConfigs),
-                    getSchemaRuleConfigurations(ruleConfigs), 
getGlobalRuleConfigurations(serverConfig.getRules()), serverConfig.getProps(), 
overwrite);
-        }
-    }
-    
-    private boolean isEmptyLocalConfiguration(final 
YamlProxyServerConfiguration serverConfig, final Map<String, 
YamlProxyRuleConfiguration> ruleConfigs) {
-        return ruleConfigs.isEmpty() && serverConfig.getRules().isEmpty() && 
serverConfig.getProps().isEmpty();
-    }
-    
-    private Map<String, Map<String, DataSourceConfiguration>> 
getDataSourceConfigurationMap(final Map<String, YamlProxyRuleConfiguration> 
ruleConfigs) {
-        Map<String, Map<String, DataSourceConfiguration>> result = new 
LinkedHashMap<>(ruleConfigs.size(), 1);
-        for (Entry<String, YamlProxyRuleConfiguration> entry : 
ruleConfigs.entrySet()) {
-            result.put(entry.getKey(),
-                    
DataSourceParameterConverter.getDataSourceConfigurationMap(DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(entry.getValue().getDataSources())));
-        }
-        return result;
-    }
-    
-    private Map<String, Collection<RuleConfiguration>> 
getSchemaRuleConfigurations(final Map<String, YamlProxyRuleConfiguration> 
yamlRuleConfigs) {
-        YamlRuleConfigurationSwapperEngine swapperEngine = new 
YamlRuleConfigurationSwapperEngine();
-        return 
yamlRuleConfigs.entrySet().stream().collect(Collectors.toMap(Entry::getKey,
-            entry -> 
swapperEngine.swapToRuleConfigurations(entry.getValue().getRules()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new));
-    }
-    
-    private Collection<RuleConfiguration> getGlobalRuleConfigurations(final 
Collection<YamlRuleConfiguration> globalRuleConfigs) {
-        return new 
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(globalRuleConfigs).stream().filter(
-            each -> !(each instanceof 
PreConditionRuleConfiguration)).collect(Collectors.toList());
-    }
-    
-    protected final ProxyConfiguration loadProxyConfiguration() {
-        Collection<String> schemaNames = 
distMetaDataPersistService.getSchemaMetaDataService().loadAllNames();
-        Map<String, Map<String, DataSourceParameter>> schemaDataSources = 
loadDataSourceParametersMap(schemaNames);
-        Map<String, Collection<RuleConfiguration>> schemaRuleConfigs = 
loadSchemaRules(schemaNames);
-        Collection<RuleConfiguration> globalRuleConfigs = 
distMetaDataPersistService.getGlobalRuleService().load();
-        Properties props = distMetaDataPersistService.getPropsService().load();
-        return new ProxyConfiguration(schemaDataSources, schemaRuleConfigs, 
globalRuleConfigs, props);
-    }
-    
-    private Map<String, Map<String, DataSourceParameter>> 
loadDataSourceParametersMap(final Collection<String> schemaNames) {
-        return schemaNames.stream().collect(Collectors.toMap(each -> each, 
-            each -> 
DataSourceParameterConverter.getDataSourceParameterMap(distMetaDataPersistService.getDataSourceService()
-                .load(each)), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new));
-    }
-    
-    private Map<String, Collection<RuleConfiguration>> loadSchemaRules(final 
Collection<String> schemaNames) {
-        return schemaNames.stream().collect(Collectors.toMap(
-            each -> each, each -> 
distMetaDataPersistService.getSchemaRuleService().load(each), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new));
-    }
-    
-    protected void postInit(final YamlProxyConfiguration yamlConfig) {
-    }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/ClusterBootstrapInitializer.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/ClusterBootstrapInitializer.java
index abd7587..5b81806 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/ClusterBootstrapInitializer.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/ClusterBootstrapInitializer.java
@@ -17,71 +17,30 @@
 
 package org.apache.shardingsphere.proxy.initializer.impl;
 
-import com.google.common.base.Preconditions;
 import 
org.apache.shardingsphere.governance.context.ClusterContextManagerBuilder;
-import org.apache.shardingsphere.governance.core.registry.RegistryCenter;
-import 
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
-import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
-import org.apache.shardingsphere.infra.context.manager.ContextManager;
+import org.apache.shardingsphere.infra.context.manager.ContextManagerBuilder;
 import org.apache.shardingsphere.infra.mode.ShardingSphereMode;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.mode.ModeConfigurationYamlSwapper;
-import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
-import 
org.apache.shardingsphere.proxy.config.util.DataSourceParameterConverter;
 import org.apache.shardingsphere.scaling.core.api.ScalingWorker;
 import org.apache.shardingsphere.scaling.core.config.ScalingContext;
 import org.apache.shardingsphere.scaling.core.config.ServerConfiguration;
 
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Cluster bootstrap initializer.
  */
 public final class ClusterBootstrapInitializer extends 
AbstractBootstrapInitializer {
     
-    private final RegistryCenter registryCenter;
-    
-    private final boolean isOverwrite;
-    
-    public ClusterBootstrapInitializer(final ShardingSphereMode mode, final 
boolean isOverwrite) {
+    public ClusterBootstrapInitializer(final ShardingSphereMode mode) {
         super(mode);
-        Preconditions.checkState(mode.getPersistRepository().isPresent());
-        registryCenter = new RegistryCenter((RegistryCenterRepository) 
mode.getPersistRepository().get());
-        this.isOverwrite = isOverwrite;
     }
     
     @Override
-    protected ContextManager createContextManager(final ShardingSphereMode 
mode, final ProxyConfiguration proxyConfig) throws SQLException {
-        return new ClusterContextManagerBuilder().build(
-                mode, getDataSourcesMap(proxyConfig.getSchemaDataSources()), 
proxyConfig.getSchemaRules(), proxyConfig.getGlobalRules(), 
proxyConfig.getProps(), isOverwrite);
-    }
-    
-    // TODO add DataSourceParameter param to ContextManagerBuilder to avoid 
re-build data source
-    private Map<String, Map<String, DataSource>> getDataSourcesMap(final 
Map<String, Map<String, DataSourceParameter>> dataSourceParametersMap) {
-        Map<String, Map<String, DataSource>> result = new 
LinkedHashMap<>(dataSourceParametersMap.size(), 1);
-        for (Entry<String, Map<String, DataSourceParameter>> entry : 
dataSourceParametersMap.entrySet()) {
-            result.put(entry.getKey(), 
getDataSourceMap(DataSourceParameterConverter.getDataSourceConfigurationMap(entry.getValue())));
-        }
-        return result;
-    }
-    
-    private Map<String, DataSource> getDataSourceMap(final Map<String, 
DataSourceConfiguration> dataSourceConfigMap) {
-        Map<String, DataSource> result = new 
LinkedHashMap<>(dataSourceConfigMap.size(), 1);
-        for (Entry<String, DataSourceConfiguration> entry : 
dataSourceConfigMap.entrySet()) {
-            result.put(entry.getKey(), entry.getValue().createDataSource());
-        }
-        return result;
+    protected ContextManagerBuilder createContextManagerBuilder() {
+        return new ClusterContextManagerBuilder();
     }
     
     @Override
@@ -98,14 +57,4 @@ public final class ClusterBootstrapInitializer extends 
AbstractBootstrapInitiali
         ScalingContext.getInstance().init(scalingConfig);
         ScalingWorker.init();
     }
-    
-    @Override
-    protected void postInit(final YamlProxyConfiguration yamlConfig) {
-        registryCenter.onlineInstance(getSchemaNames(yamlConfig));
-    }
-    
-    private Set<String> getSchemaNames(final YamlProxyConfiguration 
yamlConfig) {
-        return 
Stream.of(getDistMetaDataPersistService().getSchemaMetaDataService().loadAllNames(),
 
-                
yamlConfig.getRuleConfigurations().keySet()).flatMap(Collection::stream).collect(Collectors.toSet());
-    }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/MemoryBootstrapInitializer.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/MemoryBootstrapInitializer.java
index d18b9b6..de08591 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/MemoryBootstrapInitializer.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/MemoryBootstrapInitializer.java
@@ -17,22 +17,12 @@
 
 package org.apache.shardingsphere.proxy.initializer.impl;
 
-import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
-import org.apache.shardingsphere.infra.context.manager.ContextManager;
+import org.apache.shardingsphere.infra.context.manager.ContextManagerBuilder;
 import 
org.apache.shardingsphere.infra.context.manager.impl.MemoryContextManagerBuilder;
 import org.apache.shardingsphere.infra.mode.ShardingSphereMode;
-import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
-import 
org.apache.shardingsphere.proxy.config.util.DataSourceParameterConverter;
 import org.apache.shardingsphere.scaling.core.config.ScalingContext;
 
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
 /**
  * Memory bootstrap initializer.
  */
@@ -43,26 +33,8 @@ public final class MemoryBootstrapInitializer extends 
AbstractBootstrapInitializ
     }
     
     @Override
-    protected ContextManager createContextManager(final ShardingSphereMode 
mode, final ProxyConfiguration proxyConfig) throws SQLException {
-        return new MemoryContextManagerBuilder().build(
-                mode, getDataSourcesMap(proxyConfig.getSchemaDataSources()), 
proxyConfig.getSchemaRules(), proxyConfig.getGlobalRules(), 
proxyConfig.getProps(), true);
-    }
-    
-    // TODO add DataSourceParameter param to ContextManagerBuilder to avoid 
re-build data source
-    private Map<String, Map<String, DataSource>> getDataSourcesMap(final 
Map<String, Map<String, DataSourceParameter>> dataSourceParametersMap) {
-        Map<String, Map<String, DataSource>> result = new 
LinkedHashMap<>(dataSourceParametersMap.size(), 1);
-        for (Entry<String, Map<String, DataSourceParameter>> entry : 
dataSourceParametersMap.entrySet()) {
-            result.put(entry.getKey(), 
getDataSourceMap(DataSourceParameterConverter.getDataSourceConfigurationMap(entry.getValue())));
-        }
-        return result;
-    }
-    
-    private Map<String, DataSource> getDataSourceMap(final Map<String, 
DataSourceConfiguration> dataSourceConfigMap) {
-        Map<String, DataSource> result = new 
LinkedHashMap<>(dataSourceConfigMap.size(), 1);
-        for (Entry<String, DataSourceConfiguration> entry : 
dataSourceConfigMap.entrySet()) {
-            result.put(entry.getKey(), entry.getValue().createDataSource());
-        }
-        return result;
+    protected ContextManagerBuilder createContextManagerBuilder() {
+        return new MemoryContextManagerBuilder();
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandaloneBootstrapInitializer.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandaloneBootstrapInitializer.java
index 43a41e3..be12376 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandaloneBootstrapInitializer.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandaloneBootstrapInitializer.java
@@ -17,55 +17,24 @@
 
 package org.apache.shardingsphere.proxy.initializer.impl;
 
-import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
-import org.apache.shardingsphere.infra.context.manager.ContextManager;
+import org.apache.shardingsphere.infra.context.manager.ContextManagerBuilder;
 import 
org.apache.shardingsphere.infra.context.manager.impl.StandaloneContextManagerBuilder;
 import org.apache.shardingsphere.infra.mode.ShardingSphereMode;
-import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
-import 
org.apache.shardingsphere.proxy.config.util.DataSourceParameterConverter;
 import org.apache.shardingsphere.scaling.core.config.ScalingContext;
 
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
 /**
  * Standalone bootstrap initializer.
  */
 public final class StandaloneBootstrapInitializer extends 
AbstractBootstrapInitializer {
     
-    private final boolean isOverwrite;
-    
-    public StandaloneBootstrapInitializer(final ShardingSphereMode mode, final 
boolean isOverwrite) {
+    public StandaloneBootstrapInitializer(final ShardingSphereMode mode) {
         super(mode);
-        this.isOverwrite = isOverwrite;
     }
     
     @Override
-    protected ContextManager createContextManager(final ShardingSphereMode 
mode, final ProxyConfiguration proxyConfig) throws SQLException {
-        return new StandaloneContextManagerBuilder().build(
-                mode, getDataSourcesMap(proxyConfig.getSchemaDataSources()), 
proxyConfig.getSchemaRules(), proxyConfig.getGlobalRules(), 
proxyConfig.getProps(), isOverwrite);
-    }
-    
-    // TODO add DataSourceParameter param to ContextManagerBuilder to avoid 
re-build data source
-    private Map<String, Map<String, DataSource>> getDataSourcesMap(final 
Map<String, Map<String, DataSourceParameter>> dataSourceParametersMap) {
-        Map<String, Map<String, DataSource>> result = new 
LinkedHashMap<>(dataSourceParametersMap.size(), 1);
-        for (Entry<String, Map<String, DataSourceParameter>> entry : 
dataSourceParametersMap.entrySet()) {
-            result.put(entry.getKey(), 
getDataSourceMap(DataSourceParameterConverter.getDataSourceConfigurationMap(entry.getValue())));
-        }
-        return result;
-    }
-    
-    private Map<String, DataSource> getDataSourceMap(final Map<String, 
DataSourceConfiguration> dataSourceConfigMap) {
-        Map<String, DataSource> result = new 
LinkedHashMap<>(dataSourceConfigMap.size(), 1);
-        for (Entry<String, DataSourceConfiguration> entry : 
dataSourceConfigMap.entrySet()) {
-            result.put(entry.getKey(), entry.getValue().createDataSource());
-        }
-        return result;
+    protected ContextManagerBuilder createContextManagerBuilder() {
+        return new StandaloneContextManagerBuilder();
     }
     
     @Override

Reply via email to