This commit is contained in:
Abhishek Agrawal 2025-07-24 08:09:21 -07:00 committed by GitHub
commit 0d65ad27ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 1 deletions

View File

@ -101,6 +101,15 @@ public final class Grpc {
return ManagedChannelRegistry.getDefaultRegistry().newChannelBuilder(target, creds);
}
/**
* Creates a channel builder with a target string, credentials and nameResolverRegistry.
*/
public static ManagedChannelBuilder<?> newChannelBuilder(String target,
ChannelCredentials creds, NameResolverRegistry nameResolverRegistry) {
return ManagedChannelRegistry.getDefaultRegistry().newChannelBuilder(nameResolverRegistry,
target, creds);
}
/**
* Creates a channel builder from a host, port, and credentials. The host and port are combined to
* form an authority string and then passed to {@link #newChannelBuilder(String,

View File

@ -155,7 +155,6 @@ public final class ManagedChannelRegistry {
return newChannelBuilder(NameResolverRegistry.getDefaultRegistry(), target, creds);
}
@VisibleForTesting
ManagedChannelBuilder<?> newChannelBuilder(NameResolverRegistry nameResolverRegistry,
String target, ChannelCredentials creds) {
NameResolverProvider nameResolverProvider = null;

View File

@ -28,7 +28,9 @@ import io.grpc.ManagedChannelBuilder;
import io.grpc.ManagedChannelProvider;
import io.grpc.ManagedChannelProvider.NewChannelBuilderResult;
import io.grpc.ManagedChannelRegistryAccessor;
import io.grpc.NameResolverRegistry;
import io.grpc.TlsChannelCredentials;
import io.grpc.internal.testing.FakeNameResolverProvider;
import io.grpc.stub.StreamObserver;
import io.grpc.testing.GrpcCleanupRule;
import io.grpc.testing.protobuf.SimpleRequest;
@ -120,6 +122,24 @@ public class UdsNettyChannelProviderTest {
channel.shutdownNow();
}
@Test
public void managedChannelRegistry_newChannelBuilderForNameResolverRegistry() {
Assume.assumeTrue(Utils.isEpollAvailable());
NameResolverRegistry nameResolverRegistry = new NameResolverRegistry();
DomainSocketAddress socketAddress = new DomainSocketAddress("test-server");
FakeNameResolverProvider fakeNameResolverProvider = new FakeNameResolverProvider(
"unix:///sock.sock", socketAddress);
nameResolverRegistry.register(fakeNameResolverProvider);
ManagedChannelBuilder<?> managedChannelBuilder
= Grpc.newChannelBuilder("unix:///sock.sock",
InsecureChannelCredentials.create(), nameResolverRegistry);
assertThat(managedChannelBuilder).isNotNull();
ManagedChannel channel = managedChannelBuilder.build();
assertThat(channel).isNotNull();
assertThat(channel.authority()).isEqualTo("/sock.sock");
channel.shutdownNow();
}
@Test
public void udsClientServerTestUsingProvider() throws IOException {
Assume.assumeTrue(Utils.isEpollAvailable());