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) {