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