You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/04/16 09:14:04 UTC
[incubator-servicecomb-java-chassis] 03/03: [SCB-456]Provider a way
to input configuration from a Map
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 646313e81a328f8736a8a2f5d09a68430ed3f0f4
Author: jasononion <ja...@gmail.com>
AuthorDate: Sat Apr 14 14:45:18 2018 +0800
[SCB-456]Provider a way to input configuration from a Map
---
.../java/org/apache/servicecomb/config/ConfigUtil.java | 13 ++++++++++---
.../org/apache/servicecomb/config/TestConfigUtil.java | 18 +++++++++---------
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
index 052f8c4..076caaf 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
@@ -21,6 +21,7 @@ import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_KEY_SPLITER;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICECOMB_PREFIX;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -52,13 +53,17 @@ public final class ConfigUtil {
private static final String MICROSERVICE_CONFIG_LOADER_KEY = "cse-microservice-config-loader";
- private static ConfigModel model = new ConfigModel();
+ private static Map<String, Object> localConfig = new HashMap<>();
private ConfigUtil() {
}
public static void setConfigs(Map<String, Object> config) {
- model.setConfig(config);
+ localConfig = config;
+ }
+
+ public static void addConfig(String key, Object value) {
+ localConfig.put(key, value);
}
public static Object getProperty(String key) {
@@ -89,7 +94,9 @@ public final class ConfigUtil {
public static ConcurrentCompositeConfiguration createLocalConfig() {
MicroserviceConfigLoader loader = new MicroserviceConfigLoader();
loader.loadAndSort();
- if(model.getConfig() != null) {
+ if (localConfig.size() > 0) {
+ ConfigModel model = new ConfigModel();
+ model.setConfig(localConfig);
loader.getConfigModels().add(model);
}
diff --git a/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/TestConfigUtil.java b/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/TestConfigUtil.java
index fedd847..a61555a 100644
--- a/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/TestConfigUtil.java
+++ b/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/TestConfigUtil.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.HashMap;
+import com.netflix.config.*;
import org.apache.commons.configuration.AbstractConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.config.archaius.sources.ConfigModel;
@@ -41,11 +42,6 @@ import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
-import com.netflix.config.ConcurrentCompositeConfiguration;
-import com.netflix.config.DynamicConfiguration;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.DynamicWatchedConfiguration;
-
import mockit.Deencapsulation;
import mockit.Expectations;
import mockit.Mocked;
@@ -84,11 +80,15 @@ public class TestConfigUtil {
@Test
public void testAddConfig() {
Map config = new HashMap<String, Object>();
- config.put("APPLICATION_ID", "app");
+ config.put("service_description.name", "service_name_test");
ConfigUtil.setConfigs(config);
- ConcurrentCompositeConfiguration configuration = ConfigUtil.createLocalConfig();
- Assert.assertEquals(configuration.getString("APPLICATION_ID"), "app");
-
+ ConfigUtil.addConfig("service_description.version", "1.0.2");
+ ConfigUtil.addConfig("cse.test.enabled", true);
+ ConfigUtil.addConfig("cse.test.num", 10);
+ AbstractConfiguration configuration = ConfigUtil.createDynamicConfig();
+ Assert.assertEquals(configuration.getString("service_description.name"), "service_name_test");
+ Assert.assertEquals(configuration.getBoolean("cse.test.enabled"), true);
+ Assert.assertEquals(configuration.getInt("cse.test.num"), 10);
}
@Test
--
To stop receiving notification emails like this one, please contact
liubao@apache.org.