You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/07/03 10:33:04 UTC
[shardingsphere] branch master updated: Review some functions of
ConfigCenter (#6260)
This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 4d54d59 Review some functions of ConfigCenter (#6260)
4d54d59 is described below
commit 4d54d5953430ab3f7d3ffab9b18840efdcf1d2eb
Author: Juan Pan(Trista) <pa...@apache.org>
AuthorDate: Fri Jul 3 18:32:50 2020 +0800
Review some functions of ConfigCenter (#6260)
---
.../core/configcenter/ConfigCenter.java | 30 +++++++++++++---------
.../infra/yaml/engine/YamlEngine.java | 2 +-
2 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
index c239d68..56a0eba 100644
--- a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
+++ b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
@@ -21,14 +21,6 @@ import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.stream.Collectors;
import org.apache.shardingsphere.cluster.configuration.config.ClusterConfiguration;
import org.apache.shardingsphere.cluster.configuration.swapper.ClusterConfigurationYamlSwapper;
import org.apache.shardingsphere.cluster.configuration.yaml.YamlClusterConfiguration;
@@ -54,6 +46,16 @@ import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.sharding.algorithm.config.AlgorithmProvidedShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.stream.Collectors;
+
/**
* Configuration service.
*/
@@ -250,8 +252,10 @@ public final class ConfigCenter {
*/
@SuppressWarnings("unchecked")
public Map<String, DataSourceConfiguration> loadDataSourceConfigurations(final String shardingSchemaName) {
+ if (!hasDataSourceConfiguration(shardingSchemaName)) {
+ return new LinkedHashMap<>();
+ }
Map<String, YamlDataSourceConfiguration> result = (Map) YamlEngine.unmarshal(repository.get(node.getDataSourcePath(shardingSchemaName)));
- Preconditions.checkState(null != result && !result.isEmpty(), "No available data sources to load for orchestration.");
return result.entrySet().stream().collect(Collectors.toMap(Entry::getKey, entry -> new DataSourceConfigurationYamlSwapper().swapToObject(entry.getValue())));
}
@@ -262,8 +266,8 @@ public final class ConfigCenter {
* @return rule configurations
*/
public Collection<RuleConfiguration> loadRuleConfigurations(final String shardingSchemaName) {
- return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(
- YamlEngine.unmarshal(repository.get(node.getRulePath(shardingSchemaName)), YamlRootRuleConfigurations.class).getRules());
+ return hasRuleConfiguration(shardingSchemaName) ? new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(
+ YamlEngine.unmarshal(repository.get(node.getRulePath(shardingSchemaName)), YamlRootRuleConfigurations.class).getRules()) : new LinkedList<>();
}
/**
@@ -282,7 +286,9 @@ public final class ConfigCenter {
* @return authentication
*/
public Authentication loadAuthentication() {
- return new AuthenticationYamlSwapper().swapToObject(YamlEngine.unmarshal(repository.get(node.getAuthenticationPath()), YamlAuthenticationConfiguration.class));
+ return hasAuthentication()
+ ? new AuthenticationYamlSwapper().swapToObject(YamlEngine.unmarshal(repository.get(node.getAuthenticationPath()), YamlAuthenticationConfiguration.class))
+ : new Authentication();
}
/**
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
index ccb23e2..a4aebc9 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
@@ -83,7 +83,7 @@ public final class YamlEngine {
* @return object from YAML
*/
public static <T> T unmarshal(final String yamlContent, final Class<T> classType) {
- return new Yaml(new ShardingSphereYamlConstructor(classType)).loadAs(yamlContent, classType);
+ return Strings.isNullOrEmpty(yamlContent) ? null : new Yaml(new ShardingSphereYamlConstructor(classType)).loadAs(yamlContent, classType);
}
/**