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 <[email protected]>
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);
}
}