diff --git a/api/src/main/java/io/grpc/LoadBalancer.java b/api/src/main/java/io/grpc/LoadBalancer.java index 5617d279862..0db99f30c93 100644 --- a/api/src/main/java/io/grpc/LoadBalancer.java +++ b/api/src/main/java/io/grpc/LoadBalancer.java @@ -126,7 +126,13 @@ public abstract class LoadBalancer { * * @param resolvedAddresses the resolved server addresses, attributes, and config. * @since 1.21.0 + * @deprecated Please override {@code acceptResolvedAddresses()} instead. Also note that + * {@code canHandleEmptyAddressListFromNameResolution()} is deprecated as well as + * {@code acceptResolvedAddresses()} should now indicate the acceptance of the addresses with + * its return value. */ + @Deprecated + @SuppressWarnings("InlineMeSuggester") public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { if (recursionCount++ == 0) { // Note that the information about the addresses actually being accepted will be lost @@ -141,7 +147,9 @@ public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { * EquivalentAddressGroup} addresses should be considered equivalent but may be flattened into a * single list if needed. * - *
Implementations can choose to reject the given addresses by returning {@code false}. + *
Implementations can choose to reject the given addresses by returning {@code false}. Please + * note that an empty list of addresses could be provided and that the deprecated {@code + * canHandleEmptyAddressListFromNameResolution()} will be ignored when this method is overwritten. * *
Implementations should not modify the given {@code addresses}. * @@ -379,7 +387,17 @@ public void handleSubchannelState( * *
This method should always return a constant value. It's not specified when this will be * called. + * + *
Note that this method is only called when the deprecated {@code handleResolvedAddresses()} + * is overwritten. + * + * @deprecated Instead of overwriting this and {@code handleResolvedAddresses()} please only + * overwrite {@code acceptResolvedAddresses()}. In that method you can indicate if the + * addresses provided by the name resolver are acceptable with the {@code boolean} return + * value. */ + @Deprecated + @SuppressWarnings("InlineMeSuggester") public boolean canHandleEmptyAddressListFromNameResolution() { return false; } diff --git a/core/src/main/java/io/grpc/util/ForwardingLoadBalancer.java b/core/src/main/java/io/grpc/util/ForwardingLoadBalancer.java index cefcbf344ea..dfb11e6b938 100644 --- a/core/src/main/java/io/grpc/util/ForwardingLoadBalancer.java +++ b/core/src/main/java/io/grpc/util/ForwardingLoadBalancer.java @@ -30,6 +30,7 @@ public abstract class ForwardingLoadBalancer extends LoadBalancer { protected abstract LoadBalancer delegate(); @Override + @SuppressWarnings("deprecation") public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { delegate().handleResolvedAddresses(resolvedAddresses); } @@ -52,6 +53,7 @@ public void shutdown() { } @Override + @SuppressWarnings("deprecation") public boolean canHandleEmptyAddressListFromNameResolution() { return delegate().canHandleEmptyAddressListFromNameResolution(); } diff --git a/core/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java b/core/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java index 7cba3098ca6..f98ecce0266 100644 --- a/core/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java +++ b/core/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java @@ -43,6 +43,7 @@ public final class GracefulSwitchLoadBalancer extends ForwardingLoadBalancer { private final LoadBalancer defaultBalancer = new LoadBalancer() { @Override + @SuppressWarnings("deprecation") public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { // Most LB policies using this class will receive child policy configuration within the // service config, so they are naturally calling switchTo() just before diff --git a/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancer.java b/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancer.java index 14b06a3b57c..228986d671b 100644 --- a/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancer.java +++ b/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancer.java @@ -153,6 +153,7 @@ public void handleNameResolutionError(Status error) { } @Override + @SuppressWarnings("deprecation") public boolean canHandleEmptyAddressListFromNameResolution() { return true; }