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