You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2021/09/27 22:55:31 UTC
[shardingsphere] branch master updated: Refactor
DataSourceConfigurationValidator (#12783)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 37dc335 Refactor DataSourceConfigurationValidator (#12783)
37dc335 is described below
commit 37dc335cfa76604d4e0adb2f1a14b50e8f0b99c2
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Sep 28 06:54:41 2021 +0800
Refactor DataSourceConfigurationValidator (#12783)
* Refactor DataSourceConfigurationValidator
* Refactor DataSourceConfigurationValidator
---
....java => DataSourceConfigurationValidator.java} | 19 +++++-----
.../config/datasource/DataSourceConverter.java | 6 +--
.../InvalidDataSourceConfigurationException.java} | 14 +++----
...ception.java => InvalidResourcesException.java} | 8 ++--
...a => DataSourceConfigurationValidatorTest.java} | 14 +++----
.../rdl/resource/AddResourceBackendHandler.java | 43 +++++++++++-----------
.../rdl/resource/AlterResourceBackendHandler.java | 37 +++++++++----------
.../resource/AddResourceBackendHandlerTest.java | 17 ++++-----
.../resource/AlterResourceBackendHandlerTest.java | 11 ++----
9 files changed, 78 insertions(+), 91 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceValidator.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConfigurationValidator.java
similarity index 70%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceValidator.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConfigurationValidator.java
index c4f64e7..fd9dc49 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceValidator.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConfigurationValidator.java
@@ -20,26 +20,25 @@ package org.apache.shardingsphere.infra.config.datasource;
import javax.sql.DataSource;
/**
- * Data source validator.
+ * Data source configuration validator.
*/
-public final class DataSourceValidator {
+public final class DataSourceConfigurationValidator {
/**
- * Validate.
+ * Validate data source configuration.
*
- * @param dataSourceConfiguration data source configuration
- * @return is valid or not
- * @throws Exception exception
+ * @param dataSourceConfigName data source configuration name to be valid
+ * @param dataSourceConfig data source configuration to be valid
+ * @throws InvalidDataSourceConfigurationException invalid data source configuration exception
*/
- public boolean validate(final DataSourceConfiguration dataSourceConfiguration) throws Exception {
+ public void validate(final String dataSourceConfigName, final DataSourceConfiguration dataSourceConfig) throws InvalidDataSourceConfigurationException {
DataSource dataSource = null;
try {
- dataSource = DataSourceConverter.getDataSource(dataSourceConfiguration);
- return true;
+ dataSource = DataSourceConverter.getDataSource(dataSourceConfig);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
- throw ex;
+ throw new InvalidDataSourceConfigurationException(dataSourceConfigName, ex.getMessage());
} finally {
if (null != dataSource) {
close(dataSource);
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConverter.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConverter.java
index 12d116f..d0c0a81 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/DataSourceConverter.java
@@ -45,8 +45,7 @@ public final class DataSourceConverter {
* @return data source
*/
public static DataSource getDataSource(final DataSourceConfiguration dataSourceConfiguration) {
- return JDBCParameterDecoratorHelper.decorate(DataSourceCreatorFactory.getDataSourceCreator(dataSourceConfiguration.getDataSourceClassName())
- .createDataSource(dataSourceConfiguration));
+ return JDBCParameterDecoratorHelper.decorate(DataSourceCreatorFactory.getDataSourceCreator(dataSourceConfiguration.getDataSourceClassName()).createDataSource(dataSourceConfiguration));
}
/**
@@ -66,8 +65,7 @@ public final class DataSourceConverter {
* @return data source map
*/
public static Map<String, DataSource> getDataSourceMap(final Map<String, DataSourceConfiguration> dataSourceConfigMap) {
- return dataSourceConfigMap.entrySet().stream().collect(Collectors.toMap(Entry::getKey,
- entry -> getDataSource(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
+ return dataSourceConfigMap.entrySet().stream().collect(Collectors.toMap(Entry::getKey, entry -> getDataSource(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
}
/**
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/InvalidDataSourceConfigurationException.java
similarity index 62%
copy from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java
copy to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/InvalidDataSourceConfigurationException.java
index 600dc14..8d9a382 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/datasource/InvalidDataSourceConfigurationException.java
@@ -15,18 +15,16 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.distsql.exception.resource;
-
-import java.util.Collection;
+package org.apache.shardingsphere.infra.config.datasource;
/**
- * Invalid resource exception.
+ * Invalid data source configuration exception.
*/
-public final class InvalidResourceException extends ResourceDefinitionViolationException {
+public final class InvalidDataSourceConfigurationException extends Exception {
- private static final long serialVersionUID = 7029641448948791509L;
+ private static final long serialVersionUID = -7221138369057943935L;
- public InvalidResourceException(final Collection<String> resourceNames) {
- super(1104, String.format("Can not add invalid resources %s.", resourceNames));
+ public InvalidDataSourceConfigurationException(final String dataSourceConfigName, final String errorMessage) {
+ super(String.format("Invalid data source configuration name `%s`, error message is: %s", dataSourceConfigName, errorMessage));
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
similarity index 75%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
index 600dc14..1511dc4 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourceException.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
@@ -20,13 +20,13 @@ package org.apache.shardingsphere.infra.distsql.exception.resource;
import java.util.Collection;
/**
- * Invalid resource exception.
+ * Invalid resources exception.
*/
-public final class InvalidResourceException extends ResourceDefinitionViolationException {
+public final class InvalidResourcesException extends ResourceDefinitionViolationException {
private static final long serialVersionUID = 7029641448948791509L;
- public InvalidResourceException(final Collection<String> resourceNames) {
- super(1104, String.format("Can not add invalid resources %s.", resourceNames));
+ public InvalidResourcesException(final Collection<String> errorMessages) {
+ super(1104, String.format("Can not process invalid resources, error messages are: %s.", errorMessages));
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceValidatorTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceConfigurationValidatorTest.java
similarity index 78%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceValidatorTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceConfigurationValidatorTest.java
index 59ee291..dcfc468 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceValidatorTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/datasource/DataSourceConfigurationValidatorTest.java
@@ -19,21 +19,19 @@ package org.apache.shardingsphere.infra.datasource;
import com.zaxxer.hikari.HikariDataSource;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfigurationValidator;
+import org.apache.shardingsphere.infra.config.datasource.InvalidDataSourceConfigurationException;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public final class DataSourceValidatorTest {
+public final class DataSourceConfigurationValidatorTest {
@Test
- public void assertValidate() throws Exception {
- DataSourceValidator dataSourceValidator = new DataSourceValidator();
- assertThat(dataSourceValidator.validate(createDataSourceConfiguration()), is(Boolean.TRUE));
+ public void assertValidate() throws InvalidDataSourceConfigurationException {
+ DataSourceConfigurationValidator dataSourceConfigurationValidator = new DataSourceConfigurationValidator();
+ dataSourceConfigurationValidator.validate("name", createDataSourceConfiguration());
}
private DataSourceConfiguration createDataSourceConfiguration() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
index c6b8854..db9e1fb 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
@@ -20,11 +20,12 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfigurationValidator;
+import org.apache.shardingsphere.infra.config.datasource.InvalidDataSourceConfigurationException;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
-import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourceException;
+import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourcesException;
import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -36,12 +37,11 @@ import org.apache.shardingsphere.proxy.converter.ResourceSegmentsConverter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Objects;
import java.util.Set;
-import java.util.stream.Collectors;
/**
* Add resource backend handler.
@@ -50,12 +50,12 @@ public final class AddResourceBackendHandler extends SchemaRequiredBackendHandle
private final DatabaseType databaseType;
- private final DataSourceValidator dataSourceValidator;
+ private final DataSourceConfigurationValidator dataSourceConfigValidator;
public AddResourceBackendHandler(final DatabaseType databaseType, final AddResourceStatement sqlStatement, final BackendConnection backendConnection) {
super(sqlStatement, backendConnection);
this.databaseType = databaseType;
- dataSourceValidator = new DataSourceValidator();
+ dataSourceConfigValidator = new DataSourceConfigurationValidator();
}
@Override
@@ -63,13 +63,25 @@ public final class AddResourceBackendHandler extends SchemaRequiredBackendHandle
check(schemaName, sqlStatement);
Map<String, DataSourceConfiguration> dataSourceConfigs = DataSourceParameterConverter.getDataSourceConfigurationMap(
DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(ResourceSegmentsConverter.convert(databaseType, sqlStatement.getDataSources())));
- Collection<String> invalidResources = dataSourceConfigs.entrySet().stream().map(entry -> validateDataSource(entry)).filter(Objects::nonNull).collect(Collectors.toList());
- DistSQLException.predictionThrow(invalidResources.isEmpty(), new InvalidResourceException(invalidResources));
+ validateDataSourceConfigurations(dataSourceConfigs);
// TODO update meta data context in memory
- ProxyContext.getInstance().getContextManager()
- .getMetaDataContexts().getMetaDataPersistService().ifPresent(optional -> optional.getDataSourceService().append(schemaName, dataSourceConfigs));
+ ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaDataPersistService().ifPresent(optional -> optional.getDataSourceService().append(schemaName, dataSourceConfigs));
return new UpdateResponseHeader(sqlStatement);
}
+
+ private void validateDataSourceConfigurations(final Map<String, DataSourceConfiguration> dataSourceConfigs) throws InvalidResourcesException {
+ Collection<String> errorMessages = new LinkedList<>();
+ for (Entry<String, DataSourceConfiguration> entry : dataSourceConfigs.entrySet()) {
+ try {
+ dataSourceConfigValidator.validate(entry.getKey(), entry.getValue());
+ } catch (final InvalidDataSourceConfigurationException ex) {
+ errorMessages.add(ex.getMessage());
+ }
+ }
+ if (!errorMessages.isEmpty()) {
+ throw new InvalidResourcesException(errorMessages);
+ }
+ }
private void check(final String schemaName, final AddResourceStatement sqlStatement) throws DuplicateResourceException {
List<String> dataSourceNames = new ArrayList<>(sqlStatement.getDataSources().size());
@@ -84,15 +96,4 @@ public final class AddResourceBackendHandler extends SchemaRequiredBackendHandle
throw new DuplicateResourceException(duplicateDataSourceNames);
}
}
-
- private String validateDataSource(final Entry<String, DataSourceConfiguration> dataSource) {
- try {
- dataSourceValidator.validate(dataSource.getValue());
- // CHECKSTYLE:OFF
- } catch (final Exception ex) {
- // CHECKSTYLE:ON
- return String.format("`%s` %s", dataSource.getKey(), ex.getMessage());
- }
- return null;
- }
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandler.java
index 5d340f0..0d69a88 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandler.java
@@ -20,11 +20,12 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfigurationValidator;
+import org.apache.shardingsphere.infra.config.datasource.InvalidDataSourceConfigurationException;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
-import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourceException;
+import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourcesException;
import org.apache.shardingsphere.infra.distsql.exception.resource.RequiredResourceMissedException;
import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -36,9 +37,9 @@ import org.apache.shardingsphere.proxy.converter.ResourceSegmentsConverter;
import javax.sql.DataSource;
import java.util.Collection;
+import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -48,12 +49,12 @@ public final class AlterResourceBackendHandler extends SchemaRequiredBackendHand
private final DatabaseType databaseType;
- private final DataSourceValidator dataSourceValidator;
+ private final DataSourceConfigurationValidator dataSourceConfigValidator;
public AlterResourceBackendHandler(final DatabaseType databaseType, final AlterResourceStatement sqlStatement, final BackendConnection backendConnection) {
super(sqlStatement, backendConnection);
this.databaseType = databaseType;
- dataSourceValidator = new DataSourceValidator();
+ dataSourceConfigValidator = new DataSourceConfigurationValidator();
}
@Override
@@ -61,7 +62,7 @@ public final class AlterResourceBackendHandler extends SchemaRequiredBackendHand
check(schemaName, sqlStatement);
Map<String, DataSourceConfiguration> dataSourceConfigs = DataSourceParameterConverter.getDataSourceConfigurationMap(
DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(ResourceSegmentsConverter.convert(databaseType, sqlStatement.getDataSources())));
- validate(dataSourceConfigs);
+ validateDataSourceConfigurations(dataSourceConfigs);
// TODO update meta data context in memory
ProxyContext.getInstance().getContextManager()
.getMetaDataContexts().getMetaDataPersistService().ifPresent(optional -> optional.getDataSourceService().append(schemaName, dataSourceConfigs));
@@ -74,20 +75,18 @@ public final class AlterResourceBackendHandler extends SchemaRequiredBackendHand
checkResourceNameExisted(schemaName, toBeAlteredResourceNames);
}
- private void validate(final Map<String, DataSourceConfiguration> dataSourceConfigs) throws DistSQLException {
- Collection<String> invalidResources = dataSourceConfigs.entrySet().stream().map(entry -> validateDataSource(entry)).filter(Objects::nonNull).collect(Collectors.toList());
- DistSQLException.predictionThrow(invalidResources.isEmpty(), new InvalidResourceException(invalidResources));
- }
-
- private String validateDataSource(final Entry<String, DataSourceConfiguration> dataSource) {
- try {
- dataSourceValidator.validate(dataSource.getValue());
- // CHECKSTYLE:OFF
- } catch (final Exception ex) {
- // CHECKSTYLE:ON
- return String.format("`%s` %s", dataSource.getKey(), ex.getMessage());
+ private void validateDataSourceConfigurations(final Map<String, DataSourceConfiguration> dataSourceConfigs) throws DistSQLException {
+ Collection<String> errorMessages = new LinkedList<>();
+ for (Entry<String, DataSourceConfiguration> entry : dataSourceConfigs.entrySet()) {
+ try {
+ dataSourceConfigValidator.validate(entry.getKey(), entry.getValue());
+ } catch (final InvalidDataSourceConfigurationException ex) {
+ errorMessages.add(ex.getMessage());
+ }
+ }
+ if (!errorMessages.isEmpty()) {
+ throw new InvalidResourcesException(errorMessages);
}
- return null;
}
private Collection<String> getToBeAlteredResourceNames(final AlterResourceStatement sqlStatement) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
index c24f0f2..e226f56 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
@@ -19,15 +19,14 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
-import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfigurationValidator;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
+import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -46,7 +45,6 @@ import java.util.List;
import java.util.Properties;
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -55,7 +53,7 @@ import static org.mockito.Mockito.when;
public final class AddResourceBackendHandlerTest {
@Mock
- private DataSourceValidator dataSourceValidator;
+ private DataSourceConfigurationValidator dataSourceConfigurationValidator;
@Mock
private AddResourceStatement addResourceStatement;
@@ -77,9 +75,9 @@ public final class AddResourceBackendHandlerTest {
@Before
public void setUp() throws Exception {
addResourceBackendHandler = new AddResourceBackendHandler(new MySQLDatabaseType(), addResourceStatement, backendConnection);
- Field field = addResourceBackendHandler.getClass().getDeclaredField("dataSourceValidator");
+ Field field = addResourceBackendHandler.getClass().getDeclaredField("dataSourceConfigValidator");
field.setAccessible(true);
- field.set(addResourceBackendHandler, dataSourceValidator);
+ field.set(addResourceBackendHandler, dataSourceConfigurationValidator);
}
@Test
@@ -91,7 +89,6 @@ public final class AddResourceBackendHandlerTest {
when(metaDataContexts.getMetaData("test_schema")).thenReturn(metaData);
when(metaData.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.emptyMap());
- when(dataSourceValidator.validate(any(DataSourceConfiguration.class))).thenReturn(true);
ResponseHeader responseHeader = addResourceBackendHandler.execute("test_schema", createAddResourceStatement());
assertTrue(responseHeader instanceof UpdateResponseHeader);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
index b6fc597..5e89259 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
@@ -19,8 +19,7 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfigurationValidator;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
@@ -48,7 +47,6 @@ import java.util.List;
import java.util.Properties;
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -57,7 +55,7 @@ import static org.mockito.Mockito.when;
public final class AlterResourceBackendHandlerTest {
@Mock
- private DataSourceValidator dataSourceValidator;
+ private DataSourceConfigurationValidator dataSourceConfigurationValidator;
@Mock
private AlterResourceStatement alterResourceStatement;
@@ -82,9 +80,9 @@ public final class AlterResourceBackendHandlerTest {
@Before
public void setUp() throws Exception {
alterResourceBackendHandler = new AlterResourceBackendHandler(new MySQLDatabaseType(), alterResourceStatement, backendConnection);
- Field field = alterResourceBackendHandler.getClass().getDeclaredField("dataSourceValidator");
+ Field field = alterResourceBackendHandler.getClass().getDeclaredField("dataSourceConfigValidator");
field.setAccessible(true);
- field.set(alterResourceBackendHandler, dataSourceValidator);
+ field.set(alterResourceBackendHandler, dataSourceConfigurationValidator);
}
@Test
@@ -96,7 +94,6 @@ public final class AlterResourceBackendHandlerTest {
when(metaDataContexts.getMetaData("test_schema")).thenReturn(metaData);
when(metaData.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.singletonMap("ds_0", dataSource));
- when(dataSourceValidator.validate(any(DataSourceConfiguration.class))).thenReturn(true);
ResponseHeader responseHeader = alterResourceBackendHandler.execute("test_schema", createAlterResourceStatement("ds_0"));
assertTrue(responseHeader instanceof UpdateResponseHeader);
}