xds: promote CdsLoadBalancer2 (#7807)

This change migrates to the new LB hierarchy of CDS -> cluster_resolver -> priority -> cluster_impl -> ...
diff --git a/xds/src/main/java/io/grpc/xds/CdsLoadBalancerProvider.java b/xds/src/main/java/io/grpc/xds/CdsLoadBalancerProvider.java
index 7e28927..d2e3de1 100644
--- a/xds/src/main/java/io/grpc/xds/CdsLoadBalancerProvider.java
+++ b/xds/src/main/java/io/grpc/xds/CdsLoadBalancerProvider.java
@@ -55,7 +55,7 @@
 
   @Override
   public LoadBalancer newLoadBalancer(Helper helper) {
-    return new CdsLoadBalancer(helper);
+    return new CdsLoadBalancer2(helper);
   }
 
   @Override
diff --git a/xds/src/test/java/io/grpc/xds/CdsLoadBalancerProviderTest.java b/xds/src/test/java/io/grpc/xds/CdsLoadBalancerProviderTest.java
index b937fc6..0cd3d73 100644
--- a/xds/src/test/java/io/grpc/xds/CdsLoadBalancerProviderTest.java
+++ b/xds/src/test/java/io/grpc/xds/CdsLoadBalancerProviderTest.java
@@ -17,8 +17,15 @@
 package io.grpc.xds;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import io.grpc.LoadBalancer;
+import io.grpc.LoadBalancer.Helper;
+import io.grpc.LoadBalancerProvider;
+import io.grpc.LoadBalancerRegistry;
 import io.grpc.NameResolver.ConfigOrError;
+import io.grpc.SynchronizationContext;
 import io.grpc.internal.JsonParser;
 import io.grpc.xds.CdsLoadBalancerProvider.CdsConfig;
 import java.io.IOException;
@@ -45,4 +52,28 @@
     CdsConfig config = (CdsConfig) result.getConfig();
     assertThat(config.name).isEqualTo("cluster-foo.googleapis.com");
   }
+
+  @Test
+  public void provided() {
+    LoadBalancerProvider provider =
+        LoadBalancerRegistry.getDefaultRegistry().getProvider(XdsLbPolicies.CDS_POLICY_NAME);
+    assertThat(provider).isInstanceOf(CdsLoadBalancerProvider.class);
+  }
+
+  @Test
+  public void providesLoadBalancer()  {
+    Helper helper = mock(Helper.class);
+
+    SynchronizationContext syncContext = new SynchronizationContext(
+        new Thread.UncaughtExceptionHandler() {
+          @Override
+          public void uncaughtException(Thread t, Throwable e) {
+            throw new AssertionError(e);
+          }
+        });
+    when(helper.getSynchronizationContext()).thenReturn(syncContext);
+    LoadBalancerProvider provider = new CdsLoadBalancerProvider();
+    LoadBalancer loadBalancer = provider.newLoadBalancer(helper);
+    assertThat(loadBalancer).isInstanceOf(CdsLoadBalancer2.class);
+  }
 }