This is an automated email from the ASF dual-hosted git repository. jianglongtao 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 5f8032ccbf9 Add method isEmpty() to DatabaseRuleConfiguration (#26756) 5f8032ccbf9 is described below commit 5f8032ccbf9d28f9b89cb6aa66eb6f64dbf5b2d9 Author: ChenJiaHao <pace2...@163.com> AuthorDate: Tue Jul 4 17:48:35 2023 +0800 Add method isEmpty() to DatabaseRuleConfiguration (#26756) * Add method isEmpty() to DatabaseRuleConfiguration * Fix code --- .../broadcast/api/config/BroadcastRuleConfiguration.java | 5 +++++ .../encrypt/api/config/CompatibleEncryptRuleConfiguration.java | 5 +++++ .../encrypt/api/config/EncryptRuleConfiguration.java | 5 +++++ .../shardingsphere/mask/api/config/MaskRuleConfiguration.java | 5 +++++ .../api/ReadwriteSplittingRuleConfiguration.java | 5 +++++ .../shardingsphere/shadow/api/config/ShadowRuleConfiguration.java | 5 +++++ .../sharding/api/config/ShardingRuleConfiguration.java | 5 +++++ .../infra/config/rule/scope/DatabaseRuleConfiguration.java | 7 +++++++ .../infra/rule/builder/database/DatabaseRulesBuilder.java | 6 +++--- .../rule/builder/fixture/FixtureDatabaseRuleConfiguration.java | 5 +++++ .../shardingsphere/single/api/config/SingleRuleConfiguration.java | 5 +++++ 11 files changed, 55 insertions(+), 3 deletions(-) diff --git a/features/broadcast/api/src/main/java/org/apache/shardingsphere/broadcast/api/config/BroadcastRuleConfiguration.java b/features/broadcast/api/src/main/java/org/apache/shardingsphere/broadcast/api/config/BroadcastRuleConfiguration.java index da7f43f4fdc..3e38dc05507 100644 --- a/features/broadcast/api/src/main/java/org/apache/shardingsphere/broadcast/api/config/BroadcastRuleConfiguration.java +++ b/features/broadcast/api/src/main/java/org/apache/shardingsphere/broadcast/api/config/BroadcastRuleConfiguration.java @@ -32,4 +32,9 @@ import java.util.Collection; public final class BroadcastRuleConfiguration implements DatabaseRuleConfiguration, DistributedRuleConfiguration { private final Collection<String> tables; + + @Override + public boolean isEmpty() { + return tables.isEmpty(); + } } diff --git a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/CompatibleEncryptRuleConfiguration.java b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/CompatibleEncryptRuleConfiguration.java index 54c3612b194..f205a4c1783 100644 --- a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/CompatibleEncryptRuleConfiguration.java +++ b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/CompatibleEncryptRuleConfiguration.java @@ -49,4 +49,9 @@ public final class CompatibleEncryptRuleConfiguration implements DatabaseRuleCon public EncryptRuleConfiguration convertToEncryptRuleConfiguration() { return new EncryptRuleConfiguration(tables, encryptors); } + + @Override + public boolean isEmpty() { + return tables.isEmpty(); + } } diff --git a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java index 108fd51b1ee..a4263cdaf14 100644 --- a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java +++ b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/api/config/EncryptRuleConfiguration.java @@ -37,4 +37,9 @@ public final class EncryptRuleConfiguration implements DatabaseRuleConfiguration private final Collection<EncryptTableRuleConfiguration> tables; private final Map<String, AlgorithmConfiguration> encryptors; + + @Override + public boolean isEmpty() { + return tables.isEmpty(); + } } diff --git a/features/mask/api/src/main/java/org/apache/shardingsphere/mask/api/config/MaskRuleConfiguration.java b/features/mask/api/src/main/java/org/apache/shardingsphere/mask/api/config/MaskRuleConfiguration.java index cd65dc4972b..37253086105 100644 --- a/features/mask/api/src/main/java/org/apache/shardingsphere/mask/api/config/MaskRuleConfiguration.java +++ b/features/mask/api/src/main/java/org/apache/shardingsphere/mask/api/config/MaskRuleConfiguration.java @@ -37,4 +37,9 @@ public final class MaskRuleConfiguration implements DatabaseRuleConfiguration, E private final Collection<MaskTableRuleConfiguration> tables; private final Map<String, AlgorithmConfiguration> maskAlgorithms; + + @Override + public boolean isEmpty() { + return tables.isEmpty(); + } } diff --git a/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/api/ReadwriteSplittingRuleConfiguration.java b/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/api/ReadwriteSplittingRuleConfiguration.java index ccd0c10f417..3ad05f1305d 100644 --- a/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/api/ReadwriteSplittingRuleConfiguration.java +++ b/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/api/ReadwriteSplittingRuleConfiguration.java @@ -41,4 +41,9 @@ public final class ReadwriteSplittingRuleConfiguration implements DatabaseRuleCo private Collection<ReadwriteSplittingDataSourceRuleConfiguration> dataSources; private Map<String, AlgorithmConfiguration> loadBalancers; + + @Override + public boolean isEmpty() { + return dataSources.isEmpty(); + } } diff --git a/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/api/config/ShadowRuleConfiguration.java b/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/api/config/ShadowRuleConfiguration.java index da2b6c1b816..6ce7850a3db 100644 --- a/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/api/config/ShadowRuleConfiguration.java +++ b/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/api/config/ShadowRuleConfiguration.java @@ -44,4 +44,9 @@ public final class ShadowRuleConfiguration implements DatabaseRuleConfiguration, private Map<String, AlgorithmConfiguration> shadowAlgorithms = new LinkedHashMap<>(); private String defaultShadowAlgorithmName; + + @Override + public boolean isEmpty() { + return dataSources.isEmpty() && tables.isEmpty() && null == defaultShadowAlgorithmName; + } } diff --git a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java index 207a4b8e6c1..c38d8ba7c9c 100644 --- a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java +++ b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java @@ -65,4 +65,9 @@ public final class ShardingRuleConfiguration implements DatabaseRuleConfiguratio private Map<String, AlgorithmConfiguration> auditors = new LinkedHashMap<>(); private ShardingCacheConfiguration shardingCache; + + @Override + public boolean isEmpty() { + return tables.isEmpty() && autoTables.isEmpty() && null == defaultDatabaseShardingStrategy && null == defaultTableShardingStrategy; + } } diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/scope/DatabaseRuleConfiguration.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/scope/DatabaseRuleConfiguration.java index d0daec45618..9bee2e04f13 100644 --- a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/scope/DatabaseRuleConfiguration.java +++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/scope/DatabaseRuleConfiguration.java @@ -23,4 +23,11 @@ import org.apache.shardingsphere.infra.config.rule.RuleConfiguration; * Database rule configuration. */ public interface DatabaseRuleConfiguration extends RuleConfiguration { + + /** + * Is this configuration is empty. + * + * @return true or false + */ + boolean isEmpty(); } diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java index 17374642a78..b0bd004ede0 100644 --- a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java +++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java @@ -73,16 +73,16 @@ public final class DatabaseRulesBuilder { * @param databaseName database name * @param dataSources data sources * @param rules rules - * @param ruleConfigs rule configurations + * @param ruleConfig rule configuration * @param instanceContext instance context * @return built rules */ @SuppressWarnings({"unchecked", "rawtypes"}) public static Collection<ShardingSphereRule> build(final String databaseName, final Map<String, DataSource> dataSources, final Collection<ShardingSphereRule> rules, - final RuleConfiguration ruleConfigs, final InstanceContext instanceContext) { + final RuleConfiguration ruleConfig, final InstanceContext instanceContext) { Collection<ShardingSphereRule> result = new LinkedList<>(); for (Entry<RuleConfiguration, DatabaseRuleBuilder> entry : OrderedSPILoader.getServices(DatabaseRuleBuilder.class, - Collections.singletonList(ruleConfigs), Comparator.reverseOrder()).entrySet()) { + Collections.singletonList(ruleConfig), Comparator.reverseOrder()).entrySet()) { RuleConfigurationChecker configChecker = OrderedSPILoader.getServicesByClass( RuleConfigurationChecker.class, Collections.singleton(entry.getKey().getClass())).get(entry.getKey().getClass()); if (null != configChecker) { diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureDatabaseRuleConfiguration.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureDatabaseRuleConfiguration.java index 50e7f4df814..a5066c27274 100644 --- a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureDatabaseRuleConfiguration.java +++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureDatabaseRuleConfiguration.java @@ -20,4 +20,9 @@ package org.apache.shardingsphere.infra.rule.builder.fixture; import org.apache.shardingsphere.infra.config.rule.scope.DatabaseRuleConfiguration; public final class FixtureDatabaseRuleConfiguration implements DatabaseRuleConfiguration { + + @Override + public boolean isEmpty() { + return false; + } } diff --git a/kernel/single/api/src/main/java/org/apache/shardingsphere/single/api/config/SingleRuleConfiguration.java b/kernel/single/api/src/main/java/org/apache/shardingsphere/single/api/config/SingleRuleConfiguration.java index 92ad53d2c4a..062fa5c4467 100644 --- a/kernel/single/api/src/main/java/org/apache/shardingsphere/single/api/config/SingleRuleConfiguration.java +++ b/kernel/single/api/src/main/java/org/apache/shardingsphere/single/api/config/SingleRuleConfiguration.java @@ -49,4 +49,9 @@ public final class SingleRuleConfiguration implements DatabaseRuleConfiguration, public Optional<String> getDefaultDataSource() { return Optional.ofNullable(defaultDataSource); } + + @Override + public boolean isEmpty() { + return tables.isEmpty() && null == defaultDataSource; + } }