diff --git a/build.gradle b/build.gradle index 281fee0b82..5c6bc27942 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ allprojects { jerseyVersion = '1.19.1' jettisonVersion = '1.5.4' apacheHttpClientVersion = '4.5.3' - commonsConfigurationVersion = '1.10' + commonsLang3Version = '3.20.0' jsr305Version = '3.0.2' guiceVersion = '4.1.0' servoVersion = '0.12.21' diff --git a/eureka-client/build.gradle b/eureka-client/build.gradle index 3f311fc495..165e516043 100644 --- a/eureka-client/build.gradle +++ b/eureka-client/build.gradle @@ -14,7 +14,9 @@ dependencies { api "com.sun.jersey.contribs:jersey-apache-client4:${jerseyVersion}" api "org.apache.httpcomponents:httpclient:${apacheHttpClientVersion}" api "com.google.code.findbugs:jsr305:${jsr305Version}" - api "commons-configuration:commons-configuration:${commonsConfigurationVersion}" + api "org.apache.commons:commons-lang3:${commonsLang3Version}" + // commons-configuration v1 required at compile time by archaius-core 0.7.6 + api "commons-configuration:commons-configuration:1.10" api "com.google.inject:guice:${guiceVersion}" api "com.github.vlsi.compactmap:compactmap:2.0" diff --git a/eureka-client/src/main/java/com/netflix/appinfo/PropertiesInstanceConfig.java b/eureka-client/src/main/java/com/netflix/appinfo/PropertiesInstanceConfig.java index 4c73dfdf0c..f8f7037973 100644 --- a/eureka-client/src/main/java/com/netflix/appinfo/PropertiesInstanceConfig.java +++ b/eureka-client/src/main/java/com/netflix/appinfo/PropertiesInstanceConfig.java @@ -23,7 +23,6 @@ import com.netflix.config.DynamicPropertyFactory; import com.netflix.discovery.CommonConstants; import com.netflix.discovery.internal.util.Archaius1Utils; -import org.apache.commons.configuration.Configuration; import static com.netflix.appinfo.PropertyBasedInstanceConfigConstants.*; @@ -212,14 +211,17 @@ public String getASGName() { public Map getMetadataMap() { String metadataNamespace = namespace + INSTANCE_METADATA_PREFIX + "."; Map metadataMap = new LinkedHashMap<>(); - Configuration config = (Configuration) configInstance.getBackingConfigurationSource(); String subsetPrefix = metadataNamespace.charAt(metadataNamespace.length() - 1) == '.' ? metadataNamespace.substring(0, metadataNamespace.length() - 1) : metadataNamespace; - for (Iterator iter = config.subset(subsetPrefix).getKeys(); iter.hasNext(); ) { - String key = iter.next(); - String value = config.getString(subsetPrefix + "." + key); - metadataMap.put(key, value); + // Use ConfigurationManager directly to iterate over keys with the metadata prefix + Iterator iter = ConfigurationManager.getConfigInstance().getKeys(subsetPrefix); + while (iter.hasNext()) { + String fullKey = iter.next(); + // Extract the relative key by removing the prefix (plus the trailing dot) + String relativeKey = fullKey.substring(subsetPrefix.length() + 1); + String value = ConfigurationManager.getConfigInstance().getString(fullKey); + metadataMap.put(relativeKey, value); } return metadataMap; } diff --git a/eureka-client/src/main/java/com/netflix/discovery/DiscoveryClient.java b/eureka-client/src/main/java/com/netflix/discovery/DiscoveryClient.java index e04a778b1a..d466e1a858 100644 --- a/eureka-client/src/main/java/com/netflix/discovery/DiscoveryClient.java +++ b/eureka-client/src/main/java/com/netflix/discovery/DiscoveryClient.java @@ -52,7 +52,7 @@ import com.netflix.discovery.shared.resolver.EndpointRandomizer; import com.netflix.discovery.shared.resolver.ResolverUtils; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/eureka-client/src/main/java/com/netflix/discovery/shared/transport/decorator/RedirectingEurekaHttpClient.java b/eureka-client/src/main/java/com/netflix/discovery/shared/transport/decorator/RedirectingEurekaHttpClient.java index c46f46cf44..3bc86b6d4c 100644 --- a/eureka-client/src/main/java/com/netflix/discovery/shared/transport/decorator/RedirectingEurekaHttpClient.java +++ b/eureka-client/src/main/java/com/netflix/discovery/shared/transport/decorator/RedirectingEurekaHttpClient.java @@ -31,7 +31,7 @@ import com.netflix.discovery.shared.transport.TransportClientFactory; import com.netflix.discovery.shared.transport.TransportException; import com.netflix.discovery.shared.transport.TransportUtils; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory;