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 3b2176a Refactor RDLBackendHandler.findRuleConfiguration() (#10948)
3b2176a is described below
commit 3b2176af8e9bf7c031e03ecaa89a49a42fd5fcc0
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Jun 23 19:48:39 2021 +0800
Refactor RDLBackendHandler.findRuleConfiguration() (#10948)
---
.../AlterDatabaseDiscoveryRuleBackendHandler.java | 25 +++++++---------
.../rdl/impl/AlterEncryptRuleBackendHandler.java | 10 +++----
.../AlterReadwriteSplittingRuleBackendHandler.java | 10 +++----
...terShardingBindingTableRulesBackendHandler.java | 12 ++++----
...rShardingBroadcastTableRulesBackendHandler.java | 6 ++--
.../impl/AlterShardingTableRuleBackendHandler.java | 35 ++++++++++------------
.../CreateDatabaseDiscoveryRuleBackendHandler.java | 10 +++----
.../rdl/impl/CreateEncryptRuleBackendHandler.java | 10 +++----
...CreateReadwriteSplittingRuleBackendHandler.java | 21 +++++++------
...ateShardingBindingTableRulesBackendHandler.java | 10 +++----
...eShardingBroadcastTableRulesBackendHandler.java | 2 +-
.../CreateShardingTableRuleBackendHandler.java | 18 +++++------
.../DropDatabaseDiscoveryRuleBackendHandler.java | 18 +++++------
.../rdl/impl/DropEncryptRuleBackendHandler.java | 14 ++++-----
.../DropReadwriteSplittingRuleBackendHandler.java | 16 +++++-----
...ropShardingBindingTableRulesBackendHandler.java | 4 +--
...pShardingBroadcastTableRulesBackendHandler.java | 4 +--
.../impl/DropShardingTableRuleBackendHandler.java | 28 ++++++++---------
.../text/distsql/rdl/impl/RDLBackendHandler.java | 27 ++++-------------
19 files changed, 127 insertions(+), 153 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 0ca0f2c..47fc35a 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
@@ -55,7 +55,7 @@ public final class AlterDatabaseDiscoveryRuleBackendHandler
extends RDLBackendHa
@Override
public void before(final String schemaName, final
AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
getDatabaseDiscoveryRuleConfiguration(schemaName);
+ Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
getAlteredRuleNames(sqlStatement));
}
@@ -64,22 +64,21 @@ public final class AlterDatabaseDiscoveryRuleBackendHandler
extends RDLBackendHa
@Override
public void doExecute(final String schemaName, final
AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration
= getDatabaseDiscoveryRuleConfiguration(schemaName).get();
+ DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig =
findRuleConfiguration(schemaName,
DatabaseDiscoveryRuleConfiguration.class).get();
DatabaseDiscoveryRuleConfiguration
alteredDatabaseDiscoveryRuleConfiguration = new
YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(DatabaseDiscoveryRuleStatementConverter.convert(sqlStatement.getRules()))).stream()
.map(each -> (DatabaseDiscoveryRuleConfiguration)
each).findFirst().get();
- drop(sqlStatement, databaseDiscoveryRuleConfiguration);
-
databaseDiscoveryRuleConfiguration.getDataSources().addAll(alteredDatabaseDiscoveryRuleConfiguration.getDataSources());
-
databaseDiscoveryRuleConfiguration.getDiscoveryTypes().putAll(alteredDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes());
+ drop(sqlStatement, databaseDiscoveryRuleConfig);
+
databaseDiscoveryRuleConfig.getDataSources().addAll(alteredDatabaseDiscoveryRuleConfiguration.getDataSources());
+
databaseDiscoveryRuleConfig.getDiscoveryTypes().putAll(alteredDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes());
}
- private void drop(final AlterDatabaseDiscoveryRuleStatement sqlStatement,
- final DatabaseDiscoveryRuleConfiguration
databaseDiscoveryRuleConfiguration) {
+ private void drop(final AlterDatabaseDiscoveryRuleStatement sqlStatement,
final DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig) {
getAlteredRuleNames(sqlStatement).forEach(each -> {
- DatabaseDiscoveryDataSourceRuleConfiguration
databaseDiscoveryDataSourceRuleConfiguration =
databaseDiscoveryRuleConfiguration.getDataSources()
+ DatabaseDiscoveryDataSourceRuleConfiguration
databaseDiscoveryDataSourceRuleConfiguration =
databaseDiscoveryRuleConfig.getDataSources()
.stream().filter(dataSource ->
dataSource.getName().equals(each)).findAny().get();
-
databaseDiscoveryRuleConfiguration.getDataSources().remove(databaseDiscoveryDataSourceRuleConfiguration);
-
databaseDiscoveryRuleConfiguration.getDiscoveryTypes().remove(databaseDiscoveryDataSourceRuleConfiguration.getDiscoveryTypeName());
+
databaseDiscoveryRuleConfig.getDataSources().remove(databaseDiscoveryDataSourceRuleConfiguration);
+
databaseDiscoveryRuleConfig.getDiscoveryTypes().remove(databaseDiscoveryDataSourceRuleConfiguration.getDiscoveryTypeName());
});
}
@@ -111,15 +110,13 @@ public final class
AlterDatabaseDiscoveryRuleBackendHandler extends RDLBackendHa
private void checkDiscoveryType(final AlterDatabaseDiscoveryRuleStatement
statement) {
Collection<String> invalidDiscoveryTypes =
statement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getDiscoveryTypeName).distinct()
- .filter(each ->
!TypedSPIRegistry.findRegisteredService(DatabaseDiscoveryType.class, each, new
Properties()).isPresent())
- .collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.findRegisteredService(DatabaseDiscoveryType.class, each, new
Properties()).isPresent()).collect(Collectors.toList());
if (!invalidDiscoveryTypes.isEmpty()) {
throw new
InvalidDatabaseDiscoveryTypesException(invalidDiscoveryTypes);
}
}
private Collection<String> getAlteredRuleNames(final
AlterDatabaseDiscoveryRuleStatement sqlStatement) {
- return sqlStatement.getRules()
-
.stream().map(DatabaseDiscoveryRuleSegment::getName).collect(Collectors.toList());
+ return
sqlStatement.getRules().stream().map(DatabaseDiscoveryRuleSegment::getName).collect(Collectors.toList());
}
}
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 2d49d3a..31ba668 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 before(final String schemaName, final
AlterEncryptRuleStatement sqlStatement) {
- Optional<EncryptRuleConfiguration> ruleConfig =
getEncryptRuleConfiguration(schemaName);
+ Optional<EncryptRuleConfiguration> ruleConfig =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new EncryptRulesNotExistedException(schemaName,
getAlteredRuleNames(sqlStatement));
}
@@ -62,13 +62,13 @@ public final class AlterEncryptRuleBackendHandler extends
RDLBackendHandler<Alte
@Override
public void doExecute(final String schemaName, final
AlterEncryptRuleStatement sqlStatement) {
- EncryptRuleConfiguration encryptRuleConfiguration =
getEncryptRuleConfiguration(schemaName).get();
+ EncryptRuleConfiguration encryptRuleConfig =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class).get();
EncryptRuleConfiguration alteredEncryptRuleConfiguration = new
YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(EncryptRuleStatementConverter.convert(sqlStatement.getRules()))).stream()
.map(each -> (EncryptRuleConfiguration)
each).findFirst().get();
- drop(sqlStatement, encryptRuleConfiguration);
-
encryptRuleConfiguration.getTables().addAll(alteredEncryptRuleConfiguration.getTables());
-
encryptRuleConfiguration.getEncryptors().putAll(alteredEncryptRuleConfiguration.getEncryptors());
+ drop(sqlStatement, encryptRuleConfig);
+
encryptRuleConfig.getTables().addAll(alteredEncryptRuleConfiguration.getTables());
+
encryptRuleConfig.getEncryptors().putAll(alteredEncryptRuleConfiguration.getEncryptors());
}
private void drop(final AlterEncryptRuleStatement sqlStatement, final
EncryptRuleConfiguration encryptRuleConfiguration) {
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 842a006..c174578 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 before(final String schemaName, final
AlterReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> ruleConfig =
getReadwriteSplittingRuleConfiguration(schemaName);
+ Optional<ReadwriteSplittingRuleConfiguration> ruleConfig =
findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new ReadwriteSplittingRulesNotExistedException(schemaName,
getAlteredRuleNames(sqlStatement));
}
@@ -68,10 +68,10 @@ public final class
AlterReadwriteSplittingRuleBackendHandler extends RDLBackendH
ReadwriteSplittingRuleConfiguration alterReadwriteSplittingRuleConfig
= new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(ReadwriteSplittingRuleStatementConverter.convert(sqlStatement))).stream()
.map(each -> (ReadwriteSplittingRuleConfiguration)
each).findFirst().get();
- ReadwriteSplittingRuleConfiguration
readwriteSplittingRuleConfiguration =
getReadwriteSplittingRuleConfiguration(schemaName).get();
- drop(sqlStatement, readwriteSplittingRuleConfiguration);
-
readwriteSplittingRuleConfiguration.getDataSources().addAll(alterReadwriteSplittingRuleConfig.getDataSources());
-
readwriteSplittingRuleConfiguration.getLoadBalancers().putAll(alterReadwriteSplittingRuleConfig.getLoadBalancers());
+ ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfig =
findRuleConfiguration(schemaName,
ReadwriteSplittingRuleConfiguration.class).get();
+ drop(sqlStatement, readwriteSplittingRuleConfig);
+
readwriteSplittingRuleConfig.getDataSources().addAll(alterReadwriteSplittingRuleConfig.getDataSources());
+
readwriteSplittingRuleConfig.getLoadBalancers().putAll(alterReadwriteSplittingRuleConfig.getLoadBalancers());
}
private void drop(final AlterReadwriteSplittingRuleStatement sqlStatement,
final ReadwriteSplittingRuleConfiguration ruleConfig) {
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 ee3fb9c..44f93a7 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 before(final String schemaName, final
AlterShardingBindingTableRulesStatement sqlStatement) {
- if (!getShardingRuleConfiguration(schemaName).isPresent()) {
+ if (!findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).isPresent()) {
throw new ShardingBindingTableRulesNotExistsException(schemaName);
}
Collection<String> invalidBindingTables = new HashSet<>();
@@ -68,15 +68,15 @@ public final class
AlterShardingBindingTableRulesBackendHandler extends RDLBacke
@Override
public void doExecute(final String schemaName, final
AlterShardingBindingTableRulesStatement sqlStatement) {
-
getShardingRuleConfiguration(schemaName).get().getBindingTableGroups().clear();
-
getShardingRuleConfiguration(schemaName).get().getBindingTableGroups().addAll(ShardingRuleStatementConverter.convert(sqlStatement).getBindingTables());
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().getBindingTableGroups().clear();
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().getBindingTableGroups().addAll(ShardingRuleStatementConverter.convert(sqlStatement).getBindingTables());
}
private Collection<String> getLogicTables(final String schemaName) {
- ShardingRuleConfiguration shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName).get();
+ ShardingRuleConfiguration shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get();
Collection<String> result = new HashSet<>();
-
result.addAll(shardingRuleConfiguration.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
-
result.addAll(shardingRuleConfiguration.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
+
result.addAll(shardingRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
+
result.addAll(shardingRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
return result;
}
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 dce3b9b..07d032e 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
@@ -35,7 +35,7 @@ public final class
AlterShardingBroadcastTableRulesBackendHandler extends RDLBac
@Override
public void before(final String schemaName, final
AlterShardingBroadcastTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> shardingRuleConfig =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfig.isPresent()) {
throw new
ShardingBroadcastTableRulesNotExistsException(schemaName);
}
@@ -43,7 +43,7 @@ public final class
AlterShardingBroadcastTableRulesBackendHandler extends RDLBac
@Override
public void doExecute(final String schemaName, final
AlterShardingBroadcastTableRulesStatement sqlStatement) {
-
getShardingRuleConfiguration(schemaName).get().getBroadcastTables().clear();
-
getShardingRuleConfiguration(schemaName).get().getBroadcastTables().addAll(sqlStatement.getTables());
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().getBroadcastTables().clear();
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().getBroadcastTables().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 8ea95be..a951dac 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
@@ -70,23 +70,21 @@ public final class AlterShardingTableRuleBackendHandler
extends RDLBackendHandle
throw new DuplicateTablesException(duplicateTables);
}
Collection<String> alteredTables = getAlteredTables(sqlStatement);
- if (!getShardingRuleConfiguration(schemaName).isPresent()) {
+ if (!findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).isPresent()) {
throw new ShardingTableRuleNotExistedException(schemaName,
alteredTables);
}
- Collection<String> existTables =
getShardingTables(getShardingRuleConfiguration(schemaName).get());
+ Collection<String> existTables =
getShardingTables(findRuleConfiguration(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);
}
Collection<String> invalidTableAlgorithms =
sqlStatement.getRules().stream().map(each ->
each.getTableStrategy().getName()).distinct()
- .filter(each ->
!TypedSPIRegistry.findRegisteredService(ShardingAlgorithm.class, each, new
Properties()).isPresent())
- .collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.findRegisteredService(ShardingAlgorithm.class, each, new
Properties()).isPresent()).collect(Collectors.toList());
if (!invalidTableAlgorithms.isEmpty()) {
throw new
InvalidShardingAlgorithmsException(invalidTableAlgorithms);
}
Collection<String> invalidKeyGenerators =
getKeyGenerators(sqlStatement).stream()
- .filter(each ->
!TypedSPIRegistry.findRegisteredService(KeyGenerateAlgorithm.class, each, new
Properties()).isPresent())
- .collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.findRegisteredService(KeyGenerateAlgorithm.class, each, new
Properties()).isPresent()).collect(Collectors.toList());
if (!invalidKeyGenerators.isEmpty()) {
throw new InvalidKeyGeneratorsException(invalidKeyGenerators);
}
@@ -94,24 +92,23 @@ public final class AlterShardingTableRuleBackendHandler
extends RDLBackendHandle
@Override
public void doExecute(final String schemaName, final
AlterShardingTableRuleStatement sqlStatement) {
- ShardingRuleConfiguration alteredShardingRuleConfiguration = new
YamlRuleConfigurationSwapperEngine()
+ ShardingRuleConfiguration alteredShardingRuleConfig = new
YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singletonList(ShardingRuleStatementConverter.convert(sqlStatement))).stream()
.map(each -> (ShardingRuleConfiguration)
each).findFirst().get();
- ShardingRuleConfiguration shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName).get();
- drop(shardingRuleConfiguration, sqlStatement);
-
shardingRuleConfiguration.getAutoTables().addAll(alteredShardingRuleConfiguration.getAutoTables());
-
shardingRuleConfiguration.getShardingAlgorithms().putAll(alteredShardingRuleConfiguration.getShardingAlgorithms());
-
shardingRuleConfiguration.getKeyGenerators().putAll(alteredShardingRuleConfiguration.getKeyGenerators());
+ ShardingRuleConfiguration shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get();
+ drop(shardingRuleConfig, sqlStatement);
+
shardingRuleConfig.getAutoTables().addAll(alteredShardingRuleConfig.getAutoTables());
+
shardingRuleConfig.getShardingAlgorithms().putAll(alteredShardingRuleConfig.getShardingAlgorithms());
+
shardingRuleConfig.getKeyGenerators().putAll(alteredShardingRuleConfig.getKeyGenerators());
}
- private void drop(final ShardingRuleConfiguration
shardingRuleConfiguration, final AlterShardingTableRuleStatement sqlStatement) {
+ private void drop(final ShardingRuleConfiguration shardingRuleConfig,
final AlterShardingTableRuleStatement sqlStatement) {
getAlteredTables(sqlStatement).stream().forEach(each -> {
- ShardingAutoTableRuleConfiguration
shardingAutoTableRuleConfiguration = shardingRuleConfiguration.getAutoTables()
- .stream().filter(tableRule ->
each.equals(tableRule.getLogicTable())).findAny().get();
-
shardingRuleConfiguration.getAutoTables().remove(shardingAutoTableRuleConfiguration);
-
shardingRuleConfiguration.getShardingAlgorithms().remove(shardingAutoTableRuleConfiguration.getShardingStrategy().getShardingAlgorithmName());
- if
(Objects.nonNull(shardingAutoTableRuleConfiguration.getKeyGenerateStrategy())) {
-
shardingRuleConfiguration.getKeyGenerators().remove(shardingAutoTableRuleConfiguration.getKeyGenerateStrategy().getKeyGeneratorName());
+ ShardingAutoTableRuleConfiguration shardingAutoTableRuleConfig =
shardingRuleConfig.getAutoTables().stream().filter(tableRule ->
each.equals(tableRule.getLogicTable())).findAny().get();
+
shardingRuleConfig.getAutoTables().remove(shardingAutoTableRuleConfig);
+
shardingRuleConfig.getShardingAlgorithms().remove(shardingAutoTableRuleConfig.getShardingStrategy().getShardingAlgorithmName());
+ if
(Objects.nonNull(shardingAutoTableRuleConfig.getKeyGenerateStrategy())) {
+
shardingRuleConfig.getKeyGenerators().remove(shardingAutoTableRuleConfig.getKeyGenerateStrategy().getKeyGeneratorName());
}
});
}
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 b7a8834..91aec3b 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
@@ -68,17 +68,17 @@ 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();
- if (getDatabaseDiscoveryRuleConfiguration(schemaName).isPresent()) {
- DatabaseDiscoveryRuleConfiguration
existDatabaseDiscoveryRuleConfiguration =
getDatabaseDiscoveryRuleConfiguration(schemaName).get();
-
existDatabaseDiscoveryRuleConfiguration.getDataSources().addAll(createdDatabaseDiscoveryRuleConfiguration.getDataSources());
-
existDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes().putAll(createdDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes());
+ if (findRuleConfiguration(schemaName,
DatabaseDiscoveryRuleConfiguration.class).isPresent()) {
+ DatabaseDiscoveryRuleConfiguration
existDatabaseDiscoveryRuleConfig = findRuleConfiguration(schemaName,
DatabaseDiscoveryRuleConfiguration.class).get();
+
existDatabaseDiscoveryRuleConfig.getDataSources().addAll(createdDatabaseDiscoveryRuleConfiguration.getDataSources());
+
existDatabaseDiscoveryRuleConfig.getDiscoveryTypes().putAll(createdDatabaseDiscoveryRuleConfiguration.getDiscoveryTypes());
} else {
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(createdDatabaseDiscoveryRuleConfiguration);
}
}
private void checkDuplicateRuleNames(final String schemaName, final
CreateDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> optional =
getDatabaseDiscoveryRuleConfiguration(schemaName);
+ Optional<DatabaseDiscoveryRuleConfiguration> optional =
findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (optional.isPresent()) {
Collection<String> existRuleNames = getRuleNames(optional.get());
Collection<String> duplicateRuleNames =
sqlStatement.getRules().stream()
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 747f45b..1dd74a5 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
@@ -66,17 +66,17 @@ 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();
- if (getEncryptRuleConfiguration(schemaName).isPresent()) {
- EncryptRuleConfiguration existEncryptRuleConfiguration =
getEncryptRuleConfiguration(schemaName).get();
-
existEncryptRuleConfiguration.getTables().addAll(createdEncryptRuleConfiguration.getTables());
-
existEncryptRuleConfiguration.getEncryptors().putAll(createdEncryptRuleConfiguration.getEncryptors());
+ if (findRuleConfiguration(schemaName,
EncryptRuleConfiguration.class).isPresent()) {
+ EncryptRuleConfiguration existEncryptRuleConfig =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class).get();
+
existEncryptRuleConfig.getTables().addAll(createdEncryptRuleConfiguration.getTables());
+
existEncryptRuleConfig.getEncryptors().putAll(createdEncryptRuleConfiguration.getEncryptors());
} else {
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(createdEncryptRuleConfiguration);
}
}
private void checkDuplicateRuleNames(final String schemaName, final
CreateEncryptRuleStatement sqlStatement) {
- Optional<EncryptRuleConfiguration> optional =
getEncryptRuleConfiguration(schemaName);
+ Optional<EncryptRuleConfiguration> optional =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (optional.isPresent()) {
Collection<String> existRuleNames = getRuleNames(optional.get());
Collection<String> duplicateRuleNames =
sqlStatement.getRules().stream()
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 6c049a9..abdb411 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
@@ -64,25 +64,24 @@ public final class
CreateReadwriteSplittingRuleBackendHandler extends RDLBackend
@Override
public void doExecute(final String schemaName, final
CreateReadwriteSplittingRuleStatement sqlStatement) {
- YamlReadwriteSplittingRuleConfiguration
yamlReadwriteSplittingRuleConfiguration =
ReadwriteSplittingRuleStatementConverter.convert(sqlStatement);
- ReadwriteSplittingRuleConfiguration
createdReadwriteSplittingRuleConfiguration = new
YamlRuleConfigurationSwapperEngine()
-
.swapToRuleConfigurations(Collections.singleton(yamlReadwriteSplittingRuleConfiguration))
+ YamlReadwriteSplittingRuleConfiguration
yamlReadwriteSplittingRuleConfig =
ReadwriteSplittingRuleStatementConverter.convert(sqlStatement);
+ ReadwriteSplittingRuleConfiguration
createdReadwriteSplittingRuleConfig = new YamlRuleConfigurationSwapperEngine()
+
.swapToRuleConfigurations(Collections.singleton(yamlReadwriteSplittingRuleConfig))
.stream().filter(each -> each instanceof
ReadwriteSplittingRuleConfiguration).findAny().map(each ->
(ReadwriteSplittingRuleConfiguration) each).get();
- if (getReadwriteSplittingRuleConfiguration(schemaName).isPresent()) {
- ReadwriteSplittingRuleConfiguration
existReadwriteSplittingRuleConfiguration =
getReadwriteSplittingRuleConfiguration(schemaName).get();
-
existReadwriteSplittingRuleConfiguration.getDataSources().addAll(createdReadwriteSplittingRuleConfiguration.getDataSources());
-
existReadwriteSplittingRuleConfiguration.getLoadBalancers().putAll(createdReadwriteSplittingRuleConfiguration.getLoadBalancers());
+ if (findRuleConfiguration(schemaName,
ReadwriteSplittingRuleConfiguration.class).isPresent()) {
+ ReadwriteSplittingRuleConfiguration
existReadwriteSplittingRuleConfig = findRuleConfiguration(schemaName,
ReadwriteSplittingRuleConfiguration.class).get();
+
existReadwriteSplittingRuleConfig.getDataSources().addAll(createdReadwriteSplittingRuleConfig.getDataSources());
+
existReadwriteSplittingRuleConfig.getLoadBalancers().putAll(createdReadwriteSplittingRuleConfig.getLoadBalancers());
} else {
-
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(createdReadwriteSplittingRuleConfiguration);
+
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(createdReadwriteSplittingRuleConfig);
}
}
private void checkDuplicateRuleNames(final String schemaName, final
CreateReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> optional =
getReadwriteSplittingRuleConfiguration(schemaName);
+ Optional<ReadwriteSplittingRuleConfiguration> optional =
findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (optional.isPresent()) {
Collection<String> existRuleNames = getRuleNames(optional.get());
- Collection<String> duplicateRuleNames = sqlStatement.getRules()
-
.stream().map(ReadwriteSplittingRuleSegment::getName).filter(existRuleNames::contains).collect(Collectors.toList());
+ Collection<String> duplicateRuleNames =
sqlStatement.getRules().stream().map(ReadwriteSplittingRuleSegment::getName).filter(existRuleNames::contains).collect(Collectors.toList());
if (!duplicateRuleNames.isEmpty()) {
throw new DuplicateRuleNamesException(schemaName,
duplicateRuleNames);
}
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 d2706fb..dfa53ea 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 before(final String schemaName, final
CreateShardingBindingTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> shardingRuleConfig =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfig.isPresent()) {
throw new ShardingBindingTableRulesNotExistsException(schemaName);
}
@@ -89,14 +89,14 @@ public final class
CreateShardingBindingTableRulesBackendHandler extends RDLBack
@Override
public void doExecute(final String schemaName, final
CreateShardingBindingTableRulesStatement sqlStatement) {
YamlShardingRuleConfiguration yamlShardingRuleConfiguration =
ShardingRuleStatementConverter.convert(sqlStatement);
-
getShardingRuleConfiguration(schemaName).get().getBindingTableGroups().addAll(yamlShardingRuleConfiguration.getBindingTables());
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().getBindingTableGroups().addAll(yamlShardingRuleConfiguration.getBindingTables());
}
private Collection<String> getLogicTables(final String schemaName) {
- ShardingRuleConfiguration shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName).get();
+ ShardingRuleConfiguration shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get();
Collection<String> result = new HashSet<>();
-
result.addAll(shardingRuleConfiguration.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
-
result.addAll(shardingRuleConfiguration.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
+
result.addAll(shardingRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
+
result.addAll(shardingRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet()));
return result;
}
}
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 d8df68f..59f96c0 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> shardingRuleConfig =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfig.isPresent()) {
ShardingRuleConfiguration shardingRuleConfiguration = new
ShardingRuleConfiguration();
shardingRuleConfiguration.setBroadcastTables(sqlStatement.getTables());
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 f09ccbb..6755b38 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
@@ -91,22 +91,22 @@ public final class CreateShardingTableRuleBackendHandler
extends RDLBackendHandl
@Override
public void doExecute(final String schemaName, final
CreateShardingTableRuleStatement sqlStatement) {
- ShardingRuleConfiguration shardingRuleConfiguration =
(ShardingRuleConfiguration) new YamlRuleConfigurationSwapperEngine()
+ ShardingRuleConfiguration shardingRuleConfig =
(ShardingRuleConfiguration) new YamlRuleConfigurationSwapperEngine()
.swapToRuleConfigurations(Collections.singleton(ShardingRuleStatementConverter.convert(sqlStatement))).iterator().next();
- Optional<ShardingRuleConfiguration> existShardingRuleConfiguration =
getShardingRuleConfiguration(schemaName);
- if (existShardingRuleConfiguration.isPresent()) {
-
existShardingRuleConfiguration.get().getAutoTables().addAll(shardingRuleConfiguration.getAutoTables());
-
existShardingRuleConfiguration.get().getShardingAlgorithms().putAll(shardingRuleConfiguration.getShardingAlgorithms());
-
existShardingRuleConfiguration.get().getKeyGenerators().putAll(shardingRuleConfiguration.getKeyGenerators());
+ Optional<ShardingRuleConfiguration> existShardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
+ if (existShardingRuleConfig.isPresent()) {
+
existShardingRuleConfig.get().getAutoTables().addAll(shardingRuleConfig.getAutoTables());
+
existShardingRuleConfig.get().getShardingAlgorithms().putAll(shardingRuleConfig.getShardingAlgorithms());
+
existShardingRuleConfig.get().getKeyGenerators().putAll(shardingRuleConfig.getKeyGenerators());
} else {
-
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(shardingRuleConfiguration);
+
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().add(shardingRuleConfig);
}
}
private Collection<String> getAllTables(final String schemaName) {
Collection<String> result =
Sets.newHashSet(ProxyContext.getInstance().getMetaData(schemaName).getSchema().getAllTableNames());
- if (getShardingRuleConfiguration(schemaName).isPresent()) {
-
result.addAll(getShardingTables(getShardingRuleConfiguration(schemaName).get()));
+ if (findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).isPresent()) {
+ result.addAll(getShardingTables(findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get()));
}
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 4ea7813..0661ad1 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 before(final String schemaName, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
- Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
getDatabaseDiscoveryRuleConfiguration(schemaName);
+ Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
findRuleConfiguration(schemaName, DatabaseDiscoveryRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
sqlStatement.getRuleNames());
}
@@ -48,20 +48,20 @@ public final class DropDatabaseDiscoveryRuleBackendHandler
extends RDLBackendHan
@Override
public void doExecute(final String schemaName, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
- DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration
= getDatabaseDiscoveryRuleConfiguration(schemaName).get();
+ DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig =
findRuleConfiguration(schemaName,
DatabaseDiscoveryRuleConfiguration.class).get();
sqlStatement.getRuleNames().forEach(each -> {
- DatabaseDiscoveryDataSourceRuleConfiguration
databaseDiscoveryDataSourceRuleConfiguration =
databaseDiscoveryRuleConfiguration.getDataSources()
+ DatabaseDiscoveryDataSourceRuleConfiguration
databaseDiscoveryDataSourceRuleConfiguration =
databaseDiscoveryRuleConfig.getDataSources()
.stream().filter(dataSource ->
dataSource.getName().equals(each)).findAny().get();
-
databaseDiscoveryRuleConfiguration.getDataSources().remove(databaseDiscoveryDataSourceRuleConfiguration);
-
databaseDiscoveryRuleConfiguration.getDiscoveryTypes().remove(databaseDiscoveryDataSourceRuleConfiguration.getDiscoveryTypeName());
+
databaseDiscoveryRuleConfig.getDataSources().remove(databaseDiscoveryDataSourceRuleConfiguration);
+
databaseDiscoveryRuleConfig.getDiscoveryTypes().remove(databaseDiscoveryDataSourceRuleConfiguration.getDiscoveryTypeName());
});
- if (databaseDiscoveryRuleConfiguration.getDataSources().isEmpty()) {
-
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(databaseDiscoveryRuleConfiguration);
+ if (databaseDiscoveryRuleConfig.getDataSources().isEmpty()) {
+
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(databaseDiscoveryRuleConfig);
}
}
- private void check(final String schemaName, final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
- Collection<String> existRuleNames =
databaseDiscoveryRuleConfiguration.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toList());
+ private void check(final String schemaName, final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> existRuleNames =
databaseDiscoveryRuleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toList());
Collection<String> notExistedRuleNames =
sqlStatement.getRuleNames().stream().filter(each ->
!existRuleNames.contains(each)).collect(Collectors.toList());
if (!notExistedRuleNames.isEmpty()) {
throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
notExistedRuleNames);
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 b6f0c43..b693232 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 before(final String schemaName, final DropEncryptRuleStatement
sqlStatement) {
- Optional<EncryptRuleConfiguration> ruleConfig =
getEncryptRuleConfiguration(schemaName);
+ Optional<EncryptRuleConfiguration> ruleConfig =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class);
if (!ruleConfig.isPresent()) {
throw new EncryptRulesNotExistedException(schemaName,
sqlStatement.getTables());
}
@@ -48,15 +48,15 @@ public final class DropEncryptRuleBackendHandler extends
RDLBackendHandler<DropE
@Override
public void doExecute(final String schemaName, final
DropEncryptRuleStatement sqlStatement) {
- EncryptRuleConfiguration encryptRuleConfiguration =
getEncryptRuleConfiguration(schemaName).get();
+ EncryptRuleConfiguration encryptRuleConfig =
findRuleConfiguration(schemaName, EncryptRuleConfiguration.class).get();
sqlStatement.getTables().forEach(each -> {
- EncryptTableRuleConfiguration encryptTableRuleConfiguration =
encryptRuleConfiguration.getTables()
+ EncryptTableRuleConfiguration encryptTableRuleConfiguration =
encryptRuleConfig.getTables()
.stream().filter(tableRule ->
tableRule.getName().equals(each)).findAny().get();
-
encryptRuleConfiguration.getTables().remove(encryptTableRuleConfiguration);
- encryptTableRuleConfiguration.getColumns().forEach(column ->
encryptRuleConfiguration.getEncryptors().remove(column.getEncryptorName()));
+
encryptRuleConfig.getTables().remove(encryptTableRuleConfiguration);
+ encryptTableRuleConfiguration.getColumns().forEach(column ->
encryptRuleConfig.getEncryptors().remove(column.getEncryptorName()));
});
- if (encryptRuleConfiguration.getTables().isEmpty()) {
-
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(encryptRuleConfiguration);
+ if (encryptRuleConfig.getTables().isEmpty()) {
+
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(encryptRuleConfig);
}
}
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 bc2b098..ba08f67 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 before(final String schemaName, final
DropReadwriteSplittingRuleStatement sqlStatement) {
- Optional<ReadwriteSplittingRuleConfiguration> optional =
getReadwriteSplittingRuleConfiguration(schemaName);
+ Optional<ReadwriteSplittingRuleConfiguration> optional =
findRuleConfiguration(schemaName, ReadwriteSplittingRuleConfiguration.class);
if (!optional.isPresent()) {
throw new ReadwriteSplittingRulesNotExistedException(schemaName,
sqlStatement.getRuleNames());
}
@@ -52,15 +52,15 @@ public final class DropReadwriteSplittingRuleBackendHandler
extends RDLBackendHa
@Override
public void doExecute(final String schemaName, final
DropReadwriteSplittingRuleStatement sqlStatement) {
- ReadwriteSplittingRuleConfiguration
readwriteSplittingRuleConfiguration =
getReadwriteSplittingRuleConfiguration(schemaName).get();
+ ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfig =
findRuleConfiguration(schemaName,
ReadwriteSplittingRuleConfiguration.class).get();
sqlStatement.getRuleNames().forEach(each -> {
- ReadwriteSplittingDataSourceRuleConfiguration
readwriteSplittingDataSourceRuleConfiguration =
readwriteSplittingRuleConfiguration
- .getDataSources().stream().filter(dataSource ->
each.equals(dataSource.getName())).findAny().get();
-
readwriteSplittingRuleConfiguration.getDataSources().remove(readwriteSplittingDataSourceRuleConfiguration);
-
readwriteSplittingRuleConfiguration.getLoadBalancers().remove(readwriteSplittingDataSourceRuleConfiguration.getLoadBalancerName());
+ ReadwriteSplittingDataSourceRuleConfiguration
readwriteSplittingDataSourceRuleConfig
+ =
readwriteSplittingRuleConfig.getDataSources().stream().filter(dataSource ->
each.equals(dataSource.getName())).findAny().get();
+
readwriteSplittingRuleConfig.getDataSources().remove(readwriteSplittingDataSourceRuleConfig);
+
readwriteSplittingRuleConfig.getLoadBalancers().remove(readwriteSplittingDataSourceRuleConfig.getLoadBalancerName());
});
- if (readwriteSplittingRuleConfiguration.getDataSources().isEmpty()) {
-
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(readwriteSplittingRuleConfiguration);
+ if (readwriteSplittingRuleConfig.getDataSources().isEmpty()) {
+
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().remove(readwriteSplittingRuleConfig);
}
}
}
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 995d266..927ace6 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 before(final String schemaName, final
DropShardingBindingTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfiguration =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfiguration.isPresent() ||
shardingRuleConfiguration.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) {
-
getShardingRuleConfiguration(schemaName).get().getBindingTableGroups().clear();
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().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 24b467f..f0a5b11 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 before(final String schemaName, final
DropShardingBroadcastTableRulesStatement sqlStatement) {
- Optional<ShardingRuleConfiguration> shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfiguration =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfiguration.isPresent() ||
shardingRuleConfiguration.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) {
-
getShardingRuleConfiguration(schemaName).get().getBroadcastTables().clear();
+ findRuleConfiguration(schemaName,
ShardingRuleConfiguration.class).get().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 0cd193e..e6c7729 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 before(final String schemaName, final
DropShardingTableRuleStatement sqlStatement) {
Collection<String> tableNames =
sqlStatement.getTableNames().stream().map(each ->
each.getIdentifier().getValue()).collect(Collectors.toList());
- Optional<ShardingRuleConfiguration> shardingRuleConfig =
getShardingRuleConfiguration(schemaName);
+ Optional<ShardingRuleConfiguration> shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class);
if (!shardingRuleConfig.isPresent()) {
throw new ShardingTableRuleNotExistedException(schemaName,
tableNames);
}
@@ -62,9 +62,9 @@ public final class DropShardingTableRuleBackendHandler
extends RDLBackendHandler
@Override
public void doExecute(final String schemaName, final
DropShardingTableRuleStatement sqlStatement) {
- ShardingRuleConfiguration shardingRuleConfiguration =
getShardingRuleConfiguration(schemaName).get();
+ ShardingRuleConfiguration shardingRuleConfig =
findRuleConfiguration(schemaName, ShardingRuleConfiguration.class).get();
for (String each : getDroppedTables(sqlStatement)) {
- dropShardingTable(shardingRuleConfiguration, each);
+ dropShardingTable(shardingRuleConfig, each);
}
}
@@ -72,23 +72,21 @@ public final class DropShardingTableRuleBackendHandler
extends RDLBackendHandler
return sqlStatement.getTableNames().stream().map(each ->
each.getIdentifier().getValue()).collect(Collectors.toList());
}
- private Collection<String> getShardingTables(final
ShardingRuleConfiguration shardingRuleConfiguration) {
+ private Collection<String> getShardingTables(final
ShardingRuleConfiguration shardingRuleConfig) {
Collection<String> result = new LinkedList<>();
-
result.addAll(shardingRuleConfiguration.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
-
result.addAll(shardingRuleConfiguration.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
+
result.addAll(shardingRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
+
result.addAll(shardingRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
return result;
}
- private void dropShardingTable(final ShardingRuleConfiguration
shardingRuleConfiguration, final String tableName) {
-
shardingRuleConfiguration.getTables().removeAll(shardingRuleConfiguration.getTables()
- .stream().filter(each ->
tableName.equalsIgnoreCase(each.getLogicTable())).collect(Collectors.toList()));
-
shardingRuleConfiguration.getAutoTables().removeAll(shardingRuleConfiguration.getAutoTables()
- .stream().filter(each ->
tableName.equalsIgnoreCase(each.getLogicTable())).collect(Collectors.toList()));
+ private void dropShardingTable(final ShardingRuleConfiguration
shardingRuleConfig, final String tableName) {
+
shardingRuleConfig.getTables().removeAll(shardingRuleConfig.getTables().stream().filter(each
->
tableName.equalsIgnoreCase(each.getLogicTable())).collect(Collectors.toList()));
+
shardingRuleConfig.getAutoTables().removeAll(shardingRuleConfig.getAutoTables().stream().filter(each
->
tableName.equalsIgnoreCase(each.getLogicTable())).collect(Collectors.toList()));
}
- private Collection<String> getBindingTables(final
ShardingRuleConfiguration shardingRuleConfiguration) {
- Collection<String> bindTables = new LinkedHashSet<>();
- shardingRuleConfiguration.getBindingTableGroups().forEach(each ->
bindTables.addAll(Splitter.on(",").splitToList(each)));
- return bindTables;
+ private Collection<String> getBindingTables(final
ShardingRuleConfiguration shardingRuleConfig) {
+ Collection<String> result = new LinkedHashSet<>();
+ shardingRuleConfig.getBindingTableGroups().forEach(each ->
result.addAll(Splitter.on(",").splitToList(each)));
+ return result;
}
}
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 eda8ffe..bb15d90 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
@@ -17,17 +17,14 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-import
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
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.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import
org.apache.shardingsphere.proxy.backend.text.SchemaRequiredBackendHandler;
-import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import java.util.Collection;
@@ -63,24 +60,10 @@ public abstract class RDLBackendHandler<T extends
SQLStatement> extends SchemaRe
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations()));
}
- protected final Optional<ReadwriteSplittingRuleConfiguration>
getReadwriteSplittingRuleConfiguration(final String schemaName) {
- return
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
- .filter(each -> each instanceof
ReadwriteSplittingRuleConfiguration).map(each ->
(ReadwriteSplittingRuleConfiguration) each).findFirst();
- }
-
- protected final Optional<EncryptRuleConfiguration>
getEncryptRuleConfiguration(final String schemaName) {
- return
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
- .filter(each -> each instanceof
EncryptRuleConfiguration).map(each -> (EncryptRuleConfiguration)
each).findFirst();
- }
-
- protected final Optional<DatabaseDiscoveryRuleConfiguration>
getDatabaseDiscoveryRuleConfiguration(final String schemaName) {
- return
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
- .filter(each -> each instanceof
DatabaseDiscoveryRuleConfiguration).map(each ->
(DatabaseDiscoveryRuleConfiguration) each).findFirst();
- }
-
- protected final Optional<ShardingRuleConfiguration>
getShardingRuleConfiguration(final String schemaName) {
- return
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
- .filter(each -> each instanceof
ShardingRuleConfiguration).map(each -> (ShardingRuleConfiguration)
each).findFirst();
+ @SuppressWarnings("unchecked")
+ protected final <R extends SchemaRuleConfiguration> Optional<R>
findRuleConfiguration(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 Collection<String> getInvalidResources(final String
schemaName, final Collection<String> resources) {