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 2022/11/12 09:58:20 UTC
[shardingsphere] branch master updated: Refactor ShadowRuleConfiguration and ShadowRule (#22106)
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 67d35599f8c Refactor ShadowRuleConfiguration and ShadowRule (#22106)
67d35599f8c is described below
commit 67d35599f8cb7b0eb9a09db5c7a45894ef1c9bb4
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Nov 12 17:58:13 2022 +0800
Refactor ShadowRuleConfiguration and ShadowRule (#22106)
---
.../shadow/api/config/ShadowRuleConfiguration.java | 4 ++--
.../shardingsphere/shadow/rule/ShadowRule.java | 22 ++++++++++------------
.../yaml/config/YamlShadowRuleConfiguration.java | 4 ++--
3 files changed, 14 insertions(+), 16 deletions(-)
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 bd992ed6e4d..850b65493a9 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
@@ -35,11 +35,11 @@ import java.util.Map;
@Setter
public final class ShadowRuleConfiguration implements DatabaseRuleConfiguration, DistributedRuleConfiguration {
- private String defaultShadowAlgorithmName;
-
private Map<String, ShadowDataSourceConfiguration> dataSources = new LinkedHashMap<>();
private Map<String, ShadowTableConfiguration> tables = new LinkedHashMap<>();
private Map<String, AlgorithmConfiguration> shadowAlgorithms = new LinkedHashMap<>();
+
+ private String defaultShadowAlgorithmName;
}
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
index 19574fd8a30..bd03f572202 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
@@ -48,8 +48,6 @@ public final class ShadowRule implements DatabaseRule, DataSourceContainedRule {
private final RuleConfiguration configuration;
- private ShadowAlgorithm defaultShadowAlgorithm;
-
private final Collection<String> hintShadowAlgorithmNames = new LinkedList<>();
private final Map<String, ShadowDataSourceRule> shadowDataSourceMappings = new LinkedHashMap<>();
@@ -58,11 +56,16 @@ public final class ShadowRule implements DatabaseRule, DataSourceContainedRule {
private final Map<String, ShadowTableRule> shadowTableRules = new LinkedHashMap<>();
+ private final ShadowAlgorithm defaultShadowAlgorithm;
+
public ShadowRule(final ShadowRuleConfiguration ruleConfig) {
configuration = ruleConfig;
initShadowDataSourceMappings(ruleConfig.getDataSources());
initShadowAlgorithmConfigurations(ruleConfig.getShadowAlgorithms());
- initDefaultShadowAlgorithm(ruleConfig.getDefaultShadowAlgorithmName());
+ defaultShadowAlgorithm = shadowAlgorithms.get(ruleConfig.getDefaultShadowAlgorithmName());
+ if (defaultShadowAlgorithm instanceof HintShadowAlgorithm<?>) {
+ hintShadowAlgorithmNames.add(ruleConfig.getDefaultShadowAlgorithmName());
+ }
initShadowTableRules(ruleConfig.getTables());
}
@@ -70,7 +73,10 @@ public final class ShadowRule implements DatabaseRule, DataSourceContainedRule {
configuration = ruleConfig;
initShadowDataSourceMappings(ruleConfig.getDataSources());
initShadowAlgorithms(ruleConfig.getShadowAlgorithms());
- initDefaultShadowAlgorithm(ruleConfig.getDefaultShadowAlgorithmName());
+ defaultShadowAlgorithm = shadowAlgorithms.get(ruleConfig.getDefaultShadowAlgorithmName());
+ if (defaultShadowAlgorithm instanceof HintShadowAlgorithm<?>) {
+ hintShadowAlgorithmNames.add(ruleConfig.getDefaultShadowAlgorithmName());
+ }
initShadowTableRules(ruleConfig.getTables());
}
@@ -97,14 +103,6 @@ public final class ShadowRule implements DatabaseRule, DataSourceContainedRule {
});
}
- private void initDefaultShadowAlgorithm(final String defaultShadowAlgorithmName) {
- ShadowAlgorithm shadowAlgorithm = shadowAlgorithms.get(defaultShadowAlgorithmName);
- if (shadowAlgorithm instanceof HintShadowAlgorithm<?>) {
- hintShadowAlgorithmNames.add(defaultShadowAlgorithmName);
- }
- defaultShadowAlgorithm = shadowAlgorithm;
- }
-
private void initShadowTableRules(final Map<String, ShadowTableConfiguration> tables) {
tables.forEach((key, value) -> shadowTableRules.put(key, new ShadowTableRule(key, value.getDataSourceNames(), value.getShadowAlgorithmNames(), shadowAlgorithms)));
}
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/config/YamlShadowRuleConfiguration.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/config/YamlShadowRuleConfiguration.java
index c2c0d2920f7..86313ce8a29 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/config/YamlShadowRuleConfiguration.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/config/YamlShadowRuleConfiguration.java
@@ -35,14 +35,14 @@ import java.util.Map;
@Setter
public final class YamlShadowRuleConfiguration implements YamlRuleConfiguration {
- private String defaultShadowAlgorithmName;
-
private Map<String, YamlShadowDataSourceConfiguration> dataSources = new LinkedHashMap<>();
private Map<String, YamlShadowTableConfiguration> tables = new LinkedHashMap<>();
private Map<String, YamlAlgorithmConfiguration> shadowAlgorithms = new LinkedHashMap<>();
+ private String defaultShadowAlgorithmName;
+
@Override
public Class<ShadowRuleConfiguration> getRuleConfigurationType() {
return ShadowRuleConfiguration.class;