Fix gh 619 pass customisers in bean post processors (#627)

* Switch to passing customisers in BeanPostProcessor instead of the
SmartInitializingSingleton.

* Do not instantiate ReactorLoadBalancerExchangeFilterFunction while registering
LB BeanPostProcessor.

* Do not instantiate ReactorLoadBalancerExchangeFilterFunction while registering
LB BeanPostProcessor.

* Extract BeanPostProcessor instantiation to a separate configuration.

* Fix tests.

* Switch to using generics for DeferringLoadBalancerExchangeFilterFunction
and reusing BPP configuration for Ribbon. Add more test assertions.

* Add javadocs.

* Add test verifying LB filters added when WebClient built in constructor.
This commit is contained in:
Olga Maciaszek-Sharma
2019-11-05 15:22:09 +01:00
committed by GitHub
parent c437379857
commit b1b0ec86a6
10 changed files with 324 additions and 89 deletions

View File

@@ -21,6 +21,7 @@ import java.util.List;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration;
import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancerAutoConfiguration;
import org.springframework.cloud.client.loadbalancer.reactive.ReactorLoadBalancerClientAutoConfiguration;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification;
@@ -36,6 +37,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@LoadBalancerClients
@AutoConfigureBefore({ ReactorLoadBalancerClientAutoConfiguration.class,
LoadBalancerBeanPostProcessorAutoConfiguration.class,
ReactiveLoadBalancerAutoConfiguration.class })
public class LoadBalancerAutoConfiguration {