You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/04/05 07:18:50 UTC

[shardingsphere] branch master updated: Simplfy AuthorityRuleConfiguration (#9937)

This is an automated email from the ASF dual-hosted git repository.

panjuan 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 9697149  Simplfy AuthorityRuleConfiguration (#9937)
9697149 is described below

commit 969714916777266493f11859dce773aadfa26ee8
Author: Liang Zhang <te...@163.com>
AuthorDate: Mon Apr 5 15:18:27 2021 +0800

    Simplfy AuthorityRuleConfiguration (#9937)
---
 .../api/config/AuthorityRuleConfiguration.java         |  4 +---
 .../shardingsphere/authority/rule/AuthorityRule.java   |  4 +---
 .../yaml/config/YamlAuthorityRuleConfiguration.java    |  5 +----
 .../swapper/AuthorityRuleConfigurationYamlSwapper.java | 18 ++----------------
 4 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-api/src/main/java/org/apache/shardingsphere/authority/api/config/AuthorityRuleConfiguration.java b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-api/src/main/java/org/apache/shardingsphere/authority/api/config/AuthorityRuleConfiguration.java
index ae1ac00..5a53460 100644
--- a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-api/src/main/java/org/apache/shardingsphere/authority/api/config/AuthorityRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-api/src/main/java/org/apache/shardingsphere/authority/api/config/AuthorityRuleConfiguration.java
@@ -22,8 +22,6 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 
-import java.util.Map;
-
 /**
  * Authority rule configuration.
  */
@@ -31,5 +29,5 @@ import java.util.Map;
 @Getter
 public final class AuthorityRuleConfiguration implements RuleConfiguration {
     
-    private final Map<String, ShardingSphereAlgorithmConfiguration> privilegeLoaders;
+    private final ShardingSphereAlgorithmConfiguration privilegeLoader;
 }
diff --git a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
index b047b74..6c1cd3d 100644
--- a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
+++ b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.authority.rule;
 
-import com.google.common.base.Preconditions;
 import org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration;
 import org.apache.shardingsphere.authority.spi.PrivilegeLoadAlgorithm;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmFactory;
@@ -43,8 +42,7 @@ public final class AuthorityRule implements ShardingSphereRule {
     
     public AuthorityRule(final AuthorityRuleConfiguration config, final String schemaName, final DatabaseType databaseType, 
                          final Collection<DataSource> dataSources, final Collection<ShardingSphereUser> users, final Collection<ShardingSphereRule> builtRules) {
-        Preconditions.checkState(1 == config.getPrivilegeLoaders().size(), "Only support one privilege loader.");
-        PrivilegeLoadAlgorithm privilegeLoader = ShardingSphereAlgorithmFactory.createAlgorithm(config.getPrivilegeLoaders().values().iterator().next(), PrivilegeLoadAlgorithm.class);
+        PrivilegeLoadAlgorithm privilegeLoader = ShardingSphereAlgorithmFactory.createAlgorithm(config.getPrivilegeLoader(), PrivilegeLoadAlgorithm.class);
         Authentication authentication = null == AuthenticationContext.getInstance().getAuthentication() ? new DefaultAuthentication() : AuthenticationContext.getInstance().getAuthentication();
         authentication.init(privilegeLoader.load(schemaName, databaseType, dataSources, builtRules, users));
         AuthenticationContext.getInstance().init(authentication);
diff --git a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
index 9d3ca34..97113e2 100644
--- a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
@@ -23,9 +23,6 @@ import org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration
 import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.algorithm.YamlShardingSphereAlgorithmConfiguration;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
-
 /**
  * Authority rule configuration for YAML.
  */
@@ -33,7 +30,7 @@ import java.util.Map;
 @Setter
 public final class YamlAuthorityRuleConfiguration implements YamlRuleConfiguration {
     
-    private Map<String, YamlShardingSphereAlgorithmConfiguration> privilegeLoaders = new LinkedHashMap<>();
+    private YamlShardingSphereAlgorithmConfiguration privilegeLoader;
     
     @Override
     public Class<AuthorityRuleConfiguration> getRuleConfigurationType() {
diff --git a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationYamlSwapper.java
index 7e1ff37..eef268e 100644
--- a/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-authority/shardingsphere-authority-common/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationYamlSwapper.java
@@ -20,15 +20,9 @@ package org.apache.shardingsphere.authority.yaml.swapper;
 import org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration;
 import org.apache.shardingsphere.authority.constant.AuthorityOrder;
 import org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration;
-import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
-import org.apache.shardingsphere.infra.yaml.config.algorithm.YamlShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper;
 import org.apache.shardingsphere.infra.yaml.swapper.algorithm.ShardingSphereAlgorithmConfigurationYamlSwapper;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
 /**
  * Authority rule configuration YAML swapper.
  */
@@ -39,21 +33,13 @@ public final class AuthorityRuleConfigurationYamlSwapper implements YamlRuleConf
     @Override
     public YamlAuthorityRuleConfiguration swapToYamlConfiguration(final AuthorityRuleConfiguration data) {
         YamlAuthorityRuleConfiguration result = new YamlAuthorityRuleConfiguration();
-        data.getPrivilegeLoaders().forEach((key, value) -> result.getPrivilegeLoaders().put(key, algorithmSwapper.swapToYamlConfiguration(value)));
+        result.setPrivilegeLoader(algorithmSwapper.swapToYamlConfiguration(data.getPrivilegeLoader()));
         return result;
     }
     
     @Override
     public AuthorityRuleConfiguration swapToObject(final YamlAuthorityRuleConfiguration yamlConfig) {
-        return new AuthorityRuleConfiguration(swapAuthorityAlgorithm(yamlConfig));
-    }
-    
-    private Map<String, ShardingSphereAlgorithmConfiguration> swapAuthorityAlgorithm(final YamlAuthorityRuleConfiguration yamlConfig) {
-        Map<String, ShardingSphereAlgorithmConfiguration> result = new LinkedHashMap<>(yamlConfig.getPrivilegeLoaders().size(), 1);
-        for (Entry<String, YamlShardingSphereAlgorithmConfiguration> entry : yamlConfig.getPrivilegeLoaders().entrySet()) {
-            result.put(entry.getKey(), algorithmSwapper.swapToObject(entry.getValue()));
-        }
-        return result;
+        return new AuthorityRuleConfiguration(algorithmSwapper.swapToObject(yamlConfig.getPrivilegeLoader()));
     }
     
     @Override