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:02 UTC

[incubator-servicecomb-java-chassis] 01/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 45b6c7a71b8a5aa7a0c7041369e8b1cfdc0bc39c
Author: yanminzhi <ja...@gmail.com>
AuthorDate: Mon Apr 2 21:14:21 2018 +0800

    [SCB-456]Provider a way to input configuration from a Map
---
 .../main/java/org/apache/servicecomb/config/ConfigUtil.java   | 11 +++++++++++
 .../java/org/apache/servicecomb/config/TestConfigUtil.java    | 11 +++++++++++
 2 files changed, 22 insertions(+)

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 fbef8a9..7e99176 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
@@ -52,9 +52,15 @@ public final class ConfigUtil {
 
   private static final String MICROSERVICE_CONFIG_LOADER_KEY = "cse-microservice-config-loader";
 
+  private static ConfigModel model = new ConfigModel();
+
   private ConfigUtil() {
   }
 
+  public static void addConfigs(Map<String, Object> config) {
+    model.setConfig(config);
+  }
+
   public static Object getProperty(String key) {
     Object config = DynamicPropertyFactory.getBackingConfigurationSource();
     return getProperty(config, key);
@@ -83,6 +89,9 @@ public final class ConfigUtil {
   public static ConcurrentCompositeConfiguration createLocalConfig() {
     MicroserviceConfigLoader loader = new MicroserviceConfigLoader();
     loader.loadAndSort();
+    if(model.getConfig() != null) {
+      loader.getConfigModels().add(model);
+    }
 
     LOGGER.info("create local config:");
     for (ConfigModel configModel : loader.getConfigModels()) {
@@ -94,6 +103,8 @@ public final class ConfigUtil {
     return config;
   }
 
+
+
   public static ConcurrentCompositeConfiguration createLocalConfig(List<ConfigModel> configModelList) {
     ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
 
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 27fe358..08846e1 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
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.HashMap;
 
 import org.apache.commons.configuration.AbstractConfiguration;
 import org.apache.commons.configuration.Configuration;
@@ -81,6 +82,16 @@ public class TestConfigUtil {
   }
 
   @Test
+  public void testAddConfig() {
+    Map config = new HashMap<String, Object>();
+    config.put("APPLICATION_ID", "app");
+    ConfigUtil.addConfigs(config);
+    ConcurrentCompositeConfiguration configuration = ConfigUtil.createLocalConfig();
+    Assert.assertEquals(configuration.getString("APPLICATION_ID"), "app");
+
+  }
+
+  @Test
   public void testCreateConfigFromConfigCenterNoUrl(@Mocked Configuration localConfiguration) {
     AbstractConfiguration configFromConfigCenter = ConfigUtil.createConfigFromConfigCenter(localConfiguration);
     Assert.assertNull(configFromConfigCenter);

-- 
To stop receiving notification emails like this one, please contact
liubao@apache.org.