Adds missing eureka.client.enabled property condition

Fixes gh-3814
Fixes gh-3823
This commit is contained in:
Rafael Renan Pacheco
2020-06-17 16:12:31 -03:00
committed by spencergibb
parent 443628827e
commit 6506e03bcf
2 changed files with 17 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ 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.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientConfigurationRegistrar;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
@@ -34,9 +35,10 @@ import org.springframework.core.env.Environment;
* @see EurekaLoadBalancerClientConfiguration
*/
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(EurekaLoadBalancerProperties.class)
@EnableConfigurationProperties
@ConditionalOnClass(LoadBalancerClientConfigurationRegistrar.class)
@LoadBalancerClients(defaultConfiguration = EurekaLoadBalancerClientConfiguration.class)
@ConditionalOnProperty(name = "eureka.client.enabled", matchIfMissing = true)
public class LoadBalancerEurekaAutoConfiguration {
/**

View File

@@ -18,6 +18,8 @@ package org.springframework.cloud.netflix.eureka.loadbalancer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.cloud.commons.util.InetUtils;
import org.springframework.cloud.commons.util.InetUtilsProperties;
import org.springframework.cloud.loadbalancer.config.LoadBalancerZoneConfig;
@@ -72,4 +74,16 @@ class EurekaLoadBalancerClientConfigurationTests {
assertThat(zoneConfig.getZone()).isEqualTo("is.a.test.com");
}
@Test
public void disabledViaProperty() {
new ApplicationContextRunner()
.withConfiguration(
AutoConfigurations.of(LoadBalancerEurekaAutoConfiguration.class))
.withPropertyValues("eureka.client.enabled=false").run(context -> {
assertThat(context)
.doesNotHaveBean(EurekaLoadBalancerProperties.class);
assertThat(context).doesNotHaveBean(LoadBalancerZoneConfig.class);
});
}
}