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