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 153cdeb71ebe706f69927a5ad35b58461da37f6b Author: jeho0815 <jeho0...@email.com> AuthorDate: Sat Feb 3 11:47:24 2018 +0800 SCB-315 Config Center module can't get config by DynamicPropertyFactory.getInstance().getStringProperty, so has to use ConcurrentCompositeConfiguration --- .../foundation/vertx/AddressResolverConfig.java | 24 ++++++++++++++-------- .../vertx/TestAddressResolverConfig.java | 4 ++++ 2 files changed, 20 insertions(+), 8 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 b503643..1b1a804 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 @@ -21,6 +21,8 @@ import java.util.Arrays; import java.util.List; import org.apache.commons.configuration.Configuration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.netflix.config.DynamicPropertyFactory; @@ -28,6 +30,8 @@ import io.vertx.core.dns.AddressResolverOptions; public class AddressResolverConfig { + private static final Logger LOGGER = LoggerFactory.getLogger(AddressResolverConfig.class); + /** * get the target endpoints with custom address resolve config * @param tag config tag, such as sc.consumer or cc.consumer @@ -56,27 +60,27 @@ public class AddressResolverConfig { "addressResolver." + tag + ".optResourceEnabled", "addressResolver.optResourceEnabled")); addressResolverOptions - .setCacheMinTimeToLive(getIntProperty(configSource, + .setCacheMinTimeToLive(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_CACHE_MIN_TIME_TO_LIVE, "addressResolver." + tag + ".cacheMinTimeToLive", "addressResolver.cacheMinTimeToLive")); addressResolverOptions - .setCacheMaxTimeToLive(getIntProperty(configSource, + .setCacheMaxTimeToLive(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_CACHE_MAX_TIME_TO_LIVE, "addressResolver." + tag + ".cacheMaxTimeToLive", "addressResolver.cacheMaxTimeToLive")); addressResolverOptions - .setCacheNegativeTimeToLive(getIntProperty(configSource, + .setCacheNegativeTimeToLive(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_CACHE_NEGATIVE_TIME_TO_LIVE, "addressResolver." + tag + ".cacheNegativeTimeToLive", "addressResolver.cacheNegativeTimeToLive")); addressResolverOptions - .setQueryTimeout(getIntProperty(configSource, + .setQueryTimeout(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_QUERY_TIMEOUT, "addressResolver." + tag + ".queryTimeout", "addressResolver.queryTimeout")); addressResolverOptions - .setMaxQueries(getIntProperty(configSource, + .setMaxQueries(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_MAX_QUERIES, "addressResolver." + tag + ".maxQueries", "addressResolver.maxQueries")); @@ -91,7 +95,7 @@ public class AddressResolverConfig { "addressResolver." + tag + ".searchDomains", "addressResolver.searchDomains")); addressResolverOptions - .setNdots(getIntProperty(configSource, + .setNdots(getPositiveIntProperty(configSource, AddressResolverOptions.DEFAULT_CACHE_MIN_TIME_TO_LIVE, "addressResolver." + tag + ".ndots", "addressResolver.ndots")); @@ -117,13 +121,17 @@ public class AddressResolverConfig { return defaultValue; } - private static int getIntProperty(Configuration configSource, int defaultValue, String... keys) { + private static int getPositiveIntProperty(Configuration configSource, int defaultValue, String... keys) { if (configSource == null) { configSource = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource(); } for (String key : keys) { Integer val = configSource.getInteger(key, null); - if (val != null && val > 0) { + if (val != null && val <= 0) { + LOGGER.warn("Address resover key:{}'s value:{} is not positive, please check!", key, val); + continue; + } + if (val != null) { return val; } } 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 dd6c511..da4bc2c 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 @@ -56,6 +56,8 @@ public class TestAddressResolverConfig { result = new String[] {"default.svc.local.cluster"}; finalConfig.getInteger("addressResolver.queryTimeout", null); result = 2000; + finalConfig.getInteger("addressResolver.maxQueries", null); + result = -2; } }; AddressResolverOptions aroc = AddressResolverConfig.getAddressResover("test", finalConfig); @@ -64,6 +66,8 @@ public class TestAddressResolverConfig { is(Arrays.asList("default.svc.local.cluster"))); Assert.assertEquals(aroc.getQueryTimeout(), 2000); + Assert.assertNotEquals(aroc.getMaxQueries(), + -2); } @Test -- To stop receiving notification emails like this one, please contact ningji...@apache.org.