You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2024/03/14 14:51:12 UTC
(shardingsphere) branch master updated: Refactor ReadwriteSplittingRuleConfigurationChecker (#30489)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 7e232d9c987 Refactor ReadwriteSplittingRuleConfigurationChecker (#30489)
7e232d9c987 is described below
commit 7e232d9c98755149140a9f5009c6524a3c123c7b
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Mar 14 22:51:06 2024 +0800
Refactor ReadwriteSplittingRuleConfigurationChecker (#30489)
---
.../provider/BroadcastImportRuleConfigurationProvider.java | 9 +++++----
.../checker/ReadwriteSplittingRuleConfigurationChecker.java | 6 +++---
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/provider/BroadcastImportRuleConfigurationProvider.java b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/provider/BroadcastImportRuleConfigurationProvider.java
index c3521156cbb..e3e1a159493 100644
--- a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/provider/BroadcastImportRuleConfigurationProvider.java
+++ b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/provider/BroadcastImportRuleConfigurationProvider.java
@@ -25,7 +25,9 @@ import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.scope.DatabaseRule;
+import javax.sql.DataSource;
import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
@@ -40,10 +42,9 @@ public final class BroadcastImportRuleConfigurationProvider implements ImportRul
@Override
public DatabaseRule build(final ShardingSphereDatabase database, final RuleConfiguration ruleConfig, final InstanceContext instanceContext) {
- return new BroadcastRule((BroadcastRuleConfiguration) ruleConfig, database.getName(),
- database.getResourceMetaData().getStorageUnits().entrySet().stream()
- .collect(Collectors.toMap(Entry::getKey, entry -> entry.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)),
- database.getRuleMetaData().getRules());
+ Map<String, DataSource> dataSources = database.getResourceMetaData().getStorageUnits().entrySet().stream()
+ .collect(Collectors.toMap(Entry::getKey, entry -> entry.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
+ return new BroadcastRule((BroadcastRuleConfiguration) ruleConfig, database.getName(), dataSources, database.getRuleMetaData().getRules());
}
@Override
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
index 1cb58b9d7f9..127c8e91812 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
@@ -57,13 +57,13 @@ public final class ReadwriteSplittingRuleConfigurationChecker implements RuleCon
checkLoadBalancerDataSourceName(databaseName, configs, getLoadBalancer(config));
}
- private void checkDataSources(final String databaseName,
- final Collection<ReadwriteSplittingDataSourceRuleConfiguration> configs, final Map<String, DataSource> dataSourceMap, final Collection<ShardingSphereRule> rules) {
+ private void checkDataSources(final String databaseName, final Collection<ReadwriteSplittingDataSourceRuleConfiguration> configs,
+ final Map<String, DataSource> dataSourceMap, final Collection<ShardingSphereRule> builtRules) {
Collection<String> addedWriteDataSourceNames = new HashSet<>();
Collection<String> addedReadDataSourceNames = new HashSet<>();
for (ReadwriteSplittingDataSourceRuleConfiguration each : configs) {
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(each.getName()), () -> new MissingRequiredDataSourceNameException(databaseName));
- checkDataSources(databaseName, dataSourceMap, each, addedWriteDataSourceNames, addedReadDataSourceNames, rules);
+ checkDataSources(databaseName, dataSourceMap, each, addedWriteDataSourceNames, addedReadDataSourceNames, builtRules);
}
}