aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anderson <ejona@google.com>2023-11-20 17:57:56 -0800
committerEric Anderson <ejona@google.com>2023-11-27 10:30:36 -0800
commit24b3ca1ccb53667f85262b235cdb723dca088d03 (patch)
tree3827a2fec73f3ba747e18a175066144d313b2578
parent6c55cd00226eda4ed186937592c3e51532af4031 (diff)
downloadgrpc-grpc-java-24b3ca1ccb53667f85262b235cdb723dca088d03.tar.gz
core: Detect NameResolverProviders passed as Factories
This may help some to move closer to Providers. It especially helps cases where `NameResolverFactory`s aren't returning `InetSocketAddress`, as it allows them to override `getProducedSocketAddressTypes()`, which will now fail starting in 15fc70be.
-rw-r--r--core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java
index bf96af6eb..fde005737 100644
--- a/core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java
+++ b/core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java
@@ -382,7 +382,11 @@ public final class ManagedChannelImplBuilder
directServerAddress);
if (resolverFactory != null) {
NameResolverRegistry reg = new NameResolverRegistry();
- reg.register(new NameResolverFactoryToProviderFacade(resolverFactory));
+ if (resolverFactory instanceof NameResolverProvider) {
+ reg.register((NameResolverProvider) resolverFactory);
+ } else {
+ reg.register(new NameResolverFactoryToProviderFacade(resolverFactory));
+ }
this.nameResolverRegistry = reg;
} else {
this.nameResolverRegistry = NameResolverRegistry.getDefaultRegistry();