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);
         }
     }
     

Reply via email to