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;