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 d57c19fec34 Refactor DuplicatedDataSourceException (#30735)
d57c19fec34 is described below

commit d57c19fec3454b0d5f9fe0a15310728c38311441
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Apr 1 22:13:29 2024 +0800

    Refactor DuplicatedDataSourceException (#30735)
    
    * Refactor DuplicatedDataSourceException
    
    * Refactor DuplicatedDataSourceException
---
 .../content/user-manual/error-code/sql-error-code.cn.md      |  1 +
 .../content/user-manual/error-code/sql-error-code.en.md      |  1 +
 .../resource/datasource/DuplicateDataSourceException.java    | 12 ++++++------
 .../config/checker/YamlProxyConfigurationChecker.java        | 12 +++++-------
 4 files changed, 13 insertions(+), 13 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 d6a0260435c..bf5deffa481 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
@@ -27,6 +27,7 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                              |
 | 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                               |
 | 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                                 |
+| 42S01     | 10130       | Duplicate data sources '%s' in database '%s' and 
global data sources.               |
 | 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                                 |
 | 42S02     | 10201       | There is no rule in database '%s'.                 
                                 |
 | 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                                 |
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 8088e588f37..aee0ba3f88d 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
@@ -27,6 +27,7 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                              |
 | 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                               |
 | 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                                 |
+| 42S01     | 10130       | Duplicate data sources '%s' in database '%s' and 
global data sources.               |
 | 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                                 |
 | 42S02     | 10201       | There is no rule in database '%s'.                 
                                 |
 | 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                                 |
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DuplicatedDataSourceException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/datasource/DuplicateDataSourceException.java
similarity index 64%
rename from 
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DuplicatedDataSourceException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/datasource/DuplicateDataSourceException.java
index 5f196b554b1..f4034277f06 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DuplicatedDataSourceException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/datasource/DuplicateDataSourceException.java
@@ -15,21 +15,21 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.exception;
+package org.apache.shardingsphere.infra.exception.metadata.resource.datasource;
 
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import 
org.apache.shardingsphere.infra.exception.metadata.resource.ResourceDefinitionException;
 
 import java.util.Collection;
 
 /**
- * Duplicated data source exception.
+ * Duplicate data source exception.
  */
-public final class DuplicatedDataSourceException extends MetaDataSQLException {
+public final class DuplicateDataSourceException extends 
ResourceDefinitionException {
     
     private static final long serialVersionUID = -8215195072425201836L;
     
-    public DuplicatedDataSourceException(final String databaseName, final 
Collection<String> dataSourceNames) {
-        super(XOpenSQLState.DUPLICATE, 1, "Duplicated data source `%s` in 
database `%s` and global data sources.", dataSourceNames, databaseName);
+    public DuplicateDataSourceException(final String databaseName, final 
Collection<String> dataSourceNames) {
+        super(XOpenSQLState.DUPLICATE, 30, "Duplicate data sources '%s' in 
database '%s' and global data sources.", String.join(", ", dataSourceNames), 
databaseName);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
index 626f04ee796..86b4009fbd2 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/config/checker/YamlProxyConfigurationChecker.java
@@ -22,7 +22,7 @@ import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyDataSourceConfiguration;
 import 
org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyDatabaseConfiguration;
-import 
org.apache.shardingsphere.proxy.backend.exception.DuplicatedDataSourceException;
+import 
org.apache.shardingsphere.infra.exception.metadata.resource.datasource.DuplicateDataSourceException;
 
 import java.util.Collection;
 import java.util.Map;
@@ -41,14 +41,12 @@ public final class YamlProxyConfigurationChecker {
      * @param databaseConfigs database configurations
      */
     public static void checkDataSources(final Map<String, 
YamlProxyDataSourceConfiguration> globalDataSources, final 
Collection<YamlProxyDatabaseConfiguration> databaseConfigs) {
-        for (YamlProxyDatabaseConfiguration each : databaseConfigs) {
-            checkDataSources(globalDataSources, each.getDataSources(), 
each.getDatabaseName());
-        }
+        databaseConfigs.forEach(each -> checkDataSources(globalDataSources, 
each.getDataSources(), each.getDatabaseName()));
     }
     
-    private static void checkDataSources(final Map<String, 
YamlProxyDataSourceConfiguration> globalDataSources, final Map<String, 
YamlProxyDataSourceConfiguration> databaseDataSources,
-                                         final String databaseName) {
+    private static void checkDataSources(final Map<String, 
YamlProxyDataSourceConfiguration> globalDataSources,
+                                         final Map<String, 
YamlProxyDataSourceConfiguration> databaseDataSources, final String 
databaseName) {
         Collection<String> duplicatedDataSourceNames = 
globalDataSources.keySet().stream().filter(databaseDataSources.keySet()::contains).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicatedDataSourceException(databaseName, duplicatedDataSourceNames));
+        
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicateDataSourceException(databaseName, duplicatedDataSourceNames));
     }
 }

Reply via email to