Fix LoadBalancerWebClientHttpServiceGroupConfigurer implementation. Refactor.
Signed-off-by: Olga Maciaszek-Sharma <olga.maciaszek-sharma@broadcom.com>
This commit is contained in:
@@ -18,8 +18,6 @@ package org.springframework.cloud.client.loadbalancer;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.jspecify.annotations.NonNull;
|
||||
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
@@ -50,11 +48,9 @@ import static org.springframework.cloud.client.loadbalancer.LoadBalancerUriTools
|
||||
*/
|
||||
public class LoadBalancerRestClientHttpServiceGroupConfigurer implements RestClientHttpServiceGroupConfigurer {
|
||||
|
||||
// Make sure Boot's customisers run before
|
||||
// Make sure Boot's configurers run before
|
||||
private static final int ORDER = 10;
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(LoadBalancerRestClientHttpServiceGroupConfigurer.class);
|
||||
|
||||
private final ReactiveLoadBalancer.Factory<ServiceInstance> loadBalancerClientFactory;
|
||||
|
||||
private final SingletonSupplier<DeferringLoadBalancerInterceptor> loadBalancerInterceptorSupplier;
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.http.client.service.HttpClientServiceProperties;
|
||||
import org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpClientServiceProperties;
|
||||
import org.springframework.cloud.client.ServiceInstance;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
|
||||
@@ -70,11 +70,11 @@ public class LoadBalancerBeanPostProcessorAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean({ HttpClientServiceProperties.class, ReactiveLoadBalancer.Factory.class })
|
||||
@ConditionalOnBean({ ReactiveHttpClientServiceProperties.class, ReactiveLoadBalancer.Factory.class })
|
||||
@ConditionalOnMissingBean(LoadBalancerWebClientHttpServiceGroupConfigurer.class)
|
||||
LoadBalancerWebClientHttpServiceGroupConfigurer loadBalancerWebClientHttpServiceGroupConfigurer(
|
||||
ObjectProvider<DeferringLoadBalancerExchangeFilterFunction<LoadBalancedExchangeFilterFunction>> deferringExchangeFilterFunction,
|
||||
HttpClientServiceProperties properties,
|
||||
ReactiveHttpClientServiceProperties properties,
|
||||
ReactiveLoadBalancer.Factory<ServiceInstance> loadBalancerFactory) {
|
||||
return new LoadBalancerWebClientHttpServiceGroupConfigurer(deferringExchangeFilterFunction, properties,
|
||||
loadBalancerFactory);
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.client.loadbalancer.reactive;
|
||||
import java.net.URI;
|
||||
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpClientServiceProperties;
|
||||
import org.springframework.boot.autoconfigure.http.client.service.HttpClientServiceProperties;
|
||||
import org.springframework.cloud.client.ServiceInstance;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerProperties;
|
||||
@@ -47,18 +48,18 @@ import static org.springframework.cloud.client.loadbalancer.LoadBalancerUriTools
|
||||
*/
|
||||
public class LoadBalancerWebClientHttpServiceGroupConfigurer implements WebClientHttpServiceGroupConfigurer {
|
||||
|
||||
// Make sure Boot's customisers run before
|
||||
// Make sure Boot's configurers run before
|
||||
private static final int ORDER = 10;
|
||||
|
||||
private final ReactiveLoadBalancer.Factory<ServiceInstance> loadBalancerClientFactory;
|
||||
|
||||
private final SingletonSupplier<DeferringLoadBalancerExchangeFilterFunction<LoadBalancedExchangeFilterFunction>> loadBalancerFilterFunctionSupplier;
|
||||
|
||||
private final HttpClientServiceProperties clientServiceProperties;
|
||||
private final ReactiveHttpClientServiceProperties clientServiceProperties;
|
||||
|
||||
public LoadBalancerWebClientHttpServiceGroupConfigurer(
|
||||
ObjectProvider<DeferringLoadBalancerExchangeFilterFunction<LoadBalancedExchangeFilterFunction>> exchangeFilterFunctionProvider,
|
||||
HttpClientServiceProperties clientServiceProperties,
|
||||
ReactiveHttpClientServiceProperties clientServiceProperties,
|
||||
ReactiveLoadBalancer.Factory<ServiceInstance> loadBalancerClientFactory) {
|
||||
this.loadBalancerFilterFunctionSupplier = SingletonSupplier
|
||||
.ofNullable(exchangeFilterFunctionProvider.getIfAvailable());
|
||||
@@ -76,7 +77,8 @@ public class LoadBalancerWebClientHttpServiceGroupConfigurer implements WebClien
|
||||
}
|
||||
groups.configureClient((group, builder) -> {
|
||||
String groupName = group.name();
|
||||
HttpClientServiceProperties.Group groupProperties = clientServiceProperties.getGroup().get(groupName);
|
||||
ReactiveHttpClientServiceProperties.Group groupProperties = clientServiceProperties.getGroup()
|
||||
.get(groupName);
|
||||
if (groupProperties == null || groupProperties.getBaseUrl() == null) {
|
||||
URI baseUrl = constructBaseUrl(groupName);
|
||||
builder.baseUrl(String.valueOf(baseUrl));
|
||||
|
||||
Reference in New Issue
Block a user