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 f24cecf35e9 Refactor ContextManager.createChangedDatabases() (#18845)
f24cecf35e9 is described below
commit f24cecf35e9abdc75e491842451a8fea73ee9d85
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jul 5 11:16:01 2022 +0800
Refactor ContextManager.createChangedDatabases() (#18845)
---
.../mode/manager/ContextManager.java | 32 +++++++---------------
1 file changed, 10 insertions(+), 22 deletions(-)
diff --git
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index bd73b765c6d..2fd3705e12c 100644
---
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -305,7 +305,7 @@ public final class ContextManager implements AutoCloseable {
}
private MetaDataContexts createMetaDataContexts(final String databaseName,
final Collection<RuleConfiguration> ruleConfigs) throws SQLException {
- Map<String, ShardingSphereDatabase> changedDatabases =
createChangedDatabases(databaseName, ruleConfigs);
+ Map<String, ShardingSphereDatabase> changedDatabases =
createChangedDatabases(databaseName, null, ruleConfigs);
ShardingSphereRuleMetaData changedGlobalMetaData = new
ShardingSphereRuleMetaData(
GlobalRulesBuilder.buildRules(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(),
changedDatabases, instanceContext));
return new
MetaDataContexts(metaDataContexts.getPersistService().orElse(null),
@@ -314,7 +314,7 @@ public final class ContextManager implements AutoCloseable {
}
private MetaDataContexts createMetaDataContexts(final String databaseName,
final SwitchingResource switchingResource) throws SQLException {
- Map<String, ShardingSphereDatabase> changedDatabases =
createChangedDatabases(databaseName, switchingResource);
+ Map<String, ShardingSphereDatabase> changedDatabases =
createChangedDatabases(databaseName, switchingResource, null);
ShardingSphereRuleMetaData changedGlobalMetaData = new
ShardingSphereRuleMetaData(
GlobalRulesBuilder.buildRules(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(),
changedDatabases, instanceContext));
return new
MetaDataContexts(metaDataContexts.getPersistService().orElse(null),
@@ -331,28 +331,16 @@ public final class ContextManager implements
AutoCloseable {
OptimizerContextFactory.create(changedDatabases,
changedGlobalMetaData));
}
- private Map<String, ShardingSphereDatabase> createChangedDatabases(final
String databaseName, final Collection<RuleConfiguration> ruleConfigs) throws
SQLException {
- ShardingSphereDatabase changedDatabase =
ShardingSphereDatabasesFactory.create(databaseName,
- new
DataSourceProvidedDatabaseConfiguration(metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource().getDataSources(),
ruleConfigs),
- metaDataContexts.getMetaData().getProps(), instanceContext);
- Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.getMetaData().getDatabases());
- result.put(databaseName, changedDatabase);
- return result;
- }
-
- private Map<String, ShardingSphereDatabase> createChangedDatabases(final
String databaseName, final SwitchingResource switchingResource) throws
SQLException {
- DatabaseConfiguration databaseConfig = new
DataSourceProvidedDatabaseConfiguration(
- switchingResource.getNewDataSources(),
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().getConfigurations());
- ShardingSphereDatabase changedDatabase =
ShardingSphereDatabasesFactory.create(databaseName, databaseConfig,
metaDataContexts.getMetaData().getProps(), instanceContext);
- Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.getMetaData().getDatabases());
- result.put(databaseName, changedDatabase);
- return result;
- }
-
private Map<String, ShardingSphereDatabase> createChangedDatabases(final
String databaseName,
final
SwitchingResource switchingResource, final Collection<RuleConfiguration>
ruleConfigs) throws SQLException {
- DatabaseConfiguration databaseConfig = new
DataSourceProvidedDatabaseConfiguration(switchingResource.getNewDataSources(),
ruleConfigs);
- ShardingSphereDatabase changedDatabase =
ShardingSphereDatabasesFactory.create(databaseName, databaseConfig,
metaDataContexts.getMetaData().getProps(), instanceContext);
+ Map<String, DataSource> toBeCreatedDataSources = null ==
switchingResource
+ ?
metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource().getDataSources()
+ : switchingResource.getNewDataSources();
+ Collection<RuleConfiguration> toBeCreatedRuleConfigs = null ==
ruleConfigs
+ ?
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().getConfigurations()
+ : ruleConfigs;
+ DatabaseConfiguration toBeCreatedDatabaseConfig = new
DataSourceProvidedDatabaseConfiguration(toBeCreatedDataSources,
toBeCreatedRuleConfigs);
+ ShardingSphereDatabase changedDatabase =
ShardingSphereDatabasesFactory.create(databaseName, toBeCreatedDatabaseConfig,
metaDataContexts.getMetaData().getProps(), instanceContext);
Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.getMetaData().getDatabases());
result.put(databaseName, changedDatabase);
return result;