This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 034b72467cd fix ReadwriteRule checkReadeDataSource and test (#24669)
034b72467cd is described below
commit 034b72467cd9f57337ae70f0bb6772f8c360fb73
Author: 华仔 <[email protected]>
AuthorDate: Wed Mar 22 14:33:08 2023 +0800
fix ReadwriteRule checkReadeDataSource and test (#24669)
---
.../checker/ReadwriteSplittingRuleConfigurationChecker.java | 2 +-
.../checker/ReadwriteSplittingRuleConfigurationCheckerTest.java | 9 +++++----
2 files changed, 6 insertions(+), 5 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 0bb23cbcbc4..6bb34141daf 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
@@ -83,7 +83,7 @@ public final class ReadwriteSplittingRuleConfigurationChecker
implements RuleCon
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(strategyConfig.getWriteDataSourceName()),
() -> new MissingRequiredWriteDataSourceNameException(databaseName));
ShardingSpherePreconditions.checkState(!strategyConfig.getReadDataSourceNames().isEmpty(),
() -> new MissingRequiredReadDataSourceNamesException(databaseName));
checkWriteDataSourceNames(databaseName, dataSourceMap,
addedWriteDataSourceNames, strategyConfig, rules);
- for (String each : readDataSourceNames) {
+ for (String each : strategyConfig.getReadDataSourceNames()) {
checkReadeDataSourceNames(databaseName, dataSourceMap,
readDataSourceNames, each);
}
}
diff --git
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationCheckerTest.java
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationCheckerTest.java
index 316ce251bb8..6544c448c28 100644
---
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationCheckerTest.java
+++
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationCheckerTest.java
@@ -26,8 +26,9 @@ import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleCo
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.strategy.DynamicReadwriteSplittingStrategyConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.strategy.StaticReadwriteSplittingStrategyConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.exception.checker.DataSourceNameExistedException;
+import
org.apache.shardingsphere.readwritesplitting.exception.checker.DuplicateDataSourceException;
import
org.apache.shardingsphere.readwritesplitting.exception.checker.InvalidWeightLoadBalancerConfigurationException;
-import
org.apache.shardingsphere.readwritesplitting.exception.checker.LoadBalancerAlgorithmNotFoundException;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.Test;
@@ -84,10 +85,10 @@ public final class
ReadwriteSplittingRuleConfigurationCheckerTest {
public void assertCheckWhenConfigInvalidWriteDataSource() {
ReadwriteSplittingRuleConfiguration config =
mock(ReadwriteSplittingRuleConfiguration.class);
List<ReadwriteSplittingDataSourceRuleConfiguration> configurations =
Arrays.asList(createDataSourceRuleConfig(
- "write_ds_0", Arrays.asList("ds_0", "ds_1")),
createDataSourceRuleConfig("write_ds_1", Arrays.asList("ds_2", "ds_3")));
+ "write_ds_0", Arrays.asList("read_ds_0", "read_ds_1")),
createDataSourceRuleConfig("write_ds_2", Arrays.asList("read_ds_0",
"read_ds_1")));
when(config.getDataSources()).thenReturn(configurations);
RuleConfigurationChecker checker =
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class,
Collections.singleton(config.getClass())).get(config.getClass());
- assertThrows(LoadBalancerAlgorithmNotFoundException.class, () ->
checker.check("test", config, mockDataSources(), Collections.emptyList()));
+ assertThrows(DataSourceNameExistedException.class, () ->
checker.check("test", config, mockDataSources(), Collections.emptyList()));
}
@SuppressWarnings({"rawtypes", "unchecked"})
@@ -98,7 +99,7 @@ public final class
ReadwriteSplittingRuleConfigurationCheckerTest {
"write_ds_0", Arrays.asList("read_ds_0", "read_ds_0")),
createDataSourceRuleConfig("write_ds_1", Arrays.asList("read_ds_0",
"read_ds_0")));
when(config.getDataSources()).thenReturn(configurations);
RuleConfigurationChecker checker =
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class,
Collections.singleton(config.getClass())).get(config.getClass());
- assertThrows(LoadBalancerAlgorithmNotFoundException.class, () ->
checker.check("test", config, mockDataSources(), Collections.emptyList()));
+ assertThrows(DuplicateDataSourceException.class, () ->
checker.check("test", config, mockDataSources(), Collections.emptyList()));
}
@SuppressWarnings({"rawtypes", "unchecked"})