This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 23ee36c Refactor AddResourceBackendHandler (#10364)
23ee36c is described below
commit 23ee36cc610abe4d07965662a1595220c222393a
Author: Haoran Meng <[email protected]>
AuthorDate: Mon May 17 17:20:53 2021 +0800
Refactor AddResourceBackendHandler (#10364)
Co-authored-by: menghaoranss <[email protected]>
---
.../rdl/impl/AddResourceBackendHandler.java | 26 +++++++++-------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AddResourceBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AddResourceBackendHandler.java
index e7a99bf..38601d7 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AddResourceBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AddResourceBackendHandler.java
@@ -37,11 +37,11 @@ import
org.apache.shardingsphere.proxy.converter.AddResourcesStatementConverter;
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.Set;
+import java.util.stream.Collectors;
/**
* Add resource backend handler.
@@ -60,11 +60,19 @@ public final class AddResourceBackendHandler extends
SchemaRequiredBackendHandle
@Override
public ResponseHeader execute(final String schemaName, final
AddResourceStatement sqlStatement) {
- post(schemaName, check(schemaName, sqlStatement));
+ check(schemaName, sqlStatement);
+ Map<String, DataSourceConfiguration> dataSourceConfigurationMap =
DataSourceParameterConverter.getDataSourceConfigurationMap(
+
DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(AddResourcesStatementConverter.convert(databaseType,
sqlStatement)));
+ Collection<String> invalidDataSourceNames =
dataSourceConfigurationMap.entrySet()
+ .stream().filter(entry ->
!dataSourceValidator.validate(entry.getValue())).map(Entry::getKey).collect(Collectors.toList());
+ if (!invalidDataSourceNames.isEmpty()) {
+ throw new InvalidResourceException(invalidDataSourceNames);
+ }
+ post(schemaName, dataSourceConfigurationMap);
return new UpdateResponseHeader(sqlStatement);
}
- private Map<String, DataSourceConfiguration> check(final String
schemaName, final AddResourceStatement sqlStatement) {
+ private void check(final String schemaName, final AddResourceStatement
sqlStatement) {
List<String> dataSourceNames = new
ArrayList<>(sqlStatement.getDataSources().size());
Set<String> duplicateDataSourceNames = new
HashSet<>(sqlStatement.getDataSources().size(), 1);
for (DataSourceSegment each : sqlStatement.getDataSources()) {
@@ -76,18 +84,6 @@ public final class AddResourceBackendHandler extends
SchemaRequiredBackendHandle
if (!duplicateDataSourceNames.isEmpty()) {
throw new DuplicateResourceException(duplicateDataSourceNames);
}
- Map<String, DataSourceConfiguration> result =
DataSourceParameterConverter.getDataSourceConfigurationMap(
-
DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(AddResourcesStatementConverter.convert(databaseType,
sqlStatement)));
- Collection<String> invalidDataSourceNames = new LinkedList<>();
- for (Entry<String, DataSourceConfiguration> entry : result.entrySet())
{
- if (!dataSourceValidator.validate(entry.getValue())) {
- invalidDataSourceNames.add(entry.getKey());
- }
- }
- if (!invalidDataSourceNames.isEmpty()) {
- throw new InvalidResourceException(invalidDataSourceNames);
- }
- return result;
}
private void post(final String schemaName, final Map<String,
DataSourceConfiguration> dataSources) {