This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 4c4da09129c Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException (#30880)
4c4da09129c is described below
commit 4c4da09129c6308c794591feadc96d87a17576ca
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Apr 14 18:03:34 2024 +0800
Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException (#30880)
* Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException
* Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException
* Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException
* Add ReadwriteSplittingDataSourceType to optimize
ReadwriteSplittingSQLException
---
.../ReadwriteSplittingRuleConfigurationChecker.java | 10 ++++++----
.../ReadwriteSplittingDataSourceType.java} | 14 ++++----------
.../exception/DataSourceNameNotExistedException.java | 3 ++-
.../exception/DuplicateDataSourceException.java | 3 ++-
.../InvalidInlineExpressionDataSourcesException.java | 3 ++-
.../readwritesplitting/rule/ReadwriteSplittingRule.java | 6 ++++--
.../checker/ReadwriteSplittingRuleStatementChecker.java | 16 ++++++++--------
.../update/AlterReadwriteSplittingRuleExecutorTest.java | 14 +++++++-------
.../update/CreateReadwriteSplittingRuleExecutorTest.java | 13 +++++++------
.../connection/DriverDatabaseConnectionManagerTest.java | 2 +-
10 files changed, 43 insertions(+), 41 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 fb371c3a0b2..8a2ce891dca 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
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMappe
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingOrder;
import
org.apache.shardingsphere.readwritesplitting.exception.DataSourceNameNotExistedException;
import
org.apache.shardingsphere.readwritesplitting.exception.DuplicateDataSourceException;
@@ -79,8 +80,8 @@ public final class ReadwriteSplittingRuleConfigurationChecker
implements RuleCon
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("Write", each,
databaseName));
-
ShardingSpherePreconditions.checkState(writeDataSourceNames.add(each), () ->
new DuplicateDataSourceException("write", each, databaseName));
+ () -> new
DataSourceNameNotExistedException(ReadwriteSplittingDataSourceType.WRITE, each,
databaseName));
+
ShardingSpherePreconditions.checkState(writeDataSourceNames.add(each), () ->
new DuplicateDataSourceException(ReadwriteSplittingDataSourceType.WRITE, each,
databaseName));
}
}
@@ -92,8 +93,9 @@ public final class ReadwriteSplittingRuleConfigurationChecker
implements RuleCon
private void checkReadeDataSourceNames(final String databaseName, final
Map<String, DataSource> dataSourceMap,
final Collection<String>
readDataSourceNames, final String readDataSourceName, final
Collection<ShardingSphereRule> builtRules) {
for (String each :
InlineExpressionParserFactory.newInstance(readDataSourceName).splitAndEvaluate())
{
-
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each) ||
containsInOtherRules(each, builtRules), () -> new
DataSourceNameNotExistedException("Read", each, databaseName));
-
ShardingSpherePreconditions.checkState(readDataSourceNames.add(each), () -> new
DuplicateDataSourceException("read", each, databaseName));
+
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each) ||
containsInOtherRules(each, builtRules),
+ () -> new
DataSourceNameNotExistedException(ReadwriteSplittingDataSourceType.READ, each,
databaseName));
+
ShardingSpherePreconditions.checkState(readDataSourceNames.add(each), () -> new
DuplicateDataSourceException(ReadwriteSplittingDataSourceType.READ, each,
databaseName));
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/constant/ReadwriteSplittingDataSourceType.java
similarity index 57%
copy from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
copy to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/constant/ReadwriteSplittingDataSourceType.java
index 4d1641ff82d..21df31bc075 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/constant/ReadwriteSplittingDataSourceType.java
@@ -15,18 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.exception;
-
-import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+package org.apache.shardingsphere.readwritesplitting.constant;
/**
- * Invalid inline expression data sources exception.
+ * Readwrite-splitting data source type.
*/
-public final class InvalidInlineExpressionDataSourcesException extends
ReadwriteSplittingSQLException {
-
- private static final long serialVersionUID = 87659916563551964L;
+public enum ReadwriteSplittingDataSourceType {
- public InvalidInlineExpressionDataSourcesException(final String
dataSourceType) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "%s data source names
size error on inline expression.", dataSourceType);
- }
+ WRITE, READ
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DataSourceNameNotExistedException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DataSourceNameNotExistedException.java
index 5043cb7a8e2..9f90523d99e 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DataSourceNameNotExistedException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DataSourceNameNotExistedException.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.readwritesplitting.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
/**
* Data source name not existed exception.
@@ -26,7 +27,7 @@ public final class DataSourceNameNotExistedException extends
ReadwriteSplittingS
private static final long serialVersionUID = 1284608200400804784L;
- public DataSourceNameNotExistedException(final String dataSourceType,
final String dataSourceName, final String databaseName) {
+ public DataSourceNameNotExistedException(final
ReadwriteSplittingDataSourceType dataSourceType, final String dataSourceName,
final String databaseName) {
super(XOpenSQLState.NOT_FOUND, 4, "%s data source name '%s' not in
database '%s'.", dataSourceType, dataSourceName, databaseName);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DuplicateDataSourceException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DuplicateDataSourceException.java
index a4621977892..252eb4c3593 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DuplicateDataSourceException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/DuplicateDataSourceException.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.readwritesplitting.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
/**
* Duplicate write data source exception.
@@ -26,7 +27,7 @@ public final class DuplicateDataSourceException extends
ReadwriteSplittingSQLExc
private static final long serialVersionUID = -58671655670347084L;
- public DuplicateDataSourceException(final String dataSourceType, final
String dataSourceName, final String databaseName) {
+ public DuplicateDataSourceException(final ReadwriteSplittingDataSourceType
dataSourceType, final String dataSourceName, final String databaseName) {
super(XOpenSQLState.DUPLICATE, 3, "Duplicated %s data source '%s' in
database '%s'.", dataSourceType, dataSourceName, databaseName);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
index 4d1641ff82d..cf97c84faf6 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/InvalidInlineExpressionDataSourcesException.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.readwritesplitting.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
/**
* Invalid inline expression data sources exception.
@@ -26,7 +27,7 @@ public final class
InvalidInlineExpressionDataSourcesException extends Readwrite
private static final long serialVersionUID = 87659916563551964L;
- public InvalidInlineExpressionDataSourcesException(final String
dataSourceType) {
+ public InvalidInlineExpressionDataSourcesException(final
ReadwriteSplittingDataSourceType dataSourceType) {
super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "%s data source names
size error on inline expression.", dataSourceType);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
index c5dca7e2981..e88c0f19a9d 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
@@ -28,6 +28,7 @@ import
org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
import
org.apache.shardingsphere.readwritesplitting.exception.InvalidInlineExpressionDataSourcesException;
import
org.apache.shardingsphere.readwritesplitting.rule.attribute.ReadwriteSplittingDataSourceMapperRuleAttribute;
import
org.apache.shardingsphere.readwritesplitting.rule.attribute.ReadwriteSplittingExportableRuleAttribute;
@@ -97,9 +98,10 @@ public final class ReadwriteSplittingRule implements
DatabaseRule {
List<String> inlineWriteDatasourceNames =
InlineExpressionParserFactory.newInstance(config.getWriteDataSourceName()).splitAndEvaluate();
List<List<String>> inlineReadDatasourceNames =
config.getReadDataSourceNames().stream()
.map(each ->
InlineExpressionParserFactory.newInstance(each).splitAndEvaluate()).collect(Collectors.toList());
-
ShardingSpherePreconditions.checkState(inlineWriteDatasourceNames.size() ==
inlineReadwriteDataSourceNames.size(), () -> new
InvalidInlineExpressionDataSourcesException("Write"));
+
ShardingSpherePreconditions.checkState(inlineWriteDatasourceNames.size() ==
inlineReadwriteDataSourceNames.size(),
+ () -> new
InvalidInlineExpressionDataSourcesException(ReadwriteSplittingDataSourceType.WRITE));
inlineReadDatasourceNames.forEach(each ->
ShardingSpherePreconditions.checkState(each.size() ==
inlineReadwriteDataSourceNames.size(),
- () -> new
InvalidInlineExpressionDataSourcesException("Read")));
+ () -> new
InvalidInlineExpressionDataSourcesException(ReadwriteSplittingDataSourceType.READ)));
Map<String, ReadwriteSplittingDataSourceRule> result = new
LinkedHashMap<>(inlineReadwriteDataSourceNames.size(), 1F);
for (int i = 0; i < inlineReadwriteDataSourceNames.size(); i++) {
ReadwriteSplittingDataSourceRuleConfiguration staticConfig =
createStaticDataSourceRuleConfiguration(
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
index 9e6f9e2ccc7..70614bd6ffd 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
@@ -20,12 +20,12 @@ package
org.apache.shardingsphere.readwritesplitting.distsql.handler.checker;
import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.infra.algorithm.loadbalancer.core.LoadBalanceAlgorithm;
+import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.DuplicateRuleException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.InvalidRuleConfigurationException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
-import
org.apache.shardingsphere.infra.algorithm.loadbalancer.core.LoadBalanceAlgorithm;
-import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMapperRuleAttribute;
@@ -33,7 +33,9 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.transaction.TransactionalReadQueryStrategy;
+import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
import
org.apache.shardingsphere.readwritesplitting.distsql.segment.ReadwriteSplittingRuleSegment;
+import
org.apache.shardingsphere.readwritesplitting.exception.DuplicateDataSourceException;
import java.util.Arrays;
import java.util.Collection;
@@ -177,8 +179,8 @@ public final class ReadwriteSplittingRuleStatementChecker {
segments.forEach(each -> {
if (!Strings.isNullOrEmpty(each.getWriteDataSource())) {
String writeDataSource = each.getWriteDataSource();
-
ShardingSpherePreconditions.checkState(writeDataSourceNames.add(writeDataSource),
() -> new InvalidRuleConfigurationException("Readwrite-splitting",
each.getName(),
- String.format("Can not config duplicate write storage
unit `%s` in database `%s`", writeDataSource, databaseName)));
+
ShardingSpherePreconditions.checkState(writeDataSourceNames.add(writeDataSource),
+ () -> new
DuplicateDataSourceException(ReadwriteSplittingDataSourceType.WRITE,
writeDataSource, databaseName));
}
});
}
@@ -193,9 +195,7 @@ public final class ReadwriteSplittingRuleStatementChecker {
private static void checkDuplicateReadDataSourceNames(final String
databaseName, final ReadwriteSplittingRuleSegment segment, final
Collection<String> readDataSourceNames) {
for (String each : segment.getReadDataSources()) {
-
ShardingSpherePreconditions.checkState(readDataSourceNames.add(each),
- () -> new InvalidRuleConfigurationException(
- "Readwrite-splitting", segment.getName(),
String.format("Can not config duplicate read storage unit `%s` in database
`%s`.", each, databaseName)));
+
ShardingSpherePreconditions.checkState(readDataSourceNames.add(each), () -> new
DuplicateDataSourceException(ReadwriteSplittingDataSourceType.READ, each,
databaseName));
}
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleExecutorTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleExecutorTest.java
index 2cd762bffd1..29bf42bdaa8 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleExecutorTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleExecutorTest.java
@@ -17,10 +17,9 @@
package org.apache.shardingsphere.readwritesplitting.distsql.handler.update;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.InvalidRuleConfigurationException;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
import org.apache.shardingsphere.distsql.segment.AlgorithmSegment;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.spi.exception.ServiceProviderNotFoundException;
@@ -28,6 +27,7 @@ import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleCo
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.distsql.segment.ReadwriteSplittingRuleSegment;
import
org.apache.shardingsphere.readwritesplitting.distsql.statement.AlterReadwriteSplittingRuleStatement;
+import
org.apache.shardingsphere.readwritesplitting.exception.DuplicateDataSourceException;
import
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -99,7 +99,7 @@ class AlterReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfigurationWithMultipleRules());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatementWithDuplicateWriteResourceNames("readwrite_ds_0",
"readwrite_ds_1", "TEST")));
}
@@ -110,7 +110,7 @@ class AlterReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfigurationWithMultipleRules());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() -> executor.checkBeforeUpdate(
createSQLStatement("readwrite_ds_0", "ds_write_1",
Arrays.asList("read_ds_0", "read_ds_1"), "TEST")));
}
@@ -122,7 +122,7 @@ class AlterReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfigurationWithMultipleRules());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatementWithDuplicateReadResourceNames("readwrite_ds_0",
"readwrite_ds_1", "TEST")));
}
@@ -133,7 +133,7 @@ class AlterReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfigurationWithMultipleRules());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatement("readwrite_ds_1", "write_ds_1",
Arrays.asList("read_ds_0_0", "read_ds_0_1"), "TEST")));
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleExecutorTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleExecutorTest.java
index 5d25783d117..b3a4bb7b800 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleExecutorTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleExecutorTest.java
@@ -17,10 +17,10 @@
package org.apache.shardingsphere.readwritesplitting.distsql.handler.update;
+import org.apache.shardingsphere.distsql.segment.AlgorithmSegment;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.DuplicateRuleException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.InvalidRuleConfigurationException;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
-import org.apache.shardingsphere.distsql.segment.AlgorithmSegment;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMapperRuleAttribute;
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleCo
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.distsql.segment.ReadwriteSplittingRuleSegment;
import
org.apache.shardingsphere.readwritesplitting.distsql.statement.CreateReadwriteSplittingRuleStatement;
+import
org.apache.shardingsphere.readwritesplitting.exception.DuplicateDataSourceException;
import
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -107,7 +108,7 @@ class CreateReadwriteSplittingRuleExecutorTest {
@Test
void assertCheckSQLStatementWithDuplicateWriteResourceNamesInStatement() {
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatementWithDuplicateWriteResourceNames("write_ds_0",
"write_ds_1", "TEST")));
}
@@ -116,13 +117,13 @@ class CreateReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatement("readwrite_ds_1", "ds_write",
Arrays.asList("read_ds_0", "read_ds_1"), "TEST")));
}
@Test
void assertCheckSQLStatementWithDuplicateReadResourceNamesInStatement() {
- assertThrows(InvalidRuleConfigurationException.class, () ->
executor.checkBeforeUpdate(createSQLStatementWithDuplicateReadResourceNames("write_ds_0",
"write_ds_1", "TEST")));
+ assertThrows(DuplicateDataSourceException.class, () ->
executor.checkBeforeUpdate(createSQLStatementWithDuplicateReadResourceNames("write_ds_0",
"write_ds_1", "TEST")));
}
@Test
@@ -130,7 +131,7 @@ class CreateReadwriteSplittingRuleExecutorTest {
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
executor.setRule(rule);
- assertThrows(InvalidRuleConfigurationException.class,
+ assertThrows(DuplicateDataSourceException.class,
() ->
executor.checkBeforeUpdate(createSQLStatement("readwrite_ds_1", "write_ds_1",
Arrays.asList("read_ds_0", "read_ds_1"), "TEST")));
}
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
index 314c485d143..1256fe37b78 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
@@ -218,6 +218,6 @@ class DriverDatabaseConnectionManagerTest {
void assertGetConnectionsWhenConnectionCreateFailed() {
SQLException ex = assertThrows(SQLException.class, () ->
databaseConnectionManager.getConnections("invalid_ds", 0, 3,
ConnectionMode.CONNECTION_STRICTLY));
assertThat(ex.getMessage(), is("Can not get 3 connections one time,
partition succeed connection(0) have released. "
- + "Please consider increasing the `maxPoolSize` of the data
sources or decreasing the `max-connections-size-per-query` in properties."));
+ + "Please consider increasing the 'maxPoolSize' of the data
sources or decreasing the 'max-connections-size-per-query' in properties."));
}
}