From 1b5ab2cfd0f83f9fcb96dad1225d44f84aee4da7 Mon Sep 17 00:00:00 2001 From: AgraVator Date: Mon, 17 Feb 2025 14:26:37 +0530 Subject: [PATCH 1/2] Adds Grpc.newManagedChannel(String, ChannelCredentials, NameResolverRegistry) --- api/src/main/java/io/grpc/Grpc.java | 9 +++++++++ .../io/grpc/netty/UdsNettyChannelProviderTest.java | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/api/src/main/java/io/grpc/Grpc.java b/api/src/main/java/io/grpc/Grpc.java index baa9f5f0ab6..4d6d899a3b5 100644 --- a/api/src/main/java/io/grpc/Grpc.java +++ b/api/src/main/java/io/grpc/Grpc.java @@ -101,6 +101,15 @@ public static ManagedChannelBuilder newChannelBuilder( return ManagedChannelRegistry.getDefaultRegistry().newChannelBuilder(target, creds); } + /** + * Creates a channel builder with a target string, credentials and nameResolverRegistry. + */ + public static ManagedChannelBuilder newChannelBuilderForNameResolverRegistry(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, diff --git a/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java b/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java index e0c3d5a8525..4e0497e82ac 100644 --- a/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java +++ b/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java @@ -28,6 +28,7 @@ import io.grpc.ManagedChannelProvider; import io.grpc.ManagedChannelProvider.NewChannelBuilderResult; import io.grpc.ManagedChannelRegistryAccessor; +import io.grpc.NameResolverRegistry; import io.grpc.TlsChannelCredentials; import io.grpc.stub.StreamObserver; import io.grpc.testing.GrpcCleanupRule; @@ -120,6 +121,19 @@ public void managedChannelRegistry_newChannelBuilder() { channel.shutdownNow(); } + @Test + public void managedChannelRegistry_newChannelBuilderForNameResolverRegistry() { + Assume.assumeTrue(Utils.isEpollAvailable()); + ManagedChannelBuilder managedChannelBuilder + = Grpc.newChannelBuilderForNameResolverRegistry("unix:///sock.sock", + InsecureChannelCredentials.create(), NameResolverRegistry.getDefaultRegistry()); + 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()); From 67548a930bcbb69e578887359bb4100003d4d82a Mon Sep 17 00:00:00 2001 From: AgraVator Date: Wed, 19 Feb 2025 11:18:09 +0530 Subject: [PATCH 2/2] 1. refactors method name to make it overloaded 2. removes visibleForTesting 3. improves the test case --- api/src/main/java/io/grpc/Grpc.java | 2 +- api/src/main/java/io/grpc/ManagedChannelRegistry.java | 1 - .../io/grpc/netty/UdsNettyChannelProviderTest.java | 10 ++++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/io/grpc/Grpc.java b/api/src/main/java/io/grpc/Grpc.java index 4d6d899a3b5..280eeaec825 100644 --- a/api/src/main/java/io/grpc/Grpc.java +++ b/api/src/main/java/io/grpc/Grpc.java @@ -104,7 +104,7 @@ public static ManagedChannelBuilder newChannelBuilder( /** * Creates a channel builder with a target string, credentials and nameResolverRegistry. */ - public static ManagedChannelBuilder newChannelBuilderForNameResolverRegistry(String target, + public static ManagedChannelBuilder newChannelBuilder(String target, ChannelCredentials creds, NameResolverRegistry nameResolverRegistry) { return ManagedChannelRegistry.getDefaultRegistry().newChannelBuilder(nameResolverRegistry, target, creds); diff --git a/api/src/main/java/io/grpc/ManagedChannelRegistry.java b/api/src/main/java/io/grpc/ManagedChannelRegistry.java index aed5eca9abf..285d87b1e29 100644 --- a/api/src/main/java/io/grpc/ManagedChannelRegistry.java +++ b/api/src/main/java/io/grpc/ManagedChannelRegistry.java @@ -155,7 +155,6 @@ ManagedChannelBuilder newChannelBuilder(String target, ChannelCredentials cre return newChannelBuilder(NameResolverRegistry.getDefaultRegistry(), target, creds); } - @VisibleForTesting ManagedChannelBuilder newChannelBuilder(NameResolverRegistry nameResolverRegistry, String target, ChannelCredentials creds) { NameResolverProvider nameResolverProvider = null; diff --git a/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java b/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java index 4e0497e82ac..8ac42d2c851 100644 --- a/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java +++ b/netty/src/test/java/io/grpc/netty/UdsNettyChannelProviderTest.java @@ -30,6 +30,7 @@ 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; @@ -124,9 +125,14 @@ public void managedChannelRegistry_newChannelBuilder() { @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.newChannelBuilderForNameResolverRegistry("unix:///sock.sock", - InsecureChannelCredentials.create(), NameResolverRegistry.getDefaultRegistry()); + = Grpc.newChannelBuilder("unix:///sock.sock", + InsecureChannelCredentials.create(), nameResolverRegistry); assertThat(managedChannelBuilder).isNotNull(); ManagedChannel channel = managedChannelBuilder.build(); assertThat(channel).isNotNull();