This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 dfe6713ed87 Refactor ReadwriteSplittingRuleConfigurationChecker 
(#30647)
dfe6713ed87 is described below

commit dfe6713ed872a2ced2c174afc819a6f17f7ff394
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Mar 26 09:58:13 2024 +0800

    Refactor ReadwriteSplittingRuleConfigurationChecker (#30647)
---
 .../ReadwriteSplittingRuleConfigurationChecker.java     | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

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 ae3eec00aea..22b7f1653ce 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
@@ -56,31 +56,30 @@ public final class 
ReadwriteSplittingRuleConfigurationChecker implements RuleCon
     
     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<>();
+        Collection<String> writeDataSourceNames = new HashSet<>();
+        Collection<String> readDataSourceNames = new HashSet<>();
         for (ReadwriteSplittingDataSourceRuleConfiguration each : configs) {
             
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(each.getName()), 
() -> new MissingRequiredDataSourceNameException(databaseName));
-            checkDataSources(databaseName, dataSourceMap, each, 
addedWriteDataSourceNames, addedReadDataSourceNames, builtRules);
+            checkDataSources(databaseName, dataSourceMap, each, 
writeDataSourceNames, readDataSourceNames, builtRules);
         }
     }
     
-    private void checkDataSources(final String databaseName, final Map<String, 
DataSource> dataSourceMap,
-                                  final 
ReadwriteSplittingDataSourceRuleConfiguration config, final Collection<String> 
addedWriteDataSourceNames,
-                                  final Collection<String> 
readDataSourceNames, final Collection<ShardingSphereRule> builtRules) {
+    private void checkDataSources(final String databaseName, final Map<String, 
DataSource> dataSourceMap, final ReadwriteSplittingDataSourceRuleConfiguration 
config,
+                                  final Collection<String> 
writeDataSourceNames, final Collection<String> readDataSourceNames, final 
Collection<ShardingSphereRule> builtRules) {
         
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(config.getWriteDataSourceName()),
 () -> new MissingRequiredWriteDataSourceNameException(databaseName));
         
ShardingSpherePreconditions.checkState(!config.getReadDataSourceNames().isEmpty(),
 () -> new MissingRequiredReadDataSourceNamesException(databaseName));
-        checkWriteDataSourceNames(databaseName, dataSourceMap, 
addedWriteDataSourceNames, config, builtRules);
+        checkWriteDataSourceNames(databaseName, dataSourceMap, 
writeDataSourceNames, config, builtRules);
         for (String each : config.getReadDataSourceNames()) {
             checkReadeDataSourceNames(databaseName, dataSourceMap, 
readDataSourceNames, each, builtRules);
         }
     }
     
-    private void checkWriteDataSourceNames(final String databaseName, final 
Map<String, DataSource> dataSourceMap, final Collection<String> 
addedWriteDataSourceNames,
+    private void checkWriteDataSourceNames(final String databaseName, final 
Map<String, DataSource> dataSourceMap, final Collection<String> 
writeDataSourceNames,
                                            final 
ReadwriteSplittingDataSourceRuleConfiguration config, final 
Collection<ShardingSphereRule> builtRules) {
         for (String each : 
InlineExpressionParserFactory.newInstance(config.getWriteDataSourceName()).splitAndEvaluate())
 {
             
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each) || 
containsInOtherRules(each, builtRules),
                     () -> new 
DataSourceNameNotExistedException(String.format("Write data source name `%s` 
not in database `%s`.", each, databaseName)));
-            
ShardingSpherePreconditions.checkState(addedWriteDataSourceNames.add(each),
+            
ShardingSpherePreconditions.checkState(writeDataSourceNames.add(each),
                     () -> new DuplicateDataSourceException(String.format("Can 
not config duplicate write data source `%s` in database `%s`.", each, 
databaseName)));
         }
     }

Reply via email to