diff --git a/api/src/main/java/io/grpc/LoadBalancer.java b/api/src/main/java/io/grpc/LoadBalancer.java index e97571c8c63..d2ed1ad9368 100644 --- a/api/src/main/java/io/grpc/LoadBalancer.java +++ b/api/src/main/java/io/grpc/LoadBalancer.java @@ -1044,8 +1044,7 @@ public void updateOobChannelAddresses(ManagedChannel channel, EquivalentAddressG * {@link ManagedChannelBuilder#forTarget} for the format of a target string. * *
The target string will be resolved by a {@link NameResolver} created according to the - * target string. The out-of-band channel doesn't have load-balancing. If multiple addresses - * are resolved for the target, the first working address will be used. + * target string. * *
The LoadBalancer is responsible for closing unused OOB channels, and closing all OOB * channels within {@link #shutdown}. @@ -1053,6 +1052,23 @@ public void updateOobChannelAddresses(ManagedChannel channel, EquivalentAddressG * @since 1.20.0 */ public ManagedChannel createResolvingOobChannel(String target) { + return createResolvingOobChannelBuilder(target).build(); + } + + /** + * Creates an out-of-band channel builder for LoadBalancer's own RPC needs, e.g., talking to an + * external load-balancer service, that is specified by a target string. See the documentation + * on {@link ManagedChannelBuilder#forTarget} for the format of a target string. + * + *
The target string will be resolved by a {@link NameResolver} created according to the + * target string. + * + *
The LoadBalancer is responsible for closing unused OOB channels, and closing all OOB
+ * channels within {@link #shutdown}.
+ *
+ * @since 1.31.0
+ */
+ public ManagedChannelBuilder> createResolvingOobChannelBuilder(String target) {
throw new UnsupportedOperationException("Not implemented");
}
diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java
index 05dee80c6ea..c23bd51e844 100644
--- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java
+++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java
@@ -60,6 +60,7 @@
import io.grpc.LoadBalancer.SubchannelPicker;
import io.grpc.LoadBalancer.SubchannelStateListener;
import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.NameResolver;
@@ -1260,7 +1261,7 @@ public void run() {
}
@Override
- public ManagedChannel createResolvingOobChannel(String target) {
+ public ManagedChannelBuilder> createResolvingOobChannelBuilder(String target) {
final class ResolvingOobChannelBuilder
extends AbstractManagedChannelImplBuilder