mirror of https://github.com/grpc/grpc-java.git
xds: rename XdsClientRef to XdsClientPool
This commit is contained in:
parent
91853036e6
commit
6b04fc18f3
|
|
@ -65,7 +65,7 @@ public final class CdsLoadBalancer extends LoadBalancer {
|
|||
@Nullable
|
||||
private ClusterWatcher clusterWatcher;
|
||||
@Nullable
|
||||
private ObjectPool<XdsClient> xdsClientRef;
|
||||
private ObjectPool<XdsClient> xdsClientPool;
|
||||
@Nullable
|
||||
private XdsClient xdsClient;
|
||||
|
||||
|
|
@ -85,17 +85,17 @@ public final class CdsLoadBalancer extends LoadBalancer {
|
|||
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) {
|
||||
channelLogger.log(ChannelLogLevel.DEBUG, "Received ResolvedAddresses {0}", resolvedAddresses);
|
||||
Attributes attributes = resolvedAddresses.getAttributes();
|
||||
if (xdsClientRef == null) {
|
||||
xdsClientRef = resolvedAddresses.getAttributes().get(XdsAttributes.XDS_CLIENT_REF);
|
||||
if (xdsClientRef == null) {
|
||||
if (xdsClientPool == null) {
|
||||
xdsClientPool = resolvedAddresses.getAttributes().get(XdsAttributes.XDS_CLIENT_POOL);
|
||||
if (xdsClientPool == null) {
|
||||
// TODO(zdapeng): create a new xdsClient from bootstrap if no one exists.
|
||||
helper.updateBalancingState(
|
||||
TRANSIENT_FAILURE,
|
||||
new ErrorPicker(Status.UNAVAILABLE.withDescription(
|
||||
"XDS_CLIENT_REF attributes not available from resolve addresses")));
|
||||
"XDS_CLIENT_POOL attributes not available from resolve addresses")));
|
||||
return;
|
||||
}
|
||||
xdsClient = xdsClientRef.getObject();
|
||||
xdsClient = xdsClientPool.getObject();
|
||||
}
|
||||
|
||||
Map<String, ?> newRawLbConfig = attributes.get(ATTR_LOAD_BALANCING_CONFIG);
|
||||
|
|
@ -153,8 +153,8 @@ public final class CdsLoadBalancer extends LoadBalancer {
|
|||
channelLogger.log(ChannelLogLevel.DEBUG, "CDS load balancer is shutting down");
|
||||
|
||||
switchingLoadBalancer.shutdown();
|
||||
if (xdsClientRef != null) {
|
||||
xdsClientRef.returnObject(xdsClient);
|
||||
if (xdsClientPool != null) {
|
||||
xdsClientPool.returnObject(xdsClient);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ final class LookasideLb extends LoadBalancer {
|
|||
@Nullable
|
||||
private EndpointWatcher endpointWatcher;
|
||||
@Nullable
|
||||
private ObjectPool<XdsClient> xdsClientRef;
|
||||
private ObjectPool<XdsClient> xdsClientPool;
|
||||
@Nullable
|
||||
XdsClient xdsClient;
|
||||
// Only for EDS-only case.
|
||||
|
|
@ -154,21 +154,21 @@ final class LookasideLb extends LoadBalancer {
|
|||
newXdsConfig = (XdsConfig) cfg.getConfig();
|
||||
}
|
||||
|
||||
if (xdsClientRef == null) {
|
||||
// Init xdsClientRef and xdsClient.
|
||||
if (xdsClientPool == null) {
|
||||
// Init xdsClientPool and xdsClient.
|
||||
// There are two usecases:
|
||||
// 1. The EDS-only:
|
||||
// The name resolver resolves a ResolvedAddresses with an XdsConfig. Use the bootstrap
|
||||
// information to create a channel.
|
||||
// 2. Non EDS-only usecase:
|
||||
// XDS_CLIENT_REF attribute is available from ResolvedAddresses either from
|
||||
// XDS_CLIENT_POOL attribute is available from ResolvedAddresses either from
|
||||
// XdsNameResolver or CDS policy.
|
||||
//
|
||||
// We assume XdsConfig switching happens only within one usecase, and there is no switching
|
||||
// between different usecases.
|
||||
|
||||
xdsClientRef = attributes.get(XdsAttributes.XDS_CLIENT_REF);
|
||||
if (xdsClientRef == null) { // This is the EDS-only usecase.
|
||||
xdsClientPool = attributes.get(XdsAttributes.XDS_CLIENT_POOL);
|
||||
if (xdsClientPool == null) { // This is the EDS-only usecase.
|
||||
final BootstrapInfo bootstrapInfo;
|
||||
try {
|
||||
bootstrapInfo = bootstrapper.readBootstrap();
|
||||
|
|
@ -193,7 +193,7 @@ final class LookasideLb extends LoadBalancer {
|
|||
channel = initLbChannel(
|
||||
lookasideLbHelper, serverInfo.getServerUri(),
|
||||
serverInfo.getChannelCredentials());
|
||||
xdsClientRef = new RefCountedXdsClientObjectPool(new XdsClientFactory() {
|
||||
xdsClientPool = new RefCountedXdsClientObjectPool(new XdsClientFactory() {
|
||||
@Override
|
||||
XdsClient createXdsClient() {
|
||||
// TODO(zdapeng): Replace XdsComms2 with XdsClientImpl.
|
||||
|
|
@ -203,7 +203,7 @@ final class LookasideLb extends LoadBalancer {
|
|||
}
|
||||
});
|
||||
}
|
||||
xdsClient = xdsClientRef.getObject();
|
||||
xdsClient = xdsClientPool.getObject();
|
||||
}
|
||||
|
||||
// Note: childPolicy change will be handled in LocalityStore, to be implemented.
|
||||
|
|
@ -256,8 +256,8 @@ final class LookasideLb extends LoadBalancer {
|
|||
public void shutdown() {
|
||||
channelLogger.log(ChannelLogLevel.DEBUG, "EDS load balancer is shutting down");
|
||||
switchingLoadBalancer.shutdown();
|
||||
if (xdsClientRef != null) {
|
||||
xdsClientRef.returnObject(xdsClient);
|
||||
if (xdsClientPool != null) {
|
||||
xdsClientPool.returnObject(xdsClient);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,8 +76,8 @@ public final class XdsAttributes {
|
|||
Attributes.Key.create("io.grpc.xds.XdsAttributes.downstreamTlsContext");
|
||||
|
||||
@NameResolver.ResolutionResultAttr
|
||||
static final Attributes.Key<ObjectPool<XdsClient>> XDS_CLIENT_REF =
|
||||
Attributes.Key.create("io.grpc.xds.XdsAttributes.xdsClientRef");
|
||||
static final Attributes.Key<ObjectPool<XdsClient>> XDS_CLIENT_POOL =
|
||||
Attributes.Key.create("io.grpc.xds.XdsAttributes.xdsClientPool");
|
||||
|
||||
private XdsAttributes() {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ final class XdsNameResolver extends NameResolver {
|
|||
Attributes attrs =
|
||||
Attributes.newBuilder()
|
||||
.set(GrpcAttributes.NAME_RESOLVER_SERVICE_CONFIG, config)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientPool)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build();
|
||||
ResolutionResult result =
|
||||
ResolutionResult.newBuilder()
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ import org.mockito.MockitoAnnotations;
|
|||
@RunWith(JUnit4.class)
|
||||
public class CdsLoadBalancerTest {
|
||||
|
||||
private final RefCountedXdsClientObjectPool xdsClientRef = new RefCountedXdsClientObjectPool(
|
||||
private final RefCountedXdsClientObjectPool xdsClientPool = new RefCountedXdsClientObjectPool(
|
||||
new XdsClientFactory() {
|
||||
@Override
|
||||
XdsClient createXdsClient() {
|
||||
|
|
@ -159,7 +159,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
|
||||
|
|
@ -177,7 +177,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig1)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses1);
|
||||
|
|
@ -217,7 +217,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig1)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses1);
|
||||
|
|
@ -247,8 +247,8 @@ public class CdsLoadBalancerTest {
|
|||
null);
|
||||
ResolvedAddresses resolvedAddressesFoo = resolvedAddressesCaptor1.getValue();
|
||||
assertThat(resolvedAddressesFoo.getLoadBalancingPolicyConfig()).isEqualTo(expectedXdsConfig);
|
||||
assertThat(resolvedAddressesFoo.getAttributes().get(XdsAttributes.XDS_CLIENT_REF))
|
||||
.isSameInstanceAs(xdsClientRef);
|
||||
assertThat(resolvedAddressesFoo.getAttributes().get(XdsAttributes.XDS_CLIENT_POOL))
|
||||
.isSameInstanceAs(xdsClientPool);
|
||||
|
||||
SubchannelPicker picker1 = mock(SubchannelPicker.class);
|
||||
edsLbHelper1.updateBalancingState(ConnectivityState.READY, picker1);
|
||||
|
|
@ -261,7 +261,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig2)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses2);
|
||||
|
|
@ -293,8 +293,8 @@ public class CdsLoadBalancerTest {
|
|||
"lrsBar.googleapis.com");
|
||||
ResolvedAddresses resolvedAddressesBar = resolvedAddressesCaptor2.getValue();
|
||||
assertThat(resolvedAddressesBar.getLoadBalancingPolicyConfig()).isEqualTo(expectedXdsConfig);
|
||||
assertThat(resolvedAddressesBar.getAttributes().get(XdsAttributes.XDS_CLIENT_REF))
|
||||
.isSameInstanceAs(xdsClientRef);
|
||||
assertThat(resolvedAddressesBar.getAttributes().get(XdsAttributes.XDS_CLIENT_POOL))
|
||||
.isSameInstanceAs(xdsClientPool);
|
||||
|
||||
SubchannelPicker picker2 = mock(SubchannelPicker.class);
|
||||
edsLbHelper2.updateBalancingState(ConnectivityState.CONNECTING, picker2);
|
||||
|
|
@ -325,7 +325,7 @@ public class CdsLoadBalancerTest {
|
|||
cdsLoadBalancer.shutdown();
|
||||
verify(edsLoadBalancer2).shutdown();
|
||||
verify(xdsClient).cancelClusterDataWatch("bar.googleapis.com", clusterWatcher2);
|
||||
assertThat(xdsClientRef.xdsClient).isNull();
|
||||
assertThat(xdsClientPool.xdsClient).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -341,7 +341,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAttributes(
|
||||
Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig1)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses1);
|
||||
|
|
@ -376,7 +376,7 @@ public class CdsLoadBalancerTest {
|
|||
ArrayList<EquivalentAddressGroup> eagList = new ArrayList<>();
|
||||
eagList.add(new EquivalentAddressGroup(new InetSocketAddress("foo.com", 8080)));
|
||||
eagList.add(new EquivalentAddressGroup(InetSocketAddress.createUnresolved("localhost", 8081),
|
||||
Attributes.newBuilder().set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef).build()));
|
||||
Attributes.newBuilder().set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool).build()));
|
||||
LoadBalancer.CreateSubchannelArgs createSubchannelArgs =
|
||||
LoadBalancer.CreateSubchannelArgs.newBuilder()
|
||||
.setAddresses(eagList)
|
||||
|
|
@ -398,15 +398,15 @@ public class CdsLoadBalancerTest {
|
|||
capturedUpstreamTlsContext =
|
||||
capturedEag.getAttributes().get(XdsAttributes.ATTR_UPSTREAM_TLS_CONTEXT);
|
||||
assertThat(capturedUpstreamTlsContext).isSameInstanceAs(upstreamTlsContext);
|
||||
assertThat(capturedEag.getAttributes().get(XdsAttributes.XDS_CLIENT_REF))
|
||||
.isSameInstanceAs(xdsClientRef);
|
||||
assertThat(capturedEag.getAttributes().get(XdsAttributes.XDS_CLIENT_POOL))
|
||||
.isSameInstanceAs(xdsClientPool);
|
||||
|
||||
LoadBalancer edsLoadBalancer1 = edsLoadBalancers.poll();
|
||||
|
||||
cdsLoadBalancer.shutdown();
|
||||
verify(edsLoadBalancer1).shutdown();
|
||||
verify(xdsClient).cancelClusterDataWatch("foo.googleapis.com", clusterWatcher1);
|
||||
assertThat(xdsClientRef.xdsClient).isNull();
|
||||
assertThat(xdsClientPool.xdsClient).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -418,7 +418,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -470,7 +470,7 @@ public class CdsLoadBalancerTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
cdsLoadBalancer.handleResolvedAddresses(resolvedAddresses1);
|
||||
|
|
|
|||
|
|
@ -284,8 +284,8 @@ public class LookasideLbTest {
|
|||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
ObjectPool<XdsClient> xdsClientRef = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientRef.getObject();
|
||||
ObjectPool<XdsClient> xdsClientPool = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientPool.getObject();
|
||||
|
||||
String lbConfigRaw =
|
||||
"{'childPolicy' : [{'supported1' : {}}], 'edsServiceName' : 'edsServiceName1'}"
|
||||
|
|
@ -296,7 +296,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
|
||||
|
|
@ -340,8 +340,8 @@ public class LookasideLbTest {
|
|||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
ObjectPool<XdsClient> xdsClientRef = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientRef.getObject();
|
||||
ObjectPool<XdsClient> xdsClientPool = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientPool.getObject();
|
||||
|
||||
String lbConfigRaw =
|
||||
"{'childPolicy' : [{'supported1' : {}}], 'edsServiceName' : 'edsServiceName1'}"
|
||||
|
|
@ -352,7 +352,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(eags)
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
lookasideLb.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -374,7 +374,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(eags)
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
lookasideLb.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -397,7 +397,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(eags)
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
lookasideLb.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -425,7 +425,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(eags)
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
lookasideLb.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -447,7 +447,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(eags)
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
lookasideLb.handleResolvedAddresses(resolvedAddresses);
|
||||
|
|
@ -472,7 +472,7 @@ public class LookasideLbTest {
|
|||
lookasideLb.shutdown();
|
||||
verify(localityStore5).reset();
|
||||
|
||||
xdsClientRef.returnObject(xdsClientFromResolver);
|
||||
xdsClientPool.returnObject(xdsClientFromResolver);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -512,15 +512,15 @@ public class LookasideLbTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void handleResolvedAddress_withXdsClientRefAttributes() throws Exception {
|
||||
public void handleResolvedAddress_withxdsClientPoolAttributes() throws Exception {
|
||||
XdsClientFactory xdsClientFactory = new XdsClientFactory() {
|
||||
@Override
|
||||
XdsClient createXdsClient() {
|
||||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
ObjectPool<XdsClient> xdsClientRef = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientRef.getObject();
|
||||
ObjectPool<XdsClient> xdsClientPool = new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
XdsClient xdsClientFromResolver = xdsClientPool.getObject();
|
||||
|
||||
String lbConfigRaw =
|
||||
"{'childPolicy' : [{'supported1' : {}}], 'edsServiceName' : 'edsServiceName1'}"
|
||||
|
|
@ -531,7 +531,7 @@ public class LookasideLbTest {
|
|||
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
|
||||
.setAttributes(Attributes.newBuilder()
|
||||
.set(ATTR_LOAD_BALANCING_CONFIG, lbConfig)
|
||||
.set(XdsAttributes.XDS_CLIENT_REF, xdsClientRef)
|
||||
.set(XdsAttributes.XDS_CLIENT_POOL, xdsClientPool)
|
||||
.build())
|
||||
.build();
|
||||
|
||||
|
|
@ -551,7 +551,7 @@ public class LookasideLbTest {
|
|||
verify(helper).updateBalancingState(READY, picker);
|
||||
|
||||
// Mimic resolver shutdown
|
||||
xdsClientRef.returnObject(xdsClientFromResolver);
|
||||
xdsClientPool.returnObject(xdsClientFromResolver);
|
||||
verify(xdsClientFromResolver, never()).shutdown();
|
||||
lookasideLb.shutdown();
|
||||
verify(xdsClientFromResolver).cancelEndpointDataWatch("edsServiceName1", endpointWatcher);
|
||||
|
|
|
|||
|
|
@ -64,25 +64,25 @@ public class XdsClientTest {
|
|||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
RefCountedXdsClientObjectPool xdsClientRef =
|
||||
RefCountedXdsClientObjectPool xdsClientPool =
|
||||
new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
|
||||
// getObject once
|
||||
XdsClient xdsClient = xdsClientRef.getObject();
|
||||
XdsClient xdsClient = xdsClientPool.getObject();
|
||||
assertThat(xdsClient).isNotNull();
|
||||
// getObject twice
|
||||
assertThat(xdsClientRef.getObject()).isSameInstanceAs(xdsClient);
|
||||
assertThat(xdsClientPool.getObject()).isSameInstanceAs(xdsClient);
|
||||
// returnObject once
|
||||
assertThat(xdsClientRef.returnObject(xdsClient)).isNull();
|
||||
assertThat(xdsClientPool.returnObject(xdsClient)).isNull();
|
||||
verify(xdsClient, never()).shutdown();
|
||||
// returnObject twice
|
||||
assertThat(xdsClientRef.returnObject(xdsClient)).isNull();
|
||||
assertThat(xdsClientPool.returnObject(xdsClient)).isNull();
|
||||
verify(xdsClient).shutdown();
|
||||
assertThat(xdsClientRef.xdsClient).isNull();
|
||||
assertThat(xdsClientPool.xdsClient).isNull();
|
||||
|
||||
thrown.expect(IllegalStateException.class);
|
||||
// returnOject for the 3rd time
|
||||
xdsClientRef.returnObject(xdsClient);
|
||||
xdsClientPool.returnObject(xdsClient);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -93,13 +93,13 @@ public class XdsClientTest {
|
|||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
RefCountedXdsClientObjectPool xdsClientRef =
|
||||
RefCountedXdsClientObjectPool xdsClientPool =
|
||||
new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
|
||||
xdsClientRef.getObject();
|
||||
xdsClientPool.getObject();
|
||||
|
||||
thrown.expect(IllegalStateException.class);
|
||||
xdsClientRef.returnObject(mock(XdsClient.class));
|
||||
xdsClientPool.returnObject(mock(XdsClient.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -110,15 +110,15 @@ public class XdsClientTest {
|
|||
return mock(XdsClient.class);
|
||||
}
|
||||
};
|
||||
RefCountedXdsClientObjectPool xdsClientRef =
|
||||
RefCountedXdsClientObjectPool xdsClientPool =
|
||||
new RefCountedXdsClientObjectPool(xdsClientFactory);
|
||||
|
||||
XdsClient xdsClient1 = xdsClientRef.getObject();
|
||||
XdsClient xdsClient1 = xdsClientPool.getObject();
|
||||
verify(xdsClient1, never()).shutdown();
|
||||
assertThat(xdsClientRef.returnObject(xdsClient1)).isNull();
|
||||
assertThat(xdsClientPool.returnObject(xdsClient1)).isNull();
|
||||
verify(xdsClient1).shutdown();
|
||||
|
||||
XdsClient xdsClient2 = xdsClientRef.getObject();
|
||||
XdsClient xdsClient2 = xdsClientPool.getObject();
|
||||
assertThat(xdsClient2).isNotSameInstanceAs(xdsClient1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ public class XdsNameResolverTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void resolve_passXdsClientRefInResult() {
|
||||
public void resolve_passxdsClientPoolInResult() {
|
||||
xdsNameResolver.start(mockListener);
|
||||
assertThat(responseObservers).hasSize(1);
|
||||
StreamObserver<DiscoveryResponse> responseObserver = responseObservers.poll();
|
||||
|
|
@ -236,7 +236,7 @@ public class XdsNameResolverTest {
|
|||
ArgumentCaptor<ResolutionResult> resolutionResultCaptor = ArgumentCaptor.forClass(null);
|
||||
verify(mockListener).onResult(resolutionResultCaptor.capture());
|
||||
ResolutionResult result = resolutionResultCaptor.getValue();
|
||||
ObjectPool<XdsClient> xdsClientPool = result.getAttributes().get(XdsAttributes.XDS_CLIENT_REF);
|
||||
ObjectPool<XdsClient> xdsClientPool = result.getAttributes().get(XdsAttributes.XDS_CLIENT_POOL);
|
||||
assertThat(xdsClientPool).isNotNull();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue