You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2021/06/24 15:56:09 UTC
[shardingsphere] branch master updated: Standardization and
refactor AlterDatabaseDiscoveryRuleBackendHandler (#11002)
This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 2441fea Standardization and refactor AlterDatabaseDiscoveryRuleBackendHandler (#11002)
2441fea is described below
commit 2441fea4f6f7afaee060e5c53f7c17ed4f1a0f48
Author: Liang Zhang <te...@163.com>
AuthorDate: Thu Jun 24 23:55:39 2021 +0800
Standardization and refactor AlterDatabaseDiscoveryRuleBackendHandler (#11002)
---
.../AlterDatabaseDiscoveryRuleBackendHandler.java | 98 ++++++++++++----------
.../rdl/impl/AlterEncryptRuleBackendHandler.java | 4 +-
.../AlterReadwriteSplittingRuleBackendHandler.java | 6 +-
...terShardingBindingTableRulesBackendHandler.java | 6 +-
...rShardingBroadcastTableRulesBackendHandler.java | 4 +-
.../impl/AlterShardingTableRuleBackendHandler.java | 8 +-
.../CreateDatabaseDiscoveryRuleBackendHandler.java | 6 +-
.../rdl/impl/CreateEncryptRuleBackendHandler.java | 4 +-
...CreateReadwriteSplittingRuleBackendHandler.java | 6 +-
...ateShardingBindingTableRulesBackendHandler.java | 6 +-
...eShardingBroadcastTableRulesBackendHandler.java | 2 +-
.../CreateShardingTableRuleBackendHandler.java | 6 +-
.../DropDatabaseDiscoveryRuleBackendHandler.java | 4 +-
.../rdl/impl/DropEncryptRuleBackendHandler.java | 4 +-
.../DropReadwriteSplittingRuleBackendHandler.java | 4 +-
...ropShardingBindingTableRulesBackendHandler.java | 4 +-
...pShardingBroadcastTableRulesBackendHandler.java | 4 +-
.../impl/DropShardingTableRuleBackendHandler.java | 4 +-
.../text/distsql/rdl/impl/RDLBackendHandler.java | 18 ++--
19 files changed, 104 insertions(+), 94 deletions(-)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
index 4262b4b..1d6f2eb 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
@@ -17,12 +17,13 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
+import com.google.common.base.Preconditions;
import org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
import org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
-import org.apache.shardingsphere.dbdiscovery.yaml.converter.DatabaseDiscoveryRuleStatementConverter;
-import org.apache.shardingsphere.dbdiscovery.spi.DatabaseDiscoveryType;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryRuleSegment;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
+import org.apache.shardingsphere.dbdiscovery.spi.DatabaseDiscoveryType;
+import org.apache.shardingsphere.dbdiscovery.yaml.converter.DatabaseDiscoveryRuleStatementConverter;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
@@ -36,7 +37,6 @@ import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.Properties;
-import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -55,71 +55,81 @@ public final class AlterDatabaseDiscoveryRuleBackendHandler extends RDLBackendHa
@Override
public void check(final String schemaName, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- check(schemaName, sqlStatement, getRuleConfiguration(schemaName, sqlStatement));
+ checkToBeAlteredRules(schemaName, getRuleConfiguration(schemaName, sqlStatement), sqlStatement);
+ checkToBeAlteredResources(schemaName, sqlStatement);
+ checkToBeAlteredDiscoveryType(sqlStatement);
}
- private void check(final String schemaName, final AlterDatabaseDiscoveryRuleStatement sqlStatement, final DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig) {
- checkAlteredRules(schemaName, databaseDiscoveryRuleConfig, sqlStatement);
- checkResources(schemaName, sqlStatement);
- checkDiscoveryType(sqlStatement);
+ private void checkToBeAlteredRules(final String schemaName, final DatabaseDiscoveryRuleConfiguration ruleConfig, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> currentRuleNames = ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toSet());
+ Collection<String> notExistedRuleNames = getToBeAlteredRuleNames(sqlStatement).stream().filter(each -> !currentRuleNames.contains(each)).collect(Collectors.toList());
+ if (!notExistedRuleNames.isEmpty()) {
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName, notExistedRuleNames);
+ }
}
- private void checkAlteredRules(final String schemaName, final DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig,
- final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- Set<String> existRuleNames = databaseDiscoveryRuleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toSet());
- Collection<String> notExistRuleNames = getAlteredRuleNames(sqlStatement).stream()
- .filter(each -> !existRuleNames.contains(each)).collect(Collectors.toList());
- if (!notExistRuleNames.isEmpty()) {
- throw new DatabaseDiscoveryRulesNotExistedException(schemaName, notExistRuleNames);
- }
+ private Collection<String> getToBeAlteredRuleNames(final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ return sqlStatement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getName).collect(Collectors.toList());
}
- private void checkResources(final String schemaName, final AlterDatabaseDiscoveryRuleStatement statement) {
- Collection<String> resources = new LinkedHashSet<>();
- statement.getRules().forEach(each -> resources.addAll(each.getDataSources()));
- Collection<String> notExistResources = getInvalidResources(schemaName, resources);
- if (!notExistResources.isEmpty()) {
- throw new ResourceNotExistedException(schemaName, notExistResources);
+ private void checkToBeAlteredResources(final String schemaName, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> notExistedResources = getNotExistedResources(schemaName, getToBeAlteredResourceNames(sqlStatement));
+ if (!notExistedResources.isEmpty()) {
+ throw new ResourceNotExistedException(schemaName, notExistedResources);
}
}
- private void checkDiscoveryType(final AlterDatabaseDiscoveryRuleStatement statement) {
- Collection<String> invalidDiscoveryTypes = statement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getDiscoveryTypeName).distinct()
+ private Collection<String> getToBeAlteredResourceNames(final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> result = new LinkedHashSet<>();
+ sqlStatement.getRules().forEach(each -> result.addAll(each.getDataSources()));
+ return result;
+ }
+
+ private void checkToBeAlteredDiscoveryType(final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> notExistedDiscoveryTypes = getToBeAlteredDiscoveryTypeNames(sqlStatement).stream()
.filter(each -> !TypedSPIRegistry.findRegisteredService(DatabaseDiscoveryType.class, each, new Properties()).isPresent()).collect(Collectors.toList());
- if (!invalidDiscoveryTypes.isEmpty()) {
- throw new InvalidDatabaseDiscoveryTypesException(invalidDiscoveryTypes);
+ if (!notExistedDiscoveryTypes.isEmpty()) {
+ throw new InvalidDatabaseDiscoveryTypesException(notExistedDiscoveryTypes);
}
}
+ private Collection<String> getToBeAlteredDiscoveryTypeNames(final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ return sqlStatement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getDiscoveryTypeName).collect(Collectors.toSet());
+ }
+
private DatabaseDiscoveryRuleConfiguration getRuleConfiguration(final String schemaName, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> result = findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ Optional<DatabaseDiscoveryRuleConfiguration> result = findCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (!result.isPresent()) {
- throw new DatabaseDiscoveryRulesNotExistedException(schemaName, getAlteredRuleNames(sqlStatement));
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName, getToBeAlteredRuleNames(sqlStatement));
}
return result.get();
}
@Override
public void doExecute(final String schemaName, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- DatabaseDiscoveryRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
- DatabaseDiscoveryRuleConfiguration alteredDatabaseDiscoveryRuleConfiguration = new YamlRuleConfigurationSwapperEngine()
- .swapToRuleConfigurations(Collections.singletonList(DatabaseDiscoveryRuleStatementConverter.convert(sqlStatement.getRules()))).stream()
- .map(each -> (DatabaseDiscoveryRuleConfiguration) each).findFirst().get();
- drop(sqlStatement, ruleConfig);
- ruleConfig.getDataSources().addAll(alteredDatabaseDiscoveryRuleConfiguration.getDataSources());
- ruleConfig.getDiscoveryTypes().putAll(alteredDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes());
+ DatabaseDiscoveryRuleConfiguration currentRuleConfig = getCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ dropRuleConfiguration(currentRuleConfig, sqlStatement);
+ addRuleConfiguration(currentRuleConfig, sqlStatement);
}
- private void drop(final AlterDatabaseDiscoveryRuleStatement sqlStatement, final DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig) {
- getAlteredRuleNames(sqlStatement).forEach(each -> {
- DatabaseDiscoveryDataSourceRuleConfiguration databaseDiscoveryDataSourceRuleConfig = databaseDiscoveryRuleConfig.getDataSources()
- .stream().filter(dataSource -> dataSource.getName().equals(each)).findAny().get();
- databaseDiscoveryRuleConfig.getDataSources().remove(databaseDiscoveryDataSourceRuleConfig);
- databaseDiscoveryRuleConfig.getDiscoveryTypes().remove(databaseDiscoveryDataSourceRuleConfig.getDiscoveryTypeName());
- });
+ private void dropRuleConfiguration(final DatabaseDiscoveryRuleConfiguration currentRuleConfig, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ getToBeAlteredRuleNames(sqlStatement).forEach(each -> dropDataSourceRuleConfiguration(currentRuleConfig, each));
}
- private Collection<String> getAlteredRuleNames(final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- return sqlStatement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getName).collect(Collectors.toList());
+ private void dropDataSourceRuleConfiguration(final DatabaseDiscoveryRuleConfiguration currentRuleConfig, final String toBeDroppedRuleNames) {
+ Optional<DatabaseDiscoveryDataSourceRuleConfiguration> toBeDroppedDataSourceRuleConfig
+ = currentRuleConfig.getDataSources().stream().filter(each -> each.getName().equals(toBeDroppedRuleNames)).findAny();
+ Preconditions.checkState(toBeDroppedDataSourceRuleConfig.isPresent());
+ currentRuleConfig.getDataSources().remove(toBeDroppedDataSourceRuleConfig.get());
+ currentRuleConfig.getDiscoveryTypes().remove(toBeDroppedDataSourceRuleConfig.get().getDiscoveryTypeName());
+ }
+
+ private void addRuleConfiguration(final DatabaseDiscoveryRuleConfiguration currentRuleConfig, final AlterDatabaseDiscoveryRuleStatement sqlStatement) {
+ Optional<DatabaseDiscoveryRuleConfiguration> toBeAlteredRuleConfig = new YamlRuleConfigurationSwapperEngine()
+ .swapToRuleConfigurations(Collections.singleton(DatabaseDiscoveryRuleStatementConverter.convert(sqlStatement.getRules()))).stream()
+ .map(each -> (DatabaseDiscoveryRuleConfiguration) each).findFirst();
+ Preconditions.checkState(toBeAlteredRuleConfig.isPresent());
+ currentRuleConfig.getDataSources().addAll(toBeAlteredRuleConfig.get().getDataSources());
+ currentRuleConfig.getDiscoveryTypes().putAll(toBeAlteredRuleConfig.get().getDiscoveryTypes());
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
index 6900bb3..81b7e6d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
@@ -53,7 +53,7 @@ public final class AlterEncryptRuleBackendHandler extends RDLBackendHandler<Alte
@Override
public void check(final String schemaName, final AlterEncryptRuleStatement sqlStatement) {
- Optional<EncryptRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ Optional<EncryptRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new EncryptRulesNotExistedException(schemaName, getAlteredRuleNames(sqlStatement));
}
@@ -90,7 +90,7 @@ public final class AlterEncryptRuleBackendHandler extends RDLBackendHandler<Alte
@Override
public void doExecute(final String schemaName, final AlterEncryptRuleStatement sqlStatement) {
- EncryptRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ EncryptRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
EncryptRuleConfiguration alteredEncryptRuleConfiguration = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(EncryptRuleStatementConverter.convert(sqlStatement.getRules()))).stream()
.map(each -> (EncryptRuleConfiguration) each).findFirst().get();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
index 080f3eb..16e96a9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
@@ -56,7 +56,7 @@ public final class AlterReadwriteSplittingRuleBackendHandler extends RDLBackendH
@Override
public void check(final String schemaName, final AlterReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new ReadwriteSplittingRulesNotExistedException(schemaName, getAlteredRuleNames(sqlStatement));
}
@@ -85,7 +85,7 @@ public final class AlterReadwriteSplittingRuleBackendHandler extends RDLBackendH
resources.add(each.getWriteDataSource());
resources.addAll(each.getReadDataSources());
});
- Collection<String> notExistResources = getInvalidResources(schemaName, resources);
+ Collection<String> notExistResources = getNotExistedResources(schemaName, resources);
if (!notExistResources.isEmpty()) {
throw new ResourceNotExistedException(schemaName, notExistResources);
}
@@ -105,7 +105,7 @@ public final class AlterReadwriteSplittingRuleBackendHandler extends RDLBackendH
ReadwriteSplittingRuleConfiguration alterReadwriteSplittingRuleConfig = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(ReadwriteSplittingRuleStatementConverter.convert(sqlStatement))).stream()
.map(each -> (ReadwriteSplittingRuleConfiguration) each).findFirst().get();
- ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfig = getRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfig = getCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
drop(sqlStatement, readwriteSplittingRuleConfig);
readwriteSplittingRuleConfig.getDataSources().addAll(alterReadwriteSplittingRuleConfig.getDataSources());
readwriteSplittingRuleConfig.getLoadBalancers().putAll(alterReadwriteSplittingRuleConfig.getLoadBalancers());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
index 69ba48f..f63c457 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
@@ -44,7 +44,7 @@ public final class AlterShardingBindingTableRulesBackendHandler extends RDLBacke
@Override
public void check(final String schemaName, final AlterShardingBindingTableRulesStatement sqlStatement) {
- if (!findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).isPresent()) {
+ if (!findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).isPresent()) {
throw new ShardingBindingTableRulesNotExistsException(schemaName);
}
Collection<String> invalidBindingTables = new HashSet<>();
@@ -68,13 +68,13 @@ public final class AlterShardingBindingTableRulesBackendHandler extends RDLBacke
@Override
public void doExecute(final String schemaName, final AlterShardingBindingTableRulesStatement sqlStatement) {
- Collection<String> bindingTableGroups = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups();
+ Collection<String> bindingTableGroups = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups();
bindingTableGroups.clear();
bindingTableGroups.addAll(ShardingRuleStatementConverter.convert(sqlStatement).getBindingTables());
}
private Collection<String> getLogicTables(final String schemaName) {
- ShardingRuleConfiguration shardingRuleConfig = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ ShardingRuleConfiguration shardingRuleConfig = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
Collection<String> result = new HashSet<>();
result.addAll(shardingRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
result.addAll(shardingRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
index d4f48be..5b295b5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
@@ -36,7 +36,7 @@ public final class AlterShardingBroadcastTableRulesBackendHandler extends RDLBac
@Override
public void check(final String schemaName, final AlterShardingBroadcastTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> shardingRuleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> shardingRuleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfig.isPresent()) {
throw new ShardingBroadcastTableRulesNotExistsException(schemaName);
}
@@ -44,7 +44,7 @@ public final class AlterShardingBroadcastTableRulesBackendHandler extends RDLBac
@Override
public void doExecute(final String schemaName, final AlterShardingBroadcastTableRulesStatement sqlStatement) {
- Collection<String> broadcastTables = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBroadcastTables();
+ Collection<String> broadcastTables = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBroadcastTables();
broadcastTables.clear();
broadcastTables.addAll(sqlStatement.getTables());
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
index db8c354..08a700f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
@@ -61,7 +61,7 @@ public final class AlterShardingTableRuleBackendHandler extends RDLBackendHandle
@Override
public void check(final String schemaName, final AlterShardingTableRuleStatement sqlStatement) {
- Collection<String> notExistResources = getInvalidResources(schemaName, getResources(sqlStatement));
+ Collection<String> notExistResources = getNotExistedResources(schemaName, getResources(sqlStatement));
if (!notExistResources.isEmpty()) {
throw new ResourceNotExistedException(schemaName, notExistResources);
}
@@ -70,10 +70,10 @@ public final class AlterShardingTableRuleBackendHandler extends RDLBackendHandle
throw new DuplicateTablesException(duplicateTables);
}
Collection<String> alteredTables = getAlteredTables(sqlStatement);
- if (!findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).isPresent()) {
+ if (!findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).isPresent()) {
throw new ShardingTableRuleNotExistedException(schemaName, alteredTables);
}
- Collection<String> existTables = getShardingTables(findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get());
+ Collection<String> existTables = getShardingTables(findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get());
Collection<String> notExistTables = alteredTables.stream().filter(each -> !existTables.contains(each)).collect(Collectors.toList());
if (!notExistTables.isEmpty()) {
throw new ShardingTableRuleNotExistedException(schemaName, notExistTables);
@@ -94,7 +94,7 @@ public final class AlterShardingTableRuleBackendHandler extends RDLBackendHandle
public void doExecute(final String schemaName, final AlterShardingTableRuleStatement sqlStatement) {
ShardingRuleConfiguration alteredShardingRuleConfig = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(ShardingRuleStatementConverter.convert(sqlStatement))).stream().map(each -> (ShardingRuleConfiguration) each).findFirst().get();
- ShardingRuleConfiguration shardingRuleConfig = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ ShardingRuleConfiguration shardingRuleConfig = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
drop(shardingRuleConfig, sqlStatement);
shardingRuleConfig.getAutoTables().addAll(alteredShardingRuleConfig.getAutoTables());
shardingRuleConfig.getShardingAlgorithms().putAll(alteredShardingRuleConfig.getShardingAlgorithms());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
index 32147c9..5dabd26 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
@@ -63,7 +63,7 @@ public final class CreateDatabaseDiscoveryRuleBackendHandler extends RDLBackendH
}
private void checkDuplicateRuleNames(final String schemaName, final CreateDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (ruleConfig.isPresent()) {
Collection<String> existRuleNames = getRuleNames(ruleConfig.get());
Collection<String> duplicateRuleNames = sqlStatement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getName).filter(existRuleNames::contains).collect(Collectors.toSet());
@@ -86,7 +86,7 @@ public final class CreateDatabaseDiscoveryRuleBackendHandler extends RDLBackendH
private void checkResources(final String schemaName, final CreateDatabaseDiscoveryRuleStatement sqlStatement) {
Collection<String> resources = new LinkedHashSet<>();
sqlStatement.getRules().forEach(each -> resources.addAll(each.getDataSources()));
- Collection<String> notExistResources = getInvalidResources(schemaName, resources);
+ Collection<String> notExistResources = getNotExistedResources(schemaName, resources);
if (!notExistResources.isEmpty()) {
throw new ResourceNotExistedException(schemaName, notExistResources);
}
@@ -106,7 +106,7 @@ public final class CreateDatabaseDiscoveryRuleBackendHandler extends RDLBackendH
DatabaseDiscoveryRuleConfiguration createdDatabaseDiscoveryRuleConfiguration = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(yamlDatabaseDiscoveryRuleConfig))
.stream().filter(each -> each instanceof DatabaseDiscoveryRuleConfiguration).findAny().map(each -> (DatabaseDiscoveryRuleConfiguration) each).get();
- Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (ruleConfig.isPresent()) {
DatabaseDiscoveryRuleConfiguration existDatabaseDiscoveryRuleConfig = ruleConfig.get();
existDatabaseDiscoveryRuleConfig.getDataSources().addAll(createdDatabaseDiscoveryRuleConfiguration.getDataSources());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
index b91f735..f18dec0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
@@ -61,7 +61,7 @@ public final class CreateEncryptRuleBackendHandler extends RDLBackendHandler<Cre
}
private void checkDuplicateRuleNames(final String schemaName, final CreateEncryptRuleStatement sqlStatement) {
- Optional<EncryptRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ Optional<EncryptRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (ruleConfig.isPresent()) {
Collection<String> existRuleNames = getRuleNames(ruleConfig.get());
Collection<String> duplicateRuleNames = sqlStatement.getRules().stream().map(EncryptRuleSegment::getTableName).filter(existRuleNames::contains).collect(Collectors.toList());
@@ -87,7 +87,7 @@ public final class CreateEncryptRuleBackendHandler extends RDLBackendHandler<Cre
EncryptRuleConfiguration createdEncryptRuleConfiguration = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(yamlEncryptRuleConfiguration))
.stream().filter(each -> each instanceof EncryptRuleConfiguration).findAny().map(each -> (EncryptRuleConfiguration) each).get();
- Optional<EncryptRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ Optional<EncryptRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (ruleConfig.isPresent()) {
EncryptRuleConfiguration existEncryptRuleConfig = ruleConfig.get();
existEncryptRuleConfig.getTables().addAll(createdEncryptRuleConfiguration.getTables());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
index 82bb5e6..c490f38 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
@@ -63,7 +63,7 @@ public final class CreateReadwriteSplittingRuleBackendHandler extends RDLBackend
}
private void checkDuplicateRuleNames(final String schemaName, final CreateReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (ruleConfig.isPresent()) {
Collection<String> existRuleNames = getRuleNames(ruleConfig.get());
Collection<String> duplicateRuleNames = sqlStatement.getRules().stream().map(ReadwriteSplittingRuleSegment::getName).filter(existRuleNames::contains).collect(Collectors.toList());
@@ -74,7 +74,7 @@ public final class CreateReadwriteSplittingRuleBackendHandler extends RDLBackend
}
private void checkResources(final String schemaName, final CreateReadwriteSplittingRuleStatement sqlStatement) {
- Collection<String> notExistResources = getInvalidResources(schemaName, getResources(sqlStatement));
+ Collection<String> notExistResources = getNotExistedResources(schemaName, getResources(sqlStatement));
if (!notExistResources.isEmpty()) {
throw new ResourceNotExistedException(schemaName, notExistResources);
}
@@ -108,7 +108,7 @@ public final class CreateReadwriteSplittingRuleBackendHandler extends RDLBackend
ReadwriteSplittingRuleConfiguration createdReadwriteSplittingRuleConfig = new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(yamlReadwriteSplittingRuleConfig))
.stream().filter(each -> each instanceof ReadwriteSplittingRuleConfiguration).findAny().map(each -> (ReadwriteSplittingRuleConfiguration) each).get();
- Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (ruleConfig.isPresent()) {
ReadwriteSplittingRuleConfiguration existReadwriteSplittingRuleConfig = ruleConfig.get();
existReadwriteSplittingRuleConfig.getDataSources().addAll(createdReadwriteSplittingRuleConfig.getDataSources());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
index ca7ec1c..2bdba7d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
@@ -46,7 +46,7 @@ public final class CreateShardingBindingTableRulesBackendHandler extends RDLBack
@Override
public void check(final String schemaName, final CreateShardingBindingTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new ShardingBindingTableRulesNotExistsException(schemaName);
}
@@ -71,7 +71,7 @@ public final class CreateShardingBindingTableRulesBackendHandler extends RDLBack
}
private Collection<String> getLogicTables(final String schemaName) {
- ShardingRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ ShardingRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
Collection<String> result = new HashSet<>();
result.addAll(ruleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
result.addAll(ruleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
@@ -97,6 +97,6 @@ public final class CreateShardingBindingTableRulesBackendHandler extends RDLBack
@Override
public void doExecute(final String schemaName, final CreateShardingBindingTableRulesStatement sqlStatement) {
YamlShardingRuleConfiguration yamlShardingRuleConfiguration = ShardingRuleStatementConverter.convert(sqlStatement);
- getRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups().addAll(yamlShardingRuleConfiguration.getBindingTables());
+ getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups().addAll(yamlShardingRuleConfiguration.getBindingTables());
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
index 88b37e7..31d27e6 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
@@ -40,7 +40,7 @@ public final class CreateShardingBroadcastTableRulesBackendHandler extends RDLBa
@Override
public void doExecute(final String schemaName, final CreateShardingBroadcastTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (ruleConfig.isPresent()) {
if (!ruleConfig.get().getBroadcastTables().isEmpty()) {
throw new ShardingBroadcastTableRulesExistsException(schemaName);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
index 798fba5..0beb441 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
@@ -64,7 +64,7 @@ public final class CreateShardingTableRuleBackendHandler extends RDLBackendHandl
@Override
public void check(final String schemaName, final CreateShardingTableRuleStatement sqlStatement) {
- Collection<String> notExistResources = getInvalidResources(schemaName, getResources(sqlStatement));
+ Collection<String> notExistResources = getNotExistedResources(schemaName, getResources(sqlStatement));
if (!notExistResources.isEmpty()) {
throw new ResourceNotExistedException(schemaName, notExistResources);
}
@@ -93,7 +93,7 @@ public final class CreateShardingTableRuleBackendHandler extends RDLBackendHandl
public void doExecute(final String schemaName, final CreateShardingTableRuleStatement sqlStatement) {
ShardingRuleConfiguration shardingRuleConfig = (ShardingRuleConfiguration) new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(ShardingRuleStatementConverter.convert(sqlStatement))).iterator().next();
- Optional<ShardingRuleConfiguration> existShardingRuleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> existShardingRuleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (existShardingRuleConfig.isPresent()) {
existShardingRuleConfig.get().getAutoTables().addAll(shardingRuleConfig.getAutoTables());
existShardingRuleConfig.get().getShardingAlgorithms().putAll(shardingRuleConfig.getShardingAlgorithms());
@@ -105,7 +105,7 @@ public final class CreateShardingTableRuleBackendHandler extends RDLBackendHandl
private Collection<String> getAllTables(final String schemaName) {
Collection<String> result = Sets.newHashSet(ProxyContext.getInstance().getMetaData(schemaName).getSchema().getAllTableNames());
- findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).ifPresent(optional -> result.addAll(getShardingTables(optional)));
+ findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).ifPresent(optional -> result.addAll(getShardingTables(optional)));
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
index 98e195e..ceda8c3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
@@ -39,7 +39,7 @@ public final class DropDatabaseDiscoveryRuleBackendHandler extends RDLBackendHan
@Override
public void check(final String schemaName, final DropDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new DatabaseDiscoveryRulesNotExistedException(schemaName, sqlStatement.getRuleNames());
}
@@ -56,7 +56,7 @@ public final class DropDatabaseDiscoveryRuleBackendHandler extends RDLBackendHan
@Override
public void doExecute(final String schemaName, final DropDatabaseDiscoveryRuleStatement sqlStatement) {
- DatabaseDiscoveryRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
+ DatabaseDiscoveryRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
sqlStatement.getRuleNames().forEach(each -> {
DatabaseDiscoveryDataSourceRuleConfiguration databaseDiscoveryDataSourceRuleConfig = ruleConfig.getDataSources()
.stream().filter(dataSource -> dataSource.getName().equals(each)).findAny().get();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
index a362a4c4..6854ac2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
@@ -39,7 +39,7 @@ public final class DropEncryptRuleBackendHandler extends RDLBackendHandler<DropE
@Override
public void check(final String schemaName, final DropEncryptRuleStatement sqlStatement) {
- Optional<EncryptRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ Optional<EncryptRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new EncryptRulesNotExistedException(schemaName, sqlStatement.getTables());
}
@@ -56,7 +56,7 @@ public final class DropEncryptRuleBackendHandler extends RDLBackendHandler<DropE
@Override
public void doExecute(final String schemaName, final DropEncryptRuleStatement sqlStatement) {
- EncryptRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
+ EncryptRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
sqlStatement.getTables().forEach(each -> {
EncryptTableRuleConfiguration encryptTableRuleConfiguration = ruleConfig.getTables()
.stream().filter(tableRule -> tableRule.getName().equals(each)).findAny().get();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
index cf0e5ee..8ab3d92 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
@@ -39,7 +39,7 @@ public final class DropReadwriteSplittingRuleBackendHandler extends RDLBackendHa
@Override
public void check(final String schemaName, final DropReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ Optional<ReadwriteSplittingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new ReadwriteSplittingRulesNotExistedException(schemaName, sqlStatement.getRuleNames());
}
@@ -52,7 +52,7 @@ public final class DropReadwriteSplittingRuleBackendHandler extends RDLBackendHa
@Override
public void doExecute(final String schemaName, final DropReadwriteSplittingRuleStatement sqlStatement) {
- ReadwriteSplittingRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
+ ReadwriteSplittingRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
sqlStatement.getRuleNames().forEach(each -> {
ReadwriteSplittingDataSourceRuleConfiguration readwriteSplittingDataSourceRuleConfig
= ruleConfig.getDataSources().stream().filter(dataSource -> each.equals(dataSource.getName())).findAny().get();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
index be4cc74..ecb4f19 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
@@ -35,7 +35,7 @@ public final class DropShardingBindingTableRulesBackendHandler extends RDLBacken
@Override
public void check(final String schemaName, final DropShardingBindingTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!ruleConfig.isPresent() || ruleConfig.get().getBindingTableGroups().isEmpty()) {
throw new ShardingBindingTableRulesNotExistsException(schemaName);
}
@@ -43,6 +43,6 @@ public final class DropShardingBindingTableRulesBackendHandler extends RDLBacken
@Override
public void doExecute(final String schemaName, final DropShardingBindingTableRulesStatement sqlStatement) {
- getRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups().clear();
+ getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBindingTableGroups().clear();
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
index 004a39c..93a6e2d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
@@ -35,7 +35,7 @@ public final class DropShardingBroadcastTableRulesBackendHandler extends RDLBack
@Override
public void check(final String schemaName, final DropShardingBroadcastTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!ruleConfig.isPresent() || ruleConfig.get().getBroadcastTables().isEmpty()) {
throw new ShardingBroadcastTableRulesNotExistsException(schemaName);
}
@@ -43,6 +43,6 @@ public final class DropShardingBroadcastTableRulesBackendHandler extends RDLBack
@Override
public void doExecute(final String schemaName, final DropShardingBroadcastTableRulesStatement sqlStatement) {
- getRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBroadcastTables().clear();
+ getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class).getBroadcastTables().clear();
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
index 9995069..f230fef 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
@@ -44,7 +44,7 @@ public final class DropShardingTableRuleBackendHandler extends RDLBackendHandler
@Override
public void check(final String schemaName, final DropShardingTableRuleStatement sqlStatement) {
Collection<String> tableNames = sqlStatement.getTableNames().stream().map(each -> each.getIdentifier().getValue()).collect(Collectors.toList());
- Optional<ShardingRuleConfiguration> ruleConfig = findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ Optional<ShardingRuleConfiguration> ruleConfig = findCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new ShardingTableRuleNotExistedException(schemaName, tableNames);
}
@@ -62,7 +62,7 @@ public final class DropShardingTableRuleBackendHandler extends RDLBackendHandler
@Override
public void doExecute(final String schemaName, final DropShardingTableRuleStatement sqlStatement) {
- ShardingRuleConfiguration ruleConfig = getRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ ShardingRuleConfiguration ruleConfig = getCurrentRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
for (String each : getDroppedTables(sqlStatement)) {
dropShardingTable(ruleConfig, each);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
index 4869ec0..7ed1315 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
@@ -21,6 +21,7 @@ import com.google.common.base.Preconditions;
import org.apache.shardingsphere.governance.core.registry.config.event.rule.RuleConfigurationsAlteredSQLNotificationEvent;
import org.apache.shardingsphere.infra.config.scope.SchemaRuleConfiguration;
import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
+import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
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;
@@ -29,7 +30,6 @@ import org.apache.shardingsphere.proxy.backend.text.SchemaRequiredBackendHandler
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import java.util.Collection;
-import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -62,23 +62,23 @@ public abstract class RDLBackendHandler<T extends SQLStatement> extends SchemaRe
}
@SuppressWarnings("unchecked")
- protected final <R extends SchemaRuleConfiguration> Optional<R> findRuleConfiguration(final String schemaName, final Class<R> configRuleClass) {
+ protected final <R extends SchemaRuleConfiguration> Optional<R> findCurrentRuleConfiguration(final String schemaName, final Class<R> configRuleClass) {
return ProxyContext.getInstance().getMetaData(schemaName)
.getRuleMetaData().getConfigurations().stream().filter(each -> configRuleClass.isAssignableFrom(each.getClass())).map(each -> (R) each).findFirst();
}
- protected final <R extends SchemaRuleConfiguration> R getRuleConfiguration(final String schemaName, final Class<R> configRuleClass) {
- Optional<R> result = findRuleConfiguration(schemaName, configRuleClass);
+ protected final <R extends SchemaRuleConfiguration> R getCurrentRuleConfiguration(final String schemaName, final Class<R> configRuleClass) {
+ Optional<R> result = findCurrentRuleConfiguration(schemaName, configRuleClass);
Preconditions.checkState(result.isPresent(), "Can not find rule type: `%s`.", configRuleClass);
return result.get();
}
- protected final Collection<String> getInvalidResources(final String schemaName, final Collection<String> resources) {
- return resources.stream().filter(each -> !isValidResource(schemaName, each)).collect(Collectors.toSet());
+ protected final Collection<String> getNotExistedResources(final String schemaName, final Collection<String> resourceNames) {
+ return resourceNames.stream().filter(each -> !isExistedResource(schemaName, each)).collect(Collectors.toSet());
}
- private boolean isValidResource(final String schemaName, final String resourceName) {
- return Objects.nonNull(ProxyContext.getInstance().getMetaData(schemaName).getResource())
- && ProxyContext.getInstance().getMetaData(schemaName).getResource().getDataSources().containsKey(resourceName);
+ private boolean isExistedResource(final String schemaName, final String resourceName) {
+ ShardingSphereResource resource = ProxyContext.getInstance().getMetaData(schemaName).getResource();
+ return null != resource && resource.getDataSources().containsKey(resourceName);
}
}