You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/02/03 05:56:51 UTC
[incubator-servicecomb-java-chassis] 02/03: SCB-315 Config Center
module can't get config by
DynamicPropertyFactory.getInstance().getStringProperty,
so has to use ConcurrentCompositeConfiguration
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit d382ead39b3bc63a8c2240af4cb659ea9f88988a
Author: jeho0815 <je...@email.com>
AuthorDate: Sat Feb 3 10:25:54 2018 +0800
SCB-315 Config Center module can't get config by DynamicPropertyFactory.getInstance().getStringProperty, so has to use ConcurrentCompositeConfiguration
---
.../foundation/vertx/AddressResolverConfig.java | 89 +++++++---------------
.../vertx/TestAddressResolverConfig.java | 31 +++-----
2 files changed, 37 insertions(+), 83 deletions(-)
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
index 08412f1..b503643 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
@@ -20,7 +20,8 @@ package org.apache.servicecomb.foundation.vertx;
import java.util.Arrays;
import java.util.List;
-import com.netflix.config.ConcurrentCompositeConfiguration;
+import org.apache.commons.configuration.Configuration;
+
import com.netflix.config.DynamicPropertyFactory;
import io.vertx.core.dns.AddressResolverOptions;
@@ -42,7 +43,7 @@ public class AddressResolverConfig {
* @param configSource get config from special config source
* @return AddressResolverOptions
*/
- public static AddressResolverOptions getAddressResover(String tag, ConcurrentCompositeConfiguration configSource) {
+ public static AddressResolverOptions getAddressResover(String tag, Configuration configSource) {
AddressResolverOptions addressResolverOptions = new AddressResolverOptions();
addressResolverOptions
.setServers(getStringListProperty(configSource,
@@ -102,80 +103,44 @@ public class AddressResolverConfig {
return addressResolverOptions;
}
- private static List<String> getStringListProperty(ConcurrentCompositeConfiguration configSource,
+ private static List<String> getStringListProperty(Configuration configSource,
List<String> defaultValue, String... keys) {
- String property = null;
+ if (configSource == null) {
+ configSource = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
+ }
for (String key : keys) {
- if (configSource != null) {
- Object v = configSource.getProperty(key);
- if (List.class.isInstance(v)) {
- property = listToString(((List<?>) v).toArray());
- } else {
- property = (String) configSource.getProperty(key);
- }
- } else {
- property = DynamicPropertyFactory.getInstance().getStringProperty(key, null).get();
+ String[] vals = configSource.getStringArray(key);
+ if (vals != null && vals.length > 0) {
+ return Arrays.asList(vals);
}
- if (property != null) {
- break;
- }
- }
- if (property != null) {
- return Arrays.asList(property.split(","));
- } else {
- return defaultValue;
}
+ return defaultValue;
}
- private static int getIntProperty(ConcurrentCompositeConfiguration configSource, int defaultValue, String... keys) {
- int property = -1;
+ private static int getIntProperty(Configuration configSource, int defaultValue, String... keys) {
+ if (configSource == null) {
+ configSource = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
+ }
for (String key : keys) {
- if (configSource != null) {
- if (configSource.getProperty(key) != null) {
- return configSource.getInt(key);
- }
- } else {
- property = DynamicPropertyFactory.getInstance().getIntProperty(key, -1).get();
+ Integer val = configSource.getInteger(key, null);
+ if (val != null && val > 0) {
+ return val;
}
}
-
- if (property > 0) {
- return property;
- } else {
- return defaultValue;
- }
+ return defaultValue;
}
- private static boolean getBooleanProperty(ConcurrentCompositeConfiguration configSource, boolean defaultValue,
+ private static boolean getBooleanProperty(Configuration configSource, boolean defaultValue,
String... keys) {
- String property = null;
+ if (configSource == null) {
+ configSource = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
+ }
for (String key : keys) {
- if (configSource != null) {
- if (configSource.getProperty(key) != null) {
- return configSource.getBoolean(key);
- }
- } else {
- property = DynamicPropertyFactory.getInstance().getStringProperty(key, null).get();
- }
- if (property != null) {
- break;
+ Boolean val = configSource.getBoolean(key, null);
+ if (val != null) {
+ return val;
}
}
-
- if (property != null) {
- return Boolean.parseBoolean(property);
- } else {
- return defaultValue;
- }
- }
-
- private static String listToString(Object[] lists) {
- StringBuilder sb = new StringBuilder();
- sb.append(lists[0]);
- for (int i = 1; i < lists.length; i++) {
- sb.append(",");
- sb.append(lists[i]);
- }
- return sb.toString();
+ return defaultValue;
}
}
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java
index 91a680b..dd6c511 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java
@@ -21,14 +21,13 @@ import static org.hamcrest.CoreMatchers.is;
import java.util.Arrays;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
-import com.netflix.config.ConcurrentCompositeConfiguration;
-
import io.vertx.core.dns.AddressResolverOptions;
import mockit.Expectations;
import mockit.Mocked;
@@ -46,35 +45,25 @@ public class TestAddressResolverConfig {
}
@Test
- public void testGetResoverFromResource(@Mocked ConcurrentCompositeConfiguration finalConfig) {
+ public void testGetResoverFromResource(@Mocked Configuration finalConfig) {
ArchaiusUtils.resetConfig();
ArchaiusUtils.setProperty("addressResolver.servers", "8.8.8.8,8.8.4.4");
- ArchaiusUtils.setProperty("addressResolver.optResourceEnabled", true);
- ArchaiusUtils.setProperty("addressResolver.cacheMinTimeToLive", 0);
- ArchaiusUtils.setProperty("addressResolver.cacheMaxTimeToLive", 10000);
- ArchaiusUtils.setProperty("addressResolver.cacheNegativeTimeToLive", 0);
- ArchaiusUtils.setProperty("addressResolver.queryTimeout", 1000);
- ArchaiusUtils.setProperty("addressResolver.maxQueries", 3);
- ArchaiusUtils.setProperty("addressResolver.test.maxQueries", 3);
- ArchaiusUtils.setProperty("addressResolver.rdFlag", true);
- ArchaiusUtils.setProperty("addressResolver.searchDomains",
- "default.svc.local.cluster,svc.local.cluster,local.cluster");
- ArchaiusUtils.setProperty("addressResolver.test.searchDomains",
- "test.svc.local.cluster,svc.local.cluster,local.cluster");
- ArchaiusUtils.setProperty("addressResolver.ndots", 3);
- ArchaiusUtils.setProperty("addressResolver.rotateServers", true);
new Expectations() {
{
- finalConfig.getProperty("addressResolver.servers");
- result = "6.6.6.6,6.6.4.4";
- finalConfig.getProperty("addressResolver.searchDomains");
- result = "default.svc.local.cluster";
+ finalConfig.getStringArray("addressResolver.servers");
+ result = new String[] {"6.6.6.6", "6.6.4.4"};
+ finalConfig.getStringArray("addressResolver.searchDomains");
+ result = new String[] {"default.svc.local.cluster"};
+ finalConfig.getInteger("addressResolver.queryTimeout", null);
+ result = 2000;
}
};
AddressResolverOptions aroc = AddressResolverConfig.getAddressResover("test", finalConfig);
Assert.assertThat(aroc.getServers(), is(Arrays.asList("6.6.6.6", "6.6.4.4")));
Assert.assertThat(aroc.getSearchDomains(),
is(Arrays.asList("default.svc.local.cluster")));
+ Assert.assertEquals(aroc.getQueryTimeout(),
+ 2000);
}
@Test
--
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.