You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/05/17 09:21:14 UTC

[shardingsphere] branch master updated: Refactor AddResourceBackendHandler (#10364)

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 <me...@gmail.com>
AuthorDate: Mon May 17 17:20:53 2021 +0800

    Refactor AddResourceBackendHandler (#10364)
    
    Co-authored-by: menghaoranss <me...@apache.org>
---
 .../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) {