From 9b7d28c684c83dff111115229afa00c3f3193984 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Wed, 3 Nov 2021 14:36:26 +0100 Subject: [PATCH] Use LB per-client properties. (#1725) --- ...ringCloudLoadBalancerAutoConfiguration.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java index 8732d90385..6e0487e6d9 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java @@ -30,10 +30,12 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.CompletionContext; import org.springframework.cloud.client.loadbalancer.DefaultResponse; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; +import org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties; import org.springframework.cloud.client.loadbalancer.LoadBalancerLifecycle; import org.springframework.cloud.client.loadbalancer.Request; import org.springframework.cloud.client.loadbalancer.Response; @@ -67,12 +69,14 @@ import org.springframework.util.StringUtils; @AutoConfigureBefore(LoadBalancerAutoConfiguration.class) @AutoConfigureAfter({ LoadBalancerClientConfiguration.class, StubRunnerSpringCloudAutoConfiguration.class }) @ConditionalOnStubbedDiscoveryEnabled +@EnableConfigurationProperties(LoadBalancerClientsProperties.class) public class SpringCloudLoadBalancerAutoConfiguration { @Bean @Primary - LoadBalancerClientFactory stubRunnerLoadBalancerClientFactory(BeanFactory beanFactory) { - return new StubRunnerLoadBalancerClientFactory(beanFactory); + LoadBalancerClientFactory stubRunnerLoadBalancerClientFactory(BeanFactory beanFactory, + LoadBalancerClientsProperties properties) { + return new StubRunnerLoadBalancerClientFactory(beanFactory, properties); } } @@ -81,10 +85,20 @@ class StubRunnerLoadBalancerClientFactory extends LoadBalancerClientFactory impl private final BeanFactory beanFactory; + /** + * @deprecated in favour of + * {@link StubRunnerLoadBalancerClientFactory#StubRunnerLoadBalancerClientFactory(BeanFactory, LoadBalancerClientsProperties)} + */ + @Deprecated StubRunnerLoadBalancerClientFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + StubRunnerLoadBalancerClientFactory(BeanFactory beanFactory, LoadBalancerClientsProperties properties) { + super(properties); + this.beanFactory = beanFactory; + } + @Override public ReactiveLoadBalancer getInstance(String serviceId) { return new ContractReactorServiceInstanceLoadBalancer(this.beanFactory, serviceId);