You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2023/05/17 07:39:29 UTC
[shardingsphere] branch master updated: Fix sonar issues on UnusedAlgorithmFinder (#25729)
This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 53fdf842511 Fix sonar issues on UnusedAlgorithmFinder (#25729)
53fdf842511 is described below
commit 53fdf84251141bd568b6f623f51a6e12b319b757
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed May 17 15:39:19 2023 +0800
Fix sonar issues on UnusedAlgorithmFinder (#25729)
* Fix sonar issues on Replace this lambda with method reference
* Fix sonar issues on Use concise character class syntax '\\d' instead of '[0-9]'
* Fix sonar issues on ShardingRenameTableStatementValidatorTest
* Fix sonar issues on UnusedAlgorithmFinder
---
.../DropDefaultStrategyStatementUpdater.java | 4 +--
.../DropShardingTableRuleStatementUpdater.java | 4 +--
...RuleUpdater.java => UnusedAlgorithmFinder.java} | 33 ++++++++++++----------
3 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
index e96c1c40be3..deae1b60465 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
@@ -31,7 +31,7 @@ import java.util.Optional;
/**
* Drop sharding table rule statement updater.
*/
-public final class DropDefaultStrategyStatementUpdater extends AbstractDropShardingRuleUpdater implements RuleDefinitionDropUpdater<DropDefaultShardingStrategyStatement, ShardingRuleConfiguration> {
+public final class DropDefaultStrategyStatementUpdater implements RuleDefinitionDropUpdater<DropDefaultShardingStrategyStatement, ShardingRuleConfiguration> {
@Override
public void checkSQLStatement(final ShardingSphereDatabase database, final DropDefaultShardingStrategyStatement sqlStatement,
@@ -79,7 +79,7 @@ public final class DropDefaultStrategyStatementUpdater extends AbstractDropShard
} else {
currentRuleConfig.setDefaultDatabaseShardingStrategy(null);
}
- dropUnusedAlgorithm(currentRuleConfig);
+ UnusedAlgorithmFinder.find(currentRuleConfig).forEach(each -> currentRuleConfig.getShardingAlgorithms().remove(each));
return currentRuleConfig.getTables().isEmpty() && currentRuleConfig.getAutoTables().isEmpty() && currentRuleConfig.getBroadcastTables().isEmpty()
&& null == currentRuleConfig.getDefaultDatabaseShardingStrategy() && null == currentRuleConfig.getDefaultTableShardingStrategy();
}
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
index 7bd18bb1d5e..a389f4b20fb 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
/**
* Drop sharding table rule statement updater.
*/
-public final class DropShardingTableRuleStatementUpdater extends AbstractDropShardingRuleUpdater implements RuleDefinitionDropUpdater<DropShardingTableRuleStatement, ShardingRuleConfiguration> {
+public final class DropShardingTableRuleStatementUpdater implements RuleDefinitionDropUpdater<DropShardingTableRuleStatement, ShardingRuleConfiguration> {
@Override
public void checkSQLStatement(final ShardingSphereDatabase database, final DropShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
@@ -109,7 +109,7 @@ public final class DropShardingTableRuleStatementUpdater extends AbstractDropSha
public boolean updateCurrentRuleConfiguration(final DropShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
Collection<String> toBeDroppedShardingTableNames = getToBeDroppedShardingTableNames(sqlStatement);
toBeDroppedShardingTableNames.forEach(each -> dropShardingTable(currentRuleConfig, each));
- dropUnusedAlgorithm(currentRuleConfig);
+ UnusedAlgorithmFinder.find(currentRuleConfig).forEach(each -> currentRuleConfig.getShardingAlgorithms().remove(each));
dropUnusedKeyGenerator(currentRuleConfig);
dropUnusedAuditor(currentRuleConfig);
return currentRuleConfig.getTables().isEmpty() && currentRuleConfig.getAutoTables().isEmpty() && currentRuleConfig.getBroadcastTables().isEmpty()
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AbstractDropShardingRuleUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/UnusedAlgorithmFinder.java
similarity index 53%
rename from features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AbstractDropShardingRuleUpdater.java
rename to features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/UnusedAlgorithmFinder.java
index e26e080eab9..22473344936 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AbstractDropShardingRuleUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/UnusedAlgorithmFinder.java
@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sharding.distsql.handler.update;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
@@ -26,31 +28,32 @@ import java.util.Objects;
import java.util.stream.Collectors;
/**
- * Abstract drop sharding table rule updater.
+ * Unused algorithm finder.
*/
-public abstract class AbstractDropShardingRuleUpdater {
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class UnusedAlgorithmFinder {
/**
- * Drop unused algorithm.
+ * Find unused algorithms.
*
- * @param currentRuleConfig current sharding rule configuration
+ * @param ruleConfig sharding rule configuration
+ * @return found unused algorithms
*/
- public void dropUnusedAlgorithm(final ShardingRuleConfiguration currentRuleConfig) {
- Collection<String> inUsedAlgorithms = currentRuleConfig.getTables().stream().map(each -> Arrays.asList(each.getTableShardingStrategy(), each.getDatabaseShardingStrategy()))
+ public static Collection<String> find(final ShardingRuleConfiguration ruleConfig) {
+ Collection<String> inUsedAlgorithms = ruleConfig.getTables().stream().map(each -> Arrays.asList(each.getTableShardingStrategy(), each.getDatabaseShardingStrategy()))
.flatMap(Collection::stream).filter(Objects::nonNull).map(ShardingStrategyConfiguration::getShardingAlgorithmName).collect(Collectors.toSet());
- inUsedAlgorithms.addAll(currentRuleConfig.getTables().stream().filter(each -> Objects.nonNull(each.getDatabaseShardingStrategy()))
+ inUsedAlgorithms.addAll(ruleConfig.getTables().stream().filter(each -> Objects.nonNull(each.getDatabaseShardingStrategy()))
.map(each -> each.getDatabaseShardingStrategy().getShardingAlgorithmName()).collect(Collectors.toSet()));
- inUsedAlgorithms.addAll(currentRuleConfig.getTables().stream().filter(each -> Objects.nonNull(each.getTableShardingStrategy()))
+ inUsedAlgorithms.addAll(ruleConfig.getTables().stream().filter(each -> Objects.nonNull(each.getTableShardingStrategy()))
.map(each -> each.getTableShardingStrategy().getShardingAlgorithmName()).collect(Collectors.toSet()));
- inUsedAlgorithms.addAll(currentRuleConfig.getAutoTables().stream().filter(each -> Objects.nonNull(each.getShardingStrategy()))
+ inUsedAlgorithms.addAll(ruleConfig.getAutoTables().stream().filter(each -> Objects.nonNull(each.getShardingStrategy()))
.map(each -> each.getShardingStrategy().getShardingAlgorithmName()).collect(Collectors.toSet()));
- if (null != currentRuleConfig.getDefaultDatabaseShardingStrategy()) {
- inUsedAlgorithms.add(currentRuleConfig.getDefaultDatabaseShardingStrategy().getShardingAlgorithmName());
+ if (null != ruleConfig.getDefaultDatabaseShardingStrategy()) {
+ inUsedAlgorithms.add(ruleConfig.getDefaultDatabaseShardingStrategy().getShardingAlgorithmName());
}
- if (null != currentRuleConfig.getDefaultTableShardingStrategy()) {
- inUsedAlgorithms.add(currentRuleConfig.getDefaultTableShardingStrategy().getShardingAlgorithmName());
+ if (null != ruleConfig.getDefaultTableShardingStrategy()) {
+ inUsedAlgorithms.add(ruleConfig.getDefaultTableShardingStrategy().getShardingAlgorithmName());
}
- Collection<String> unusedAlgorithms = currentRuleConfig.getShardingAlgorithms().keySet().stream().filter(each -> !inUsedAlgorithms.contains(each)).collect(Collectors.toSet());
- unusedAlgorithms.forEach(each -> currentRuleConfig.getShardingAlgorithms().remove(each));
+ return ruleConfig.getShardingAlgorithms().keySet().stream().filter(each -> !inUsedAlgorithms.contains(each)).collect(Collectors.toSet());
}
}