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.