Adjust to changes in FW. Fix javadocs.
Signed-off-by: Olga Maciaszek-Sharma <olga.maciaszek-sharma@broadcom.com>
This commit is contained in:
@@ -34,11 +34,10 @@ import static org.springframework.cloud.client.loadbalancer.LoadBalancerUriTools
|
||||
* Load-balancer-specific {@link RestClientHttpServiceGroupConfigurer} implementation. If
|
||||
* the group {@code baseUrl} is {@code null}, sets up a {@code baseUrl} with LoadBalancer
|
||||
* {@code serviceId} -resolved from Interface Client {@code groupName} set as
|
||||
* {@code host}. If the group {@code baseUrl} is {@code null} or
|
||||
* {@link LoadBalancerUriTools#isServiceIdUrl(String, String)}, a
|
||||
* {@link DeferringLoadBalancerInterceptor} instance picked from application context is
|
||||
* added to the group's {@link RestClient.Builder} if available, allowing for the requests
|
||||
* to be load-balanced.
|
||||
* {@code host}. If the group {@code baseUrl} is {@code null} or has {@code lb} set as its
|
||||
* scheme, a {@link DeferringLoadBalancerInterceptor} instance picked from application
|
||||
* context is added to the group's {@link RestClient.Builder} if available, allowing for
|
||||
* the requests to be load-balanced.
|
||||
*
|
||||
* @author Olga Maciaszek-Sharma
|
||||
* @since 5.0.0
|
||||
@@ -69,23 +68,23 @@ public class LoadBalancerRestClientHttpServiceGroupConfigurer implements RestCli
|
||||
throw new IllegalStateException(
|
||||
DeferringLoadBalancerInterceptor.class.getSimpleName() + " bean not available.");
|
||||
}
|
||||
groups.configureClient((group, builder) -> {
|
||||
|
||||
groups.forEachGroup((group, clientBuilder, factoryBuilder) -> {
|
||||
String groupName = group.name();
|
||||
HttpClientServiceProperties.Group groupProperties = clientServiceProperties.getGroup().get(groupName);
|
||||
String baseUrlString = groupProperties == null ? null : groupProperties.getBaseUrl();
|
||||
URI existingBaseUrl = baseUrlString == null ? null : URI.create(baseUrlString);
|
||||
if (existingBaseUrl == null) {
|
||||
URI baseUrl = constructBaseUrl(groupName);
|
||||
builder.baseUrl(baseUrl);
|
||||
builder.requestInterceptor(loadBalancerInterceptor);
|
||||
clientBuilder.baseUrl(baseUrl);
|
||||
clientBuilder.requestInterceptor(loadBalancerInterceptor);
|
||||
}
|
||||
else if ("lb".equalsIgnoreCase(existingBaseUrl.getScheme())) {
|
||||
URI baseUrl = UriComponentsBuilder.fromUri(existingBaseUrl).scheme(DEFAULT_SCHEME).build().toUri();
|
||||
builder.baseUrl(baseUrl);
|
||||
builder.requestInterceptor(loadBalancerInterceptor);
|
||||
clientBuilder.baseUrl(baseUrl);
|
||||
clientBuilder.requestInterceptor(loadBalancerInterceptor);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,7 +21,6 @@ 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.loadbalancer.LoadBalancerUriTools;
|
||||
import org.springframework.util.function.SingletonSupplier;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
import org.springframework.web.reactive.function.client.support.WebClientHttpServiceGroupConfigurer;
|
||||
@@ -34,11 +33,10 @@ import static org.springframework.cloud.client.loadbalancer.LoadBalancerUriTools
|
||||
* Load-balancer-specific {@link WebClientHttpServiceGroupConfigurer} implementation. If
|
||||
* the group {@code baseUrl} is {@code null}, sets up a {@code baseUrl} with LoadBalancer
|
||||
* {@code serviceId} -resolved from Interface Client {@code groupName} set as
|
||||
* {@code host}. If the group {@code baseUrl} is {@code null} or
|
||||
* {@link LoadBalancerUriTools#isServiceIdUrl(String, String)}, a
|
||||
* {@link DeferringLoadBalancerExchangeFilterFunction} instance picked from application
|
||||
* context is added to the group's {@link WebClient.Builder} if available, allowing for
|
||||
* the requests to be load-balanced.
|
||||
* {@code host}. If the group {@code baseUrl} is {@code null} or has {@code lb} set as its
|
||||
* scheme, a {@link DeferringLoadBalancerExchangeFilterFunction} instance picked from
|
||||
* application context is added to the group's {@link WebClient.Builder} if available,
|
||||
* allowing for the requests to be load-balanced.
|
||||
*
|
||||
* @author Olga Maciaszek-Sharma
|
||||
* @since 5.0.0
|
||||
@@ -70,7 +68,7 @@ public class LoadBalancerWebClientHttpServiceGroupConfigurer implements WebClien
|
||||
throw new IllegalStateException(
|
||||
DeferringLoadBalancerExchangeFilterFunction.class.getSimpleName() + " bean not available.");
|
||||
}
|
||||
groups.configureClient((group, builder) -> {
|
||||
groups.forEachGroup((group, clientBuilder, factoryBuilder) -> {
|
||||
String groupName = group.name();
|
||||
ReactiveHttpClientServiceProperties.Group groupProperties = clientServiceProperties.getGroup()
|
||||
.get(groupName);
|
||||
@@ -78,16 +76,16 @@ public class LoadBalancerWebClientHttpServiceGroupConfigurer implements WebClien
|
||||
URI existingBaseUrl = baseUrlString == null ? null : URI.create(baseUrlString);
|
||||
if (existingBaseUrl == null) {
|
||||
URI baseUrl = constructBaseUrl(groupName);
|
||||
builder.baseUrl(String.valueOf(baseUrl));
|
||||
builder.filter(loadBalancerFilterFunction);
|
||||
clientBuilder.baseUrl(String.valueOf(baseUrl));
|
||||
clientBuilder.filter(loadBalancerFilterFunction);
|
||||
}
|
||||
else if ("lb".equalsIgnoreCase(existingBaseUrl.getScheme())) {
|
||||
String baseUrl = UriComponentsBuilder.fromUri(existingBaseUrl)
|
||||
.scheme(DEFAULT_SCHEME)
|
||||
.build()
|
||||
.toUriString();
|
||||
builder.baseUrl(baseUrl);
|
||||
builder.filter(loadBalancerFilterFunction);
|
||||
clientBuilder.baseUrl(baseUrl);
|
||||
clientBuilder.filter(loadBalancerFilterFunction);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@ package org.springframework.cloud.client.loadbalancer;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -117,26 +115,20 @@ class LoadBalancerRestClientHttpServiceGroupConfigurerTests {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureClient(Consumer<RestClient.Builder> clientConfigurer) {
|
||||
public void forEachClient(HttpServiceGroupConfigurer.ForClient<RestClient.Builder> configurer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureClient(BiConsumer<HttpServiceGroup, RestClient.Builder> clientConfigurer) {
|
||||
clientConfigurer.accept(new TestGroup(GROUP_NAME, HttpServiceGroup.ClientType.REST_CLIENT, new HashSet<>()),
|
||||
builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureProxyFactory(
|
||||
BiConsumer<HttpServiceGroup, HttpServiceProxyFactory.Builder> proxyFactoryConfigurer) {
|
||||
public void forEachProxyFactory(HttpServiceGroupConfigurer.ForProxyFactory configurer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(BiConsumer<HttpServiceGroup, RestClient.Builder> clientConfigurer,
|
||||
BiConsumer<HttpServiceGroup, HttpServiceProxyFactory.Builder> proxyFactoryConfigurer) {
|
||||
|
||||
public void forEachGroup(HttpServiceGroupConfigurer.ForGroup<RestClient.Builder> groupConfigurer) {
|
||||
groupConfigurer.configureGroup(
|
||||
new TestGroup(GROUP_NAME, HttpServiceGroup.ClientType.REST_CLIENT, new HashSet<>()), builder,
|
||||
HttpServiceProxyFactory.builder());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@ package org.springframework.cloud.client.loadbalancer.reactive;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -107,6 +105,7 @@ class LoadBalancerWebClientHttpServiceGroupConfigurerTests {
|
||||
|
||||
WebClient.Builder builder = WebClient.builder();
|
||||
|
||||
//
|
||||
@Override
|
||||
public HttpServiceGroupConfigurer.Groups<WebClient.Builder> filterByName(String... groupNames) {
|
||||
throw new UnsupportedOperationException("Please, implement me.");
|
||||
@@ -118,26 +117,20 @@ class LoadBalancerWebClientHttpServiceGroupConfigurerTests {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureClient(Consumer<WebClient.Builder> clientConfigurer) {
|
||||
public void forEachClient(HttpServiceGroupConfigurer.ForClient<WebClient.Builder> configurer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureClient(BiConsumer<HttpServiceGroup, WebClient.Builder> clientConfigurer) {
|
||||
clientConfigurer.accept(new TestGroup(GROUP_NAME, HttpServiceGroup.ClientType.WEB_CLIENT, new HashSet<>()),
|
||||
builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureProxyFactory(
|
||||
BiConsumer<HttpServiceGroup, HttpServiceProxyFactory.Builder> proxyFactoryConfigurer) {
|
||||
public void forEachProxyFactory(HttpServiceGroupConfigurer.ForProxyFactory configurer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(BiConsumer<HttpServiceGroup, WebClient.Builder> clientConfigurer,
|
||||
BiConsumer<HttpServiceGroup, HttpServiceProxyFactory.Builder> proxyFactoryConfigurer) {
|
||||
|
||||
public void forEachGroup(HttpServiceGroupConfigurer.ForGroup<WebClient.Builder> groupConfigurer) {
|
||||
groupConfigurer.configureGroup(
|
||||
new TestGroup(GROUP_NAME, HttpServiceGroup.ClientType.WEB_CLIENT, new HashSet<>()), builder,
|
||||
HttpServiceProxyFactory.builder());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user