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));
}
}