diff options
author | Eric Anderson <ejona@google.com> | 2023-11-20 17:57:56 -0800 |
---|---|---|
committer | Eric Anderson <ejona@google.com> | 2023-11-27 10:30:36 -0800 |
commit | 24b3ca1ccb53667f85262b235cdb723dca088d03 (patch) | |
tree | 3827a2fec73f3ba747e18a175066144d313b2578 | |
parent | 6c55cd00226eda4ed186937592c3e51532af4031 (diff) | |
download | grpc-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.java | 6 |
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(); |