You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2023/07/04 09:48:42 UTC

[shardingsphere] branch master updated: Add method isEmpty() to DatabaseRuleConfiguration (#26756)

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 <Pa...@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;
+    }
 }