Revise names of callbacks in HttpServiceGroupConfigurer
Closes gh-34926
This commit is contained in:
@@ -64,53 +64,54 @@ public interface HttpServiceGroupConfigurer<CB> extends Ordered {
|
||||
Groups<CB> filter(Predicate<HttpServiceGroup> predicate);
|
||||
|
||||
/**
|
||||
* Configure the client of each {@link #filter(Predicate) filtered} group.
|
||||
*/
|
||||
void forEachClient(ForClient<CB> configurer);
|
||||
|
||||
/**
|
||||
* Configure the {@code HttpServiceProxyFactory} of each
|
||||
* Configure the client builder for each
|
||||
* {@link #filter(Predicate) filtered} group.
|
||||
*/
|
||||
void forEachProxyFactory(ForProxyFactory configurer);
|
||||
void forEachClient(ClientCallback<CB> callback);
|
||||
|
||||
/**
|
||||
* Configure the client and the {@code HttpServiceProxyFactory} of each
|
||||
* Configure the {@code HttpServiceProxyFactory} for each
|
||||
* {@link #filter(Predicate) filtered} group.
|
||||
*/
|
||||
void forEachGroup(ForGroup<CB> groupConfigurer);
|
||||
void forEachProxyFactory(ProxyFactoryCallback callback);
|
||||
|
||||
/**
|
||||
* Configure the client builder and {@code HttpServiceProxyFactory} for each
|
||||
* {@link #filter(Predicate) filtered} group.
|
||||
*/
|
||||
void forEachGroup(GroupCallback<CB> callback);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Callback to configure the client for a group.
|
||||
* Callback to configure the client for a given group.
|
||||
* @param <CB> the type of client builder, i.e. {@code RestClient} or {@code WebClient} builder.
|
||||
*/
|
||||
@FunctionalInterface
|
||||
interface ForClient<CB> {
|
||||
interface ClientCallback<CB> {
|
||||
|
||||
void configureClient(HttpServiceGroup group, CB clientBuilder);
|
||||
void withClient(HttpServiceGroup group, CB clientBuilder);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Callback to configure the {@code HttpServiceProxyFactory} for a group.
|
||||
* Callback to configure the {@code HttpServiceProxyFactory} for a given group.
|
||||
*/
|
||||
@FunctionalInterface
|
||||
interface ForProxyFactory {
|
||||
interface ProxyFactoryCallback {
|
||||
|
||||
void configureProxyFactory(HttpServiceGroup group, HttpServiceProxyFactory.Builder factoryBuilder);
|
||||
void withProxyFactory(HttpServiceGroup group, HttpServiceProxyFactory.Builder factoryBuilder);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Callback to configure the client and {@code HttpServiceProxyFactory} for a group.
|
||||
* Callback to configure the client and {@code HttpServiceProxyFactory} for a given group.
|
||||
* @param <CB> the type of client builder, i.e. {@code RestClient} or {@code WebClient} builder.
|
||||
*/
|
||||
@FunctionalInterface
|
||||
interface ForGroup<CB> {
|
||||
interface GroupCallback<CB> {
|
||||
|
||||
void configureGroup(HttpServiceGroup group,
|
||||
void withGroup(HttpServiceGroup group,
|
||||
CB clientBuilder, HttpServiceProxyFactory.Builder factoryBuilder);
|
||||
}
|
||||
|
||||
|
||||
@@ -194,8 +194,8 @@ public final class HttpServiceProxyRegistryFactoryBean
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <CB> void applyConfigurer(HttpServiceGroupConfigurer.ForGroup<CB> configurer) {
|
||||
configurer.configureGroup(this, (CB) this.clientBuilder, this.proxyFactoryBuilder);
|
||||
public <CB> void applyConfigurer(HttpServiceGroupConfigurer.GroupCallback<CB> callback) {
|
||||
callback.withGroup(this, (CB) this.clientBuilder, this.proxyFactoryBuilder);
|
||||
}
|
||||
|
||||
public Map<Class<?>, Object> createProxies() {
|
||||
@@ -247,20 +247,18 @@ public final class HttpServiceProxyRegistryFactoryBean
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEachClient(HttpServiceGroupConfigurer.ForClient<CB> configurer) {
|
||||
forEachGroup((group, clientBuilder, factoryBuilder) ->
|
||||
configurer.configureClient(group, clientBuilder));
|
||||
public void forEachClient(HttpServiceGroupConfigurer.ClientCallback<CB> callback) {
|
||||
forEachGroup((group, clientBuilder, factoryBuilder) -> callback.withClient(group, clientBuilder));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEachProxyFactory(HttpServiceGroupConfigurer.ForProxyFactory configurer) {
|
||||
forEachGroup((group, clientBuilder, factoryBuilder) ->
|
||||
configurer.configureProxyFactory(group, factoryBuilder));
|
||||
public void forEachProxyFactory(HttpServiceGroupConfigurer.ProxyFactoryCallback callback) {
|
||||
forEachGroup((group, clientBuilder, factoryBuilder) -> callback.withProxyFactory(group, factoryBuilder));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEachGroup(HttpServiceGroupConfigurer.ForGroup<CB> configurer) {
|
||||
this.groups.stream().filter(this.filter).forEach(group -> group.applyConfigurer(configurer));
|
||||
public void forEachGroup(HttpServiceGroupConfigurer.GroupCallback<CB> callback) {
|
||||
this.groups.stream().filter(this.filter).forEach(group -> group.applyConfigurer(callback));
|
||||
this.filter = this.defaultFilter; // reset the filter (terminal method)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestClient;
|
||||
import org.springframework.web.client.support.RestClientHttpServiceGroupConfigurer;
|
||||
import org.springframework.web.service.invoker.HttpServiceProxyFactory;
|
||||
import org.springframework.web.service.registry.echo.EchoA;
|
||||
import org.springframework.web.service.registry.echo.EchoB;
|
||||
import org.springframework.web.service.registry.greeting.GreetingA;
|
||||
@@ -96,4 +97,12 @@ public class HttpServiceProxyRegistryFactoryBeanTests {
|
||||
}
|
||||
}
|
||||
|
||||
static class MyC implements HttpServiceGroupConfigurer.GroupCallback<RestClient> {
|
||||
|
||||
@Override
|
||||
public void withGroup(HttpServiceGroup group, RestClient clientBuilder, HttpServiceProxyFactory.Builder factoryBuilder) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user