From ff6b50d0a8f1acb6c07a6c873044b3d27a9d748a Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Tue, 4 Feb 2020 19:40:28 +0100 Subject: [PATCH] Adjust to changes in commons. --- .../EurekaLoadBalancerClientConfiguration.java | 18 +++++++++--------- .../LoadBalancerEurekaAutoConfiguration.java | 14 +++++++++----- ...kaLoadBalancerClientConfigurationTests.java | 12 ++++++------ 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfiguration.java index 36890dd65..9de7fbc03 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfiguration.java @@ -25,11 +25,13 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties; +import org.springframework.cloud.loadbalancer.config.LoadBalancerZoneConfig; import org.springframework.cloud.netflix.ribbon.eureka.ZoneUtils; import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; +import static org.springframework.cloud.netflix.eureka.loadbalancer.LoadBalancerEurekaAutoConfiguration.LOADBALANCER_ZONE; + /** * A configuration for Spring Cloud LoadBalancer that retrieves client instance zone from * Eureka and sets it as a property. Based on @@ -40,11 +42,9 @@ import org.springframework.util.StringUtils; * @see EurekaLoadBalancerClientConfiguration */ @Configuration -@ConditionalOnBean({ LoadBalancerProperties.class, EurekaLoadBalancerProperties.class }) +@ConditionalOnBean({ LoadBalancerZoneConfig.class, EurekaLoadBalancerProperties.class }) public class EurekaLoadBalancerClientConfiguration { - private static final String LOADBALANCER_ZONE = "spring.cloud.loadbalancer.zone"; - private static final Log LOG = LogFactory .getLog(EurekaLoadBalancerClientConfiguration.class); @@ -52,24 +52,24 @@ public class EurekaLoadBalancerClientConfiguration { private final EurekaInstanceConfig eurekaConfig; - private final LoadBalancerProperties loadBalancerProperties; + private final LoadBalancerZoneConfig zoneConfig; private final EurekaLoadBalancerProperties eurekaLoadBalancerProperties; public EurekaLoadBalancerClientConfiguration( @Autowired(required = false) EurekaClientConfig clientConfig, @Autowired(required = false) EurekaInstanceConfig eurekaInstanceConfig, - LoadBalancerProperties loadBalancerProperties, + LoadBalancerZoneConfig zoneConfig, EurekaLoadBalancerProperties eurekaLoadBalancerProperties) { this.clientConfig = clientConfig; this.eurekaConfig = eurekaInstanceConfig; - this.loadBalancerProperties = loadBalancerProperties; + this.zoneConfig = zoneConfig; this.eurekaLoadBalancerProperties = eurekaLoadBalancerProperties; } @PostConstruct public void postprocess() { - if (!StringUtils.isEmpty(loadBalancerProperties.getZone())) { + if (!StringUtils.isEmpty(zoneConfig.getZone())) { return; } String zone = getZoneFromEureka(); @@ -77,7 +77,7 @@ public class EurekaLoadBalancerClientConfiguration { if (LOG.isDebugEnabled()) { LOG.debug("Setting the value of '" + LOADBALANCER_ZONE + "' to " + zone); } - loadBalancerProperties.setZone(zone); + zoneConfig.setZone(zone); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/LoadBalancerEurekaAutoConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/LoadBalancerEurekaAutoConfiguration.java index 6f9473568..b34b47b43 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/LoadBalancerEurekaAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/loadbalancer/LoadBalancerEurekaAutoConfiguration.java @@ -18,13 +18,13 @@ package org.springframework.cloud.netflix.eureka.loadbalancer; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties; import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientConfigurationRegistrar; import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients; +import org.springframework.cloud.loadbalancer.config.LoadBalancerZoneConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; /** * An Autoconfiguration that loads default config for Spring Cloud LoadBalancer clients. @@ -39,6 +39,11 @@ import org.springframework.context.annotation.Configuration; @LoadBalancerClients(defaultConfiguration = EurekaLoadBalancerClientConfiguration.class) public class LoadBalancerEurekaAutoConfiguration { + /** + * Spring Cloud LoadBalancer Zone property name. + */ + public static final String LOADBALANCER_ZONE = "spring.cloud.loadbalancer.zone"; + @Bean @ConditionalOnMissingBean EurekaLoadBalancerProperties eurekaLoadBalancerProperties() { @@ -47,9 +52,8 @@ public class LoadBalancerEurekaAutoConfiguration { @Bean @ConditionalOnMissingBean - @ConfigurationProperties("spring.cloud.loadbalancer") - LoadBalancerProperties loadBalancerProperties() { - return new LoadBalancerProperties(); + LoadBalancerZoneConfig zoneConfig(Environment environment) { + return new LoadBalancerZoneConfig(environment.getProperty(LOADBALANCER_ZONE)); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java index 1eeff8827..a1f79e955 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java @@ -18,9 +18,9 @@ package org.springframework.cloud.netflix.eureka.loadbalancer; import org.junit.jupiter.api.Test; -import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; +import org.springframework.cloud.loadbalancer.config.LoadBalancerZoneConfig; import org.springframework.cloud.netflix.eureka.EurekaClientConfigBean; import org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean; @@ -38,12 +38,12 @@ class EurekaLoadBalancerClientConfigurationTests { private EurekaInstanceConfigBean eurekaInstanceConfig = new EurekaInstanceConfigBean( new InetUtils(new InetUtilsProperties())); - private LoadBalancerProperties loadBalancerProperties = new LoadBalancerProperties(); + private LoadBalancerZoneConfig zoneConfig = new LoadBalancerZoneConfig(null); private EurekaLoadBalancerProperties eurekaLoadBalancerProperties = new EurekaLoadBalancerProperties(); private EurekaLoadBalancerClientConfiguration postprocessor = new EurekaLoadBalancerClientConfiguration( - eurekaClientConfig, eurekaInstanceConfig, loadBalancerProperties, + eurekaClientConfig, eurekaInstanceConfig, zoneConfig, eurekaLoadBalancerProperties); @Test @@ -52,14 +52,14 @@ class EurekaLoadBalancerClientConfigurationTests { postprocessor.postprocess(); - assertThat(loadBalancerProperties.getZone()).isEqualTo("myZone"); + assertThat(zoneConfig.getZone()).isEqualTo("myZone"); } @Test public void shouldSetZoneToDefaultWhenNotSetInMetadata() { postprocessor.postprocess(); - assertThat(loadBalancerProperties.getZone()).isEqualTo("defaultZone"); + assertThat(zoneConfig.getZone()).isEqualTo("defaultZone"); } @Test @@ -69,7 +69,7 @@ class EurekaLoadBalancerClientConfigurationTests { postprocessor.postprocess(); - assertThat(loadBalancerProperties.getZone()).isEqualTo("is.a.test.com"); + assertThat(zoneConfig.getZone()).isEqualTo("is.a.test.com"); } }