This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 069d923a565 Fix checkstyle for ContextManager (#18810)
069d923a565 is described below
commit 069d923a5650f6bb78bf058e5f854638dcf86752
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jul 3 21:08:48 2022 +0800
Fix checkstyle for ContextManager (#18810)
---
.../mode/manager/ContextManager.java | 46 +++++++++++-----------
1 file changed, 22 insertions(+), 24 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 8e09426e118..09d32f63d58 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
@@ -242,29 +242,27 @@ public final class ContextManager implements
AutoCloseable {
* @param databaseName database name
* @param ruleConfigs rule configurations
*/
+ @SuppressWarnings("rawtypes")
public void alterRuleConfiguration(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) {
try {
- MetaDataContexts changedMetaDataContexts =
buildChangedMetaDataContext(databaseName, ruleConfigs);
-
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().putAll(changedMetaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases());
-
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResources);
-
metaDataContexts.getMetaData().getDatabases().putAll(changedMetaDataContexts.getMetaData().getDatabases());
+ Collection<ResourceHeldRule> staleResourceHeldRules =
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().findRules(ResourceHeldRule.class);
+ metaDataContexts =
createMetaDataContextsWithAlteredDatabaseRules(databaseName, ruleConfigs);
+ persistMetaData(metaDataContexts);
+
staleResourceHeldRules.forEach(ResourceHeldRule::closeStaleResources);
} catch (final SQLException ex) {
- log.error("Alter database:{} rule configuration failed",
databaseName, ex);
+ log.error("Alter database: {} rule configurations failed",
databaseName, ex);
}
}
- private MetaDataContexts buildChangedMetaDataContext(final String
databaseName, final Collection<RuleConfiguration> ruleConfigs) throws
SQLException {
+ private MetaDataContexts
createMetaDataContextsWithAlteredDatabaseRules(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) throws SQLException {
ShardingSphereDatabase toBeChangedDatabase =
metaDataContexts.getMetaData().getDatabases().get(databaseName);
ConfigurationProperties props =
metaDataContexts.getMetaData().getProps();
Map<String, ShardingSphereDatabase> databases =
ShardingSphereDatabasesFactory.create(
- Collections.singletonMap(databaseName, new
DataSourceProvidedDatabaseConfiguration(toBeChangedDatabase.getResource().getDataSources(),
ruleConfigs)),
- props, instanceContext);
+ Collections.singletonMap(databaseName, new
DataSourceProvidedDatabaseConfiguration(toBeChangedDatabase.getResource().getDataSources(),
ruleConfigs)), props, instanceContext);
ShardingSphereRuleMetaData globalMetaData = new
ShardingSphereRuleMetaData(
GlobalRulesBuilder.buildRules(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(),
databases, instanceContext));
ShardingSphereMetaData metaData = new
ShardingSphereMetaData(databases, globalMetaData, props);
- MetaDataContexts result = new
MetaDataContexts(metaDataContexts.getPersistService().orElse(null), metaData,
OptimizerContextFactory.create(databases, globalMetaData));
- persistMetaData(result);
- return result;
+ return new
MetaDataContexts(metaDataContexts.getPersistService().orElse(null), metaData,
OptimizerContextFactory.create(databases, globalMetaData));
}
/**
@@ -504,6 +502,19 @@ public final class ContextManager implements AutoCloseable
{
metaDataContexts.getMetaData().getGlobalRuleMetaData().findRules(ResourceHeldRule.class).forEach(each
->
each.addResource(metaDataContexts.getMetaData().getDatabases().get(databaseName)));
}
+ private void refreshMetaDataContext(final String databaseName, final
MetaDataContexts changedMetaDataContexts, final Map<String,
DataSourceProperties> dataSourcePropsMap) {
+
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().putAll(changedMetaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases());
+ Map<String, ShardingSphereDatabase> databases = new
HashMap<>(metaDataContexts.getMetaData().getDatabases());
+ databases.putAll(changedMetaDataContexts.getMetaData().getDatabases());
+ final Collection<DataSource> pendingClosedDataSources =
getPendingClosedDataSources(databaseName, dataSourcePropsMap);
+ MetaDataContexts newMetaDataContexts = rebuildMetaDataContexts(
+ new ShardingSphereMetaData(databases,
metaDataContexts.getMetaData().getGlobalRuleMetaData(),
metaDataContexts.getMetaData().getProps()));
+
metaDataContexts.getMetaData().getGlobalRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResources);
+
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResources);
+ renewMetaDataContexts(newMetaDataContexts);
+
pendingClosedDataSources.forEach(metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource()::close);
+ }
+
private MetaDataContexts
buildChangedMetaDataContextWithAddedDataSource(final String databaseName, final
Map<String, DataSourceProperties> addedDataSourceProps) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.getMetaData().getDatabases().get(databaseName);
Map<String, DataSource> dataSourceMap = new
HashMap<>(database.getResource().getDataSources());
@@ -519,19 +530,6 @@ public final class ContextManager implements AutoCloseable
{
return result;
}
- private void refreshMetaDataContext(final String databaseName, final
MetaDataContexts changedMetaDataContexts, final Map<String,
DataSourceProperties> dataSourcePropsMap) {
-
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().putAll(changedMetaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases());
- Map<String, ShardingSphereDatabase> databases = new
HashMap<>(metaDataContexts.getMetaData().getDatabases());
- databases.putAll(changedMetaDataContexts.getMetaData().getDatabases());
- final Collection<DataSource> pendingClosedDataSources =
getPendingClosedDataSources(databaseName, dataSourcePropsMap);
- MetaDataContexts newMetaDataContexts = rebuildMetaDataContexts(
- new ShardingSphereMetaData(databases,
metaDataContexts.getMetaData().getGlobalRuleMetaData(),
metaDataContexts.getMetaData().getProps()));
-
metaDataContexts.getMetaData().getGlobalRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResources);
-
metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResources);
- renewMetaDataContexts(newMetaDataContexts);
-
pendingClosedDataSources.forEach(metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource()::close);
- }
-
private MetaDataContexts
buildChangedMetaDataContextWithChangedDataSource(final ShardingSphereDatabase
originalDatabase,
final Map<String, DataSourceProperties> newDataSourceProps) throws SQLException
{
Collection<String> deletedDataSources =
getDeletedDataSources(originalDatabase, newDataSourceProps).keySet();