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

wuweijie 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 7bd85f41718 Add ReadwriteSplittingDataSourceRuleNotFoundException 
(#30920)
7bd85f41718 is described below

commit 7bd85f417185f49f02f83b10021d67e416f919e5
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Tue Apr 16 23:08:49 2024 +0800

    Add ReadwriteSplittingDataSourceRuleNotFoundException (#30920)
    
    * Refactor ReadwriteSplittingRule
    
    * Refactor ReadwriteSplittingRule
    
    * Add ReadwriteSplittingDataSourceRuleNameNotFoundException
    
    * Add ReadwriteSplittingDataSourceRuleNotFoundException
---
 .../content/user-manual/error-code/sql-error-code.cn.md    |  9 +++++----
 .../content/user-manual/error-code/sql-error-code.en.md    |  9 +++++----
 ...plicateReadwriteSplittingActualDataSourceException.java |  2 +-
 ...SplittingActualDataSourceInlineExpressionException.java |  2 +-
 ...equiredReadwriteSplittingActualDataSourceException.java |  2 +-
 ...eadwriteSplittingActualDataSourceNotFoundException.java |  2 +-
 ...ReadwriteSplittingDataSourceRuleNotFoundException.java} | 14 ++++++--------
 .../ReadwriteSplittingStaticDataSourceRuleAttribute.java   | 10 ++++++----
 8 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md 
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 6b8f41aa115..0af74654c8d 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -195,10 +195,11 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | Vendor Code | SQL State | 错误信息                                               
                         |
 
|-------------|-----------|-----------------------------------------------------------------------------|
 | 20200       | 42S02     | Readwrite-splitting data source rule name is 
required in database '%s'.     |
-| 20201       | 42S02     | Readwrite-splitting [READ/WRITE] data source is 
required in %s.             |
-| 20202       | 42S02     | Can not find readwrite-splitting [READ/WRITE] data 
source '%s' in %s.       |
-| 20203       | 42S01     | Readwrite-splitting [READ/WRITE] data source '%s' 
is duplicated in %s.      |
-| 20204       | 44000     | Readwrite-splitting [READ/WRITE] data source 
inline expression error in %s. |
+| 20201       | 42S02     | Can not find readwrite-splitting data source rule 
'%s' in database '%s'.    |
+| 20202       | 42S02     | Readwrite-splitting [READ/WRITE] data source is 
required in %s.             |
+| 20203       | 42S02     | Can not find readwrite-splitting [READ/WRITE] data 
source '%s' in %s.       |
+| 20204       | 42S01     | Readwrite-splitting [READ/WRITE] data source '%s' 
is duplicated in %s.      |
+| 20205       | 44000     | Readwrite-splitting [READ/WRITE] data source 
inline expression error in %s. |
 
 ### SQL 方言转换
 
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md 
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index ce9e6580c08..20d85a7fbb9 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -195,10 +195,11 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | Vendor Code | SQL State | Reason                                             
                         |
 
|-------------|-----------|-----------------------------------------------------------------------------|
 | 20200       | 42S02     | Readwrite-splitting data source rule name is 
required in database '%s'.     |
-| 20201       | 42S02     | Readwrite-splitting [READ/WRITE] data source is 
required in %s.             |
-| 20202       | 42S02     | Can not find readwrite-splitting [READ/WRITE] data 
source '%s' in %s.       |
-| 20203       | 42S01     | Readwrite-splitting [READ/WRITE] data source '%s' 
is duplicated in %s.      |
-| 20204       | 44000     | Readwrite-splitting [READ/WRITE] data source 
inline expression error in %s. |
+| 20201       | 42S02     | Can not find readwrite-splitting data source rule 
'%s' in database '%s'.    |
+| 20202       | 42S02     | Readwrite-splitting [READ/WRITE] data source is 
required in %s.             |
+| 20203       | 42S02     | Can not find readwrite-splitting [READ/WRITE] data 
source '%s' in %s.       |
+| 20204       | 42S01     | Readwrite-splitting [READ/WRITE] data source '%s' 
is duplicated in %s.      |
+| 20205       | 44000     | Readwrite-splitting [READ/WRITE] data source 
inline expression error in %s. |
 
 ### SQL Dialect Translator
 
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
index dc9fafd6e53..5e78035f967 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
@@ -31,6 +31,6 @@ public final class 
DuplicateReadwriteSplittingActualDataSourceException extends
     
     public DuplicateReadwriteSplittingActualDataSourceException(final 
ReadwriteSplittingDataSourceType dataSourceType,
                                                                 final String 
dataSourceName, final ReadwriteSplittingRuleExceptionIdentifier 
exceptionIdentifier) {
-        super(XOpenSQLState.DUPLICATE, 3, "Readwrite-splitting %s data source 
'%s' is duplicated in %s.", dataSourceName, dataSourceType, 
exceptionIdentifier);
+        super(XOpenSQLState.DUPLICATE, 4, "Readwrite-splitting %s data source 
'%s' is duplicated in %s.", dataSourceName, dataSourceType, 
exceptionIdentifier);
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
index a1b562e078a..ad7b6147741 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
@@ -31,6 +31,6 @@ public final class 
InvalidReadwriteSplittingActualDataSourceInlineExpressionExce
     
     public 
InvalidReadwriteSplittingActualDataSourceInlineExpressionException(final 
ReadwriteSplittingDataSourceType dataSourceType,
                                                                               
final ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Readwrite-splitting %s 
data source inline expression error in %s.", dataSourceType, 
exceptionIdentifier);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Readwrite-splitting %s 
data source inline expression error in %s.", dataSourceType, 
exceptionIdentifier);
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
index 9fe7545e9a3..b0b5f8c94d8 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
@@ -30,6 +30,6 @@ public final class 
MissingRequiredReadwriteSplittingActualDataSourceException ex
     private static final long serialVersionUID = 3795576963060485964L;
     
     public MissingRequiredReadwriteSplittingActualDataSourceException(final 
ReadwriteSplittingDataSourceType dataSourceType, final 
ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
-        super(XOpenSQLState.NOT_FOUND, 1, "Readwrite-splitting %s data source 
is required in %s.", dataSourceType, exceptionIdentifier);
+        super(XOpenSQLState.NOT_FOUND, 2, "Readwrite-splitting %s data source 
is required in %s.", dataSourceType, exceptionIdentifier);
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
index f1a85d60305..c0a080612ac 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
@@ -31,6 +31,6 @@ public final class 
ReadwriteSplittingActualDataSourceNotFoundException extends R
     
     public ReadwriteSplittingActualDataSourceNotFoundException(final 
ReadwriteSplittingDataSourceType dataSourceType,
                                                                final String 
dataSourceName, final ReadwriteSplittingRuleExceptionIdentifier 
exceptionIdentifier) {
-        super(XOpenSQLState.NOT_FOUND, 2, "Can not find readwrite-splitting %s 
data source '%s' in %s.", dataSourceType, dataSourceName, exceptionIdentifier);
+        super(XOpenSQLState.NOT_FOUND, 3, "Can not find readwrite-splitting %s 
data source '%s' in %s.", dataSourceType, dataSourceName, exceptionIdentifier);
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
similarity index 54%
copy from 
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
copy to 
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
index 9fe7545e9a3..c7e148382de 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
@@ -15,21 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.exception.actual;
+package org.apache.shardingsphere.readwritesplitting.exception.logic;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import 
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
-import 
org.apache.shardingsphere.readwritesplitting.exception.ReadwriteSplittingRuleExceptionIdentifier;
 import 
org.apache.shardingsphere.readwritesplitting.exception.ReadwriteSplittingSQLException;
 
 /**
- * Missing readwrite-splitting required actual data source exception.
+ * Readwrite-splitting data source rule not found exception.
  */
-public final class MissingRequiredReadwriteSplittingActualDataSourceException 
extends ReadwriteSplittingSQLException {
+public final class ReadwriteSplittingDataSourceRuleNotFoundException extends 
ReadwriteSplittingSQLException {
     
-    private static final long serialVersionUID = 3795576963060485964L;
+    private static final long serialVersionUID = -6293739163056594102L;
     
-    public MissingRequiredReadwriteSplittingActualDataSourceException(final 
ReadwriteSplittingDataSourceType dataSourceType, final 
ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
-        super(XOpenSQLState.NOT_FOUND, 1, "Readwrite-splitting %s data source 
is required in %s.", dataSourceType, exceptionIdentifier);
+    public ReadwriteSplittingDataSourceRuleNotFoundException(final String 
dataSourceRuleName, final String databaseName) {
+        super(XOpenSQLState.NOT_FOUND, 1, "Can not find readwrite-splitting 
data source rule '%s' in database '%s'.", dataSourceRuleName, databaseName);
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
index a68e3fd65bc..c49b99d50bd 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
@@ -17,15 +17,16 @@
 
 package org.apache.shardingsphere.readwritesplitting.rule.attribute;
 
-import com.google.common.base.Preconditions;
 import lombok.RequiredArgsConstructor;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.infra.instance.InstanceContext;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDatabase;
-import org.apache.shardingsphere.infra.rule.event.DataSourceStatusChangedEvent;
 import 
org.apache.shardingsphere.infra.rule.attribute.datasource.StaticDataSourceRuleAttribute;
+import org.apache.shardingsphere.infra.rule.event.DataSourceStatusChangedEvent;
 import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
 import 
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceChangedEvent;
 import 
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceDeletedEvent;
+import 
org.apache.shardingsphere.readwritesplitting.exception.logic.ReadwriteSplittingDataSourceRuleNotFoundException;
 import 
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingDataSourceRule;
 
 import java.util.Collection;
@@ -59,7 +60,8 @@ public final class 
ReadwriteSplittingStaticDataSourceRuleAttribute implements St
         StorageNodeDataSourceChangedEvent dataSourceEvent = 
(StorageNodeDataSourceChangedEvent) event;
         QualifiedDatabase qualifiedDatabase = 
dataSourceEvent.getQualifiedDatabase();
         ReadwriteSplittingDataSourceRule dataSourceRule = 
dataSourceRules.get(qualifiedDatabase.getGroupName());
-        Preconditions.checkNotNull(dataSourceRule, "Can not find 
readwrite-splitting data source rule in database `%s`", 
qualifiedDatabase.getDatabaseName());
+        ShardingSpherePreconditions.checkNotNull(dataSourceRule,
+                () -> new 
ReadwriteSplittingDataSourceRuleNotFoundException(qualifiedDatabase.getGroupName(),
 qualifiedDatabase.getDatabaseName()));
         if (DataSourceState.DISABLED == 
dataSourceEvent.getDataSource().getStatus()) {
             
dataSourceRule.disableDataSource(dataSourceEvent.getQualifiedDatabase().getDataSourceName());
         } else {
@@ -69,7 +71,7 @@ public final class 
ReadwriteSplittingStaticDataSourceRuleAttribute implements St
     
     @Override
     public void cleanStorageNodeDataSource(final String groupName) {
-        Preconditions.checkNotNull(dataSourceRules.get(groupName), 
String.format("`%s` group name not exist in database `%s`", groupName, 
databaseName));
+        
ShardingSpherePreconditions.checkState(dataSourceRules.containsKey(groupName), 
() -> new ReadwriteSplittingDataSourceRuleNotFoundException(groupName, 
databaseName));
         deleteStorageNodeDataSources(dataSourceRules.get(groupName));
     }
     

Reply via email to