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;
+    }
 }

Reply via email to