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 <[email protected]>
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;
+ }
}