Add path parameter to GrpcChannelConfigurer

This commit is contained in:
Dave Syer
2024-09-12 12:28:44 +01:00
parent e9e2466714
commit 1bdcee5930
3 changed files with 12 additions and 26 deletions

View File

@@ -30,6 +30,8 @@ import io.grpc.ManagedChannelBuilder;
public class DefaultGrpcChannelFactory implements GrpcChannelFactory, DisposableBean {
private final Map<String, ManagedChannelBuilder<?>> builders = new ConcurrentHashMap<>();
private final Map<String, ManagedChannel> channels = new ConcurrentHashMap<>();
private final List<GrpcChannelConfigurer> configurers = new ArrayList<>();
@@ -43,11 +45,15 @@ public class DefaultGrpcChannelFactory implements GrpcChannelFactory, Disposable
@Override
public ManagedChannelBuilder<?> createChannel(String authority) {
ManagedChannelBuilder<?> target = Grpc.newChannelBuilder(authority, InsecureChannelCredentials.create());
for (GrpcChannelConfigurer configurer : configurers) {
configurer.accept(target);
}
ManagedChannelBuilder<?> target = builders.computeIfAbsent(authority, path -> {
ManagedChannelBuilder<?> builder = Grpc.newChannelBuilder(path, InsecureChannelCredentials.create());
for (GrpcChannelConfigurer configurer : configurers) {
configurer.accept(path, builder);
}
return builder;
});
return new DisposableChannelBuilder(authority, target);
}
@Override

View File

@@ -15,21 +15,11 @@
*/
package org.springframework.grpc.client;
import java.util.Objects;
import java.util.function.Consumer;
import java.util.function.BiConsumer;
import io.grpc.ManagedChannelBuilder;
@FunctionalInterface
public interface GrpcChannelConfigurer extends Consumer<ManagedChannelBuilder<?>> {
@Override
default GrpcChannelConfigurer andThen(final Consumer<? super ManagedChannelBuilder<?>> after) {
Objects.requireNonNull(after);
return t -> {
accept(t);
after.accept(t);
};
}
public interface GrpcChannelConfigurer extends BiConsumer<String, ManagedChannelBuilder<?>> {
}

View File

@@ -15,7 +15,6 @@
*/
package org.springframework.grpc.server;
import java.util.Objects;
import java.util.function.Consumer;
import io.grpc.ServerBuilder;
@@ -23,13 +22,4 @@ import io.grpc.ServerBuilder;
@FunctionalInterface
public interface GrpcServerConfigurer extends Consumer<ServerBuilder<?>> {
@Override
default GrpcServerConfigurer andThen(final Consumer<? super ServerBuilder<?>> after) {
Objects.requireNonNull(after);
return t -> {
accept(t);
after.accept(t);
};
}
}