diff --git a/api/src/main/java/io/grpc/LoadBalancer.java b/api/src/main/java/io/grpc/LoadBalancer.java index d5f44dafa5e..3e1141b36f6 100644 --- a/api/src/main/java/io/grpc/LoadBalancer.java +++ b/api/src/main/java/io/grpc/LoadBalancer.java @@ -156,15 +156,17 @@ public String toString() { private int recursionCount; /** - * Handles newly resolved server groups and metadata attributes from name resolution system. - * {@code servers} contained in {@link EquivalentAddressGroup} should be considered equivalent - * but may be flattened into a single list if needed. - * - *
Implementations should not modify the given {@code servers}. + * Handles newly resolved addresses and metadata attributes from name resolution system. + * Addresses in {@link EquivalentAddressGroup} should be considered equivalent but may be + * flattened into a single list if needed. * * @param resolvedAddresses the resolved server addresses, attributes, and config. * @since 1.21.0 + * + * @deprecated As of release 1.69.0, use instead + * {@link #acceptResolvedAddresses(ResolvedAddresses)} */ + @Deprecated public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { if (recursionCount++ == 0) { // Note that the information about the addresses actually being accepted will be lost @@ -179,12 +181,15 @@ 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 Status.UNAVAILABLE}. * - *
Implementations should not modify the given {@code addresses}. + *
Implementations should not modify the given {@code resolvedAddresses}.
*
* @param resolvedAddresses the resolved server addresses, attributes, and config.
- * @return {@code true} if the resolved addresses were accepted. {@code false} if rejected.
+ * @return {@code Status.OK} if the resolved addresses were accepted. {@code Status.UNAVAILABLE}
+ * if rejected.
+ *
* @since 1.49.0
*/
public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
diff --git a/interop-testing/src/main/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProvider.java b/interop-testing/src/main/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProvider.java
index 65f1c46892b..48034618a1f 100644
--- a/interop-testing/src/main/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProvider.java
+++ b/interop-testing/src/main/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProvider.java
@@ -111,10 +111,10 @@ protected LoadBalancer delegate() {
}
@Override
- public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
+ public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
helper.setRpcBehavior(
((RpcBehaviorConfig) resolvedAddresses.getLoadBalancingPolicyConfig()).rpcBehavior);
- delegateLb.handleResolvedAddresses(resolvedAddresses);
+ return delegateLb.acceptResolvedAddresses(resolvedAddresses);
}
@Override
diff --git a/interop-testing/src/test/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProviderTest.java b/interop-testing/src/test/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProviderTest.java
index f17ea059211..2cebb40f050 100644
--- a/interop-testing/src/test/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProviderTest.java
+++ b/interop-testing/src/test/java/io/grpc/testing/integration/RpcBehaviorLoadBalancerProviderTest.java
@@ -83,8 +83,8 @@ public void handleResolvedAddressesDelegated() {
RpcBehaviorLoadBalancer lb = new RpcBehaviorLoadBalancer(new RpcBehaviorHelper(mockHelper),
mockDelegateLb);
ResolvedAddresses resolvedAddresses = buildResolvedAddresses(buildConfig());
- lb.handleResolvedAddresses(resolvedAddresses);
- verify(mockDelegateLb).handleResolvedAddresses(resolvedAddresses);
+ lb.acceptResolvedAddresses(resolvedAddresses);
+ verify(mockDelegateLb).acceptResolvedAddresses(resolvedAddresses);
}
@Test
diff --git a/util/src/main/java/io/grpc/util/ForwardingLoadBalancer.java b/util/src/main/java/io/grpc/util/ForwardingLoadBalancer.java
index cefcbf344ea..639299b6b6d 100644
--- a/util/src/main/java/io/grpc/util/ForwardingLoadBalancer.java
+++ b/util/src/main/java/io/grpc/util/ForwardingLoadBalancer.java
@@ -29,9 +29,21 @@ public abstract class ForwardingLoadBalancer extends LoadBalancer {
*/
protected abstract LoadBalancer delegate();
- @Override
+ /**
+ * Handles newly resolved addresses and metadata attributes from name resolution system.
+ *
+ * @deprecated As of release 1.69.0,
+ * use instead {@link #acceptResolvedAddresses(ResolvedAddresses)}
+ */
+ @Deprecated
+ @SuppressWarnings("all")
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
- delegate().handleResolvedAddresses(resolvedAddresses);
+ acceptResolvedAddresses(resolvedAddresses);
+ }
+
+ @Override
+ public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
+ return delegate().acceptResolvedAddresses(resolvedAddresses);
}
@Override
diff --git a/util/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java b/util/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java
index 72c41886ad4..95c4edd297f 100644
--- a/util/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java
+++ b/util/src/main/java/io/grpc/util/GracefulSwitchLoadBalancer.java
@@ -49,6 +49,13 @@
@NotThreadSafe // Must be accessed in SynchronizationContext
public final class GracefulSwitchLoadBalancer extends ForwardingLoadBalancer {
private final LoadBalancer defaultBalancer = new LoadBalancer() {
+ /**
+ * Handles newly resolved addresses and metadata attributes from name resolution system.
+ *
+ * @deprecated As of release 1.69.0,
+ * use instead {@link #acceptResolvedAddresses(ResolvedAddresses)}
+ */
+ @Deprecated
@Override
public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
throw new AssertionError("real LB is called instead");
@@ -97,6 +104,13 @@ public GracefulSwitchLoadBalancer(Helper helper) {
this.helper = checkNotNull(helper, "helper");
}
+ /**
+ * Handles newly resolved addresses and metadata attributes from name resolution system.
+ *
+ * @deprecated As of release 1.69.0,
+ * use instead {@link #acceptResolvedAddresses(ResolvedAddresses)}
+ */
+ @Deprecated
@Override
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
Config config = (Config) resolvedAddresses.getLoadBalancingPolicyConfig();
diff --git a/util/src/test/java/io/grpc/util/ForwardingLoadBalancerTest.java b/util/src/test/java/io/grpc/util/ForwardingLoadBalancerTest.java
index f9b53400cea..afdbfd77dad 100644
--- a/util/src/test/java/io/grpc/util/ForwardingLoadBalancerTest.java
+++ b/util/src/test/java/io/grpc/util/ForwardingLoadBalancerTest.java
@@ -45,6 +45,8 @@ public void allMethodsForwarded() throws Exception {
mockDelegate,
new TestBalancer(),
Arrays.asList(
- LoadBalancer.class.getMethod("acceptResolvedAddresses", ResolvedAddresses.class)));
+ LoadBalancer.class.getMethod("acceptResolvedAddresses", ResolvedAddresses.class),
+ LoadBalancer.class.getMethod("handleResolvedAddresses", ResolvedAddresses.class))
+ );
}
}
diff --git a/util/src/test/java/io/grpc/util/GracefulSwitchLoadBalancerTest.java b/util/src/test/java/io/grpc/util/GracefulSwitchLoadBalancerTest.java
index 9a4f569c144..e7090a25ceb 100644
--- a/util/src/test/java/io/grpc/util/GracefulSwitchLoadBalancerTest.java
+++ b/util/src/test/java/io/grpc/util/GracefulSwitchLoadBalancerTest.java
@@ -140,6 +140,7 @@ public void canHandleEmptyAddressListFromNameResolutionForwardedToLatestPolicy()
assertThat(gracefulSwitchLb.canHandleEmptyAddressListFromNameResolution()).isTrue();
}
+ @Deprecated
@Test
public void handleResolvedAddressesAndNameResolutionErrorForwardedToLatestPolicy() {
ResolvedAddresses addresses = newFakeAddresses();
diff --git a/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java b/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java
index 479bde76ce5..7f4bdea0cfd 100644
--- a/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java
+++ b/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java
@@ -802,8 +802,9 @@ private final class FakeLoadBalancer extends LoadBalancer {
}
@Override
- public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
+ public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
config = resolvedAddresses.getLoadBalancingPolicyConfig();
+ return Status.OK;
}
@Override
diff --git a/xds/src/test/java/io/grpc/xds/MetadataLoadBalancerProvider.java b/xds/src/test/java/io/grpc/xds/MetadataLoadBalancerProvider.java
index 7b56f59451c..64841e71ff9 100644
--- a/xds/src/test/java/io/grpc/xds/MetadataLoadBalancerProvider.java
+++ b/xds/src/test/java/io/grpc/xds/MetadataLoadBalancerProvider.java
@@ -107,6 +107,13 @@ protected LoadBalancer delegate() {
return delegateLb;
}
+ /**
+ * Handles newly resolved addresses and metadata attributes from name resolution system.
+ *
+ * @deprecated As of release 1.69.0,
+ * use instead {@link #acceptResolvedAddresses(ResolvedAddresses)}
+ */
+ @Deprecated
@Override
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
MetadataLoadBalancerConfig config
diff --git a/xds/src/test/java/io/grpc/xds/PriorityLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/PriorityLoadBalancerTest.java
index 9823501dcd9..62dbd4d260b 100644
--- a/xds/src/test/java/io/grpc/xds/PriorityLoadBalancerTest.java
+++ b/xds/src/test/java/io/grpc/xds/PriorityLoadBalancerTest.java
@@ -145,6 +145,7 @@ public void tearDown() {
assertThat(fakeClock.getPendingTasks()).isEmpty();
}
+ @Deprecated
@Test
public void acceptResolvedAddresses() {
SocketAddress socketAddress = new InetSocketAddress(8080);
@@ -239,6 +240,7 @@ public void acceptResolvedAddresses() {
verify(barBalancer0, never()).shutdown();
}
+ @Deprecated
@Test
public void acceptResolvedAddresses_propagatesChildFailures() {
LoadBalancerProvider lbProvider = new CannedLoadBalancer.Provider();
@@ -332,6 +334,7 @@ public void handleNameResolutionError() {
verify(fooLb1).handleNameResolutionError(status);
}
+ @Deprecated
@Test
public void typicalPriorityFailOverFlow() {
PriorityChildConfig priorityChildConfig0 =
@@ -470,6 +473,7 @@ public PickResult pickSubchannel(PickSubchannelArgs args) {
verify(balancer3).shutdown();
}
+ @Deprecated
@Test
public void idleToConnectingDoesNotTriggerFailOver() {
PriorityChildConfig priorityChildConfig0 =
@@ -506,6 +510,7 @@ public void idleToConnectingDoesNotTriggerFailOver() {
assertThat(fooHelpers).hasSize(1);
}
+ @Deprecated
@Test
public void connectingResetFailOverIfSeenReadyOrIdleSinceTransientFailure() {
PriorityChildConfig priorityChildConfig0 =
@@ -548,6 +553,7 @@ public void connectingResetFailOverIfSeenReadyOrIdleSinceTransientFailure() {
assertThat(fooHelpers).hasSize(2);
}
+ @Deprecated
@Test
public void readyToConnectDoesNotFailOverButUpdatesPicker() {
PriorityChildConfig priorityChildConfig0 =
@@ -605,6 +611,7 @@ public PickResult pickSubchannel(PickSubchannelArgs args) {
assertThat(fooHelpers).hasSize(1);
}
+ @Deprecated
@Test
public void typicalPriorityFailOverFlowWithIdleUpdate() {
PriorityChildConfig priorityChildConfig0 =
@@ -713,6 +720,7 @@ public void typicalPriorityFailOverFlowWithIdleUpdate() {
verify(balancer3).shutdown();
}
+ @Deprecated
@Test
public void failover_propagatesChildFailures() {
LoadBalancerProvider lbProvider = new CannedLoadBalancer.Provider();
@@ -790,6 +798,7 @@ public void bypassReresolutionRequestsIfConfiged() {
verify(helper).refreshNameResolution();
}
+ @Deprecated
@Test
public void raceBetweenShutdownAndChildLbBalancingStateUpdate() {
PriorityChildConfig priorityChildConfig0 =
@@ -815,6 +824,7 @@ public void raceBetweenShutdownAndChildLbBalancingStateUpdate() {
verifyNoMoreInteractions(helper);
}
+ @Deprecated
@Test
public void noDuplicateOverallBalancingStateUpdate() {
FakeLoadBalancerProvider fakeLbProvider = new FakeLoadBalancerProvider();
@@ -915,6 +925,7 @@ static class FakeLoadBalancer extends LoadBalancer {
this.helper = helper;
}
+ @Deprecated
@Override
public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
helper.updateBalancingState(
diff --git a/xds/src/test/java/io/grpc/xds/WeightedTargetLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/WeightedTargetLoadBalancerTest.java
index cc6cb98412c..67cc6d3bc9f 100644
--- a/xds/src/test/java/io/grpc/xds/WeightedTargetLoadBalancerTest.java
+++ b/xds/src/test/java/io/grpc/xds/WeightedTargetLoadBalancerTest.java
@@ -179,6 +179,7 @@ public void tearDown() {
}
}
+ @Deprecated
@Test
public void handleResolvedAddresses() {
ArgumentCaptor