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:52 UTC
[incubator-servicecomb-java-chassis] 03/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 153cdeb71ebe706f69927a5ad35b58461da37f6b
Author: jeho0815 <je...@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
ningjiang@apache.org.