This is an automated email from the ASF dual-hosted git repository.

jdyer pushed a commit to branch feature/SOLR-17771
in repository https://gitbox.apache.org/repos/asf/solr.git

commit f55e6e430d80a1321335fa287d191e4de01b3837
Author: jdyer1 <[email protected]>
AuthorDate: Mon Oct 13 15:50:57 2025 -0500

    remove generics; test with jdk client
---
 .../src/java/org/apache/solr/cli/CLIUtils.java     |  6 +-
 .../src/java/org/apache/solr/cli/ExportTool.java   |  2 +-
 .../java/org/apache/solr/cli/HealthcheckTool.java  |  2 +-
 .../java/org/apache/solr/cli/RunExampleTool.java   |  2 +-
 .../java/org/apache/solr/cloud/ZkController.java   |  4 +-
 .../solr/client/solrj/io/SolrClientCache.java      |  4 +-
 .../client/solrj/impl/SolrClientCloudManager.java  |  4 +-
 .../solrj/impl/SolrClientNodeStateProvider.java    | 10 +--
 .../client/solrj/impl/CloudHttp2SolrClient.java    | 73 +++++++++++-----------
 .../impl/CloudHttp2SolrClientBuilderTest.java      | 48 +++++++-------
 .../CloudHttp2SolrClientMultiConstructorTest.java  |  4 +-
 .../solrj/impl/CloudHttp2SolrClientRetryTest.java  |  2 +-
 .../solrj/impl/CloudHttp2SolrClientTest.java       | 41 +++++++++---
 .../solrj/impl/CloudSolrClientBuilderTest.java     | 12 ++--
 .../impl/CloudSolrClientMultiConstructorTest.java  |  4 +-
 .../client/solrj/impl/HttpClusterStateSSLTest.java |  4 +-
 .../impl/SendUpdatesToLeadersOverrideTest.java     |  6 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |  2 +-
 18 files changed, 125 insertions(+), 105 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java 
b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
index fccbd4a84b3..c04e02fc160 100644
--- a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
+++ b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
@@ -261,13 +261,13 @@ public final class CLIUtils {
         .build();
   }
 
-  public static CloudHttp2SolrClient<Http2SolrClient> 
getCloudHttp2SolrClient(String zkHost) {
+  public static CloudHttp2SolrClient getCloudHttp2SolrClient(String zkHost) {
     return getCloudHttp2SolrClient(zkHost, null);
   }
 
-  public static CloudHttp2SolrClient<Http2SolrClient> getCloudHttp2SolrClient(
+  public static CloudHttp2SolrClient getCloudHttp2SolrClient(
       String zkHost, Http2SolrClient.Builder builder) {
-    return new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(zkHost), Optional.empty())
+    return new CloudHttp2SolrClient.Builder(Collections.singletonList(zkHost), 
Optional.empty())
         .withHttpClientBuilder(builder)
         .build();
   }
diff --git a/solr/core/src/java/org/apache/solr/cli/ExportTool.java 
b/solr/core/src/java/org/apache/solr/cli/ExportTool.java
index e2392563563..af2cf6ba590 100644
--- a/solr/core/src/java/org/apache/solr/cli/ExportTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/ExportTool.java
@@ -256,7 +256,7 @@ public class ExportTool extends ToolBase {
           new 
Http2SolrClient.Builder().withOptionalBasicAuthCredentials(credentials);
 
       solrClient =
-          new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(baseurl))
+          new CloudHttp2SolrClient.Builder(Collections.singletonList(baseurl))
               .withHttpClientBuilder(builder)
               .build();
       NamedList<Object> response =
diff --git a/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java 
b/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java
index c17f85c571d..bcca704384b 100644
--- a/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java
@@ -89,7 +89,7 @@ public class HealthcheckTool extends ToolBase {
       CLIO.err("Healthcheck tool only works in Solr Cloud mode.");
       runtime.exit(1);
     }
-    try (CloudHttp2SolrClient<Http2SolrClient> cloudSolrClient = 
CLIUtils.getCloudHttp2SolrClient(zkHost)) {
+    try (CloudHttp2SolrClient cloudSolrClient = 
CLIUtils.getCloudHttp2SolrClient(zkHost)) {
       echoIfVerbose("\nConnecting to ZooKeeper at " + zkHost + " ...");
       cloudSolrClient.connect();
       runCloudTool(cloudSolrClient, cli);
diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java 
b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
index 4e15d459f99..148fa4df0ea 100644
--- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
@@ -631,7 +631,7 @@ public class RunExampleTool extends ToolBase {
   /** wait until the number of live nodes == numNodes. */
   protected void waitToSeeLiveNodes(String zkHost, int numNodes) {
     try (CloudSolrClient cloudClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(zkHost), Optional.empty()).build()) {
+        new CloudHttp2SolrClient.Builder(Collections.singletonList(zkHost), 
Optional.empty()).build()) {
       cloudClient.connect();
       Set<String> liveNodes = cloudClient.getClusterState().getLiveNodes();
       int numLiveNodes = (liveNodes != null) ? liveNodes.size() : 0;
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java 
b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index f6be7f9a18a..603381ef99c 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -207,7 +207,7 @@ public class ZkController implements Closeable {
   public final ZkStateReader zkStateReader;
   private SolrCloudManager cloudManager;
 
-  private CloudHttp2SolrClient<Http2SolrClient> cloudSolrClient;
+  private CloudHttp2SolrClient cloudSolrClient;
 
   private final ExecutorService zkConnectionListenerCallbackExecutor =
       ExecutorUtil.newMDCAwareSingleThreadExecutor(
@@ -963,7 +963,7 @@ public class ZkController implements Closeable {
         return cloudManager;
       }
       cloudSolrClient =
-          new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(new ZkClientClusterStateProvider(zkStateReader))
+          new CloudHttp2SolrClient.Builder(new 
ZkClientClusterStateProvider(zkStateReader))
               .withHttpClient(cc.getDefaultHttpSolrClient())
               .build();
       cloudManager = new SolrClientCloudManager(cloudSolrClient, 
cc.getObjectCache());
diff --git 
a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
 
b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
index 6138a6be7fa..ec94c7d5aa9 100644
--- 
a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
+++ 
b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
@@ -96,13 +96,13 @@ public class SolrClientCache implements Closeable {
     return client;
   }
 
-  private static CloudHttp2SolrClient<Http2SolrClient> newCloudHttp2SolrClient(
+  private static CloudHttp2SolrClient newCloudHttp2SolrClient(
       String zkHost,
       Http2SolrClient http2SolrClient,
       boolean canUseACLs,
       String basicAuthCredentials) {
     final List<String> hosts = List.of(zkHost);
-    var builder = new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(hosts, Optional.empty());
+    var builder = new CloudHttp2SolrClient.Builder(hosts, Optional.empty());
     builder.canUseZkACLs(canUseACLs);
     // using internal builder to ensure the internal client gets closed
     builder =
diff --git 
a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientCloudManager.java
 
b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientCloudManager.java
index 0efd116869a..30afd6bed57 100644
--- 
a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientCloudManager.java
+++ 
b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientCloudManager.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 public class SolrClientCloudManager implements SolrCloudManager {
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private final CloudHttp2SolrClient<Http2SolrClient> cloudSolrClient;
+  private final CloudHttp2SolrClient cloudSolrClient;
   private final ZkDistribStateManager stateManager;
   private final ZkStateReader zkStateReader;
   private final SolrZkClient zkClient;
@@ -41,7 +41,7 @@ public class SolrClientCloudManager implements 
SolrCloudManager {
   private final boolean closeObjectCache;
   private volatile boolean isClosed;
 
-  public SolrClientCloudManager(CloudHttp2SolrClient<Http2SolrClient> client, 
ObjectCache objectCache) {
+  public SolrClientCloudManager(CloudHttp2SolrClient client, ObjectCache 
objectCache) {
     this.cloudSolrClient = client;
     this.zkStateReader = ZkStateReader.from(client);
     this.zkClient = zkStateReader.getZkClient();
diff --git 
a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientNodeStateProvider.java
 
b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientNodeStateProvider.java
index 51ab3540e00..dabe6b80bd3 100644
--- 
a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientNodeStateProvider.java
+++ 
b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/SolrClientNodeStateProvider.java
@@ -52,14 +52,14 @@ import org.slf4j.LoggerFactory;
 public class SolrClientNodeStateProvider implements NodeStateProvider, 
MapWriter {
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private final CloudHttp2SolrClient<Http2SolrClient> solrClient;
+  private final CloudHttp2SolrClient solrClient;
   protected final Map<String, Map<String, Map<String, List<Replica>>>>
       nodeVsCollectionVsShardVsReplicaInfo = new HashMap<>();
 
   @SuppressWarnings({"rawtypes"})
   private Map<String, Map> nodeVsTags = new HashMap<>();
 
-  public SolrClientNodeStateProvider(CloudHttp2SolrClient<Http2SolrClient> 
solrClient) {
+  public SolrClientNodeStateProvider(CloudHttp2SolrClient solrClient) {
     this.solrClient = solrClient;
     try {
       readReplicaDetails();
@@ -222,7 +222,7 @@ public class SolrClientNodeStateProvider implements 
NodeStateProvider, MapWriter
   static class RemoteCallCtx {
 
     ZkClientClusterStateProvider zkClientClusterStateProvider;
-    CloudHttp2SolrClient <Http2SolrClient>cloudSolrClient;
+    CloudHttp2SolrClient cloudSolrClient;
     public final Map<String, Object> tags = new HashMap<>();
     private final String node;
     public Map<String, Object> session;
@@ -234,7 +234,7 @@ public class SolrClientNodeStateProvider implements 
NodeStateProvider, MapWriter
       return true;
     }
 
-    public RemoteCallCtx(String node, CloudHttp2SolrClient<Http2SolrClient> 
cloudSolrClient) {
+    public RemoteCallCtx(String node, CloudHttp2SolrClient cloudSolrClient) {
       this.node = node;
       this.cloudSolrClient = cloudSolrClient;
       this.zkClientClusterStateProvider =
@@ -289,7 +289,7 @@ public class SolrClientNodeStateProvider implements 
NodeStateProvider, MapWriter
       request.setResponseParser(new JavaBinResponseParser());
 
       try {
-        return cloudSolrClient.getHttpClient().requestWithBaseUrl(url, 
request::process);
+        return ((Http2SolrClient) 
cloudSolrClient.getHttpClient()).requestWithBaseUrl(url, request::process); 
//NOCOMMIT
       } catch (SolrServerException | IOException e) {
         throw new SolrException(ErrorCode.SERVER_ERROR, "Fetching replica 
metrics failed", e);
       }
diff --git 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
index e4fbe3f7941..d9b6aee7887 100644
--- 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
+++ 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
@@ -37,11 +37,11 @@ import org.apache.solr.common.SolrException;
  * @since solr 8.0
  */
 @SuppressWarnings("serial")
-public class CloudHttp2SolrClient<C extends HttpSolrClientBase> extends 
CloudSolrClient {
+public class CloudHttp2SolrClient extends CloudSolrClient {
 
   private final ClusterStateProvider stateProvider;
-  private final LBHttp2SolrClient<C> lbClient;
-  private final C myClient;
+  private final LBHttp2SolrClient<HttpSolrClientBase> lbClient;
+  private final HttpSolrClientBase myClient;
   private final boolean clientIsInternal;
 
   /**
@@ -52,7 +52,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
    *
    * @param builder a {@link Http2SolrClient.Builder} with the options used to 
create the client.
    */
-  protected CloudHttp2SolrClient(Builder<?,?> builder) {
+  protected CloudHttp2SolrClient(Builder builder) {
     super(builder.shardLeadersOnly, builder.parallelUpdates, 
builder.directUpdatesToLeadersOnly);
     this.clientIsInternal = builder.httpClient == null;
     this.myClient = createOrGetHttpClientFromBuilder(builder);
@@ -75,18 +75,18 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
 
     this.lbClient = new LBHttp2SolrClient.Builder<>(myClient).build();
   }
-  @SuppressWarnings("unchecked")
-  private C createOrGetHttpClientFromBuilder(Builder<?,?> builder) {
+
+  private HttpSolrClientBase createOrGetHttpClientFromBuilder(Builder builder) 
{
     if (builder.httpClient != null) {
-      return (C) builder.httpClient;
+      return builder.httpClient;
     } else if (builder.internalClientBuilder != null) {
-      return (C) builder.internalClientBuilder.build();
+      return builder.internalClientBuilder.build();
     } else {
-      return (C) new Http2SolrClient.Builder().build();
+      return new Http2SolrClient.Builder().build();
     }
   }
 
-  private ClusterStateProvider createClusterStateProvider(Builder<?,?> 
builder) {
+  private ClusterStateProvider createClusterStateProvider(Builder builder) {
     if (builder.stateProvider != null) {
       return builder.stateProvider;
     } else if (builder.zkHosts.isEmpty()) {
@@ -96,7 +96,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
     }
   }
 
-  private ClusterStateProvider createZkClusterStateProvider(Builder<?,?> 
builder) {
+  private ClusterStateProvider createZkClusterStateProvider(Builder builder) {
     try {
       ClusterStateProvider stateProvider =
           ClusterStateProvider.newZkClusterStateProvider(
@@ -113,7 +113,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
   }
 
   private ClusterStateProvider createHttp2ClusterStateProvider(
-      List<String> solrUrls, C httpClient) {
+      List<String> solrUrls, HttpSolrClientBase httpClient) {
     try {
       return new Http2ClusterStateProvider<>(solrUrls, httpClient);
     } catch (Exception e) {
@@ -148,7 +148,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
   }
 
   @Override
-  public LBHttp2SolrClient<C> getLbClient() {
+  public LBHttp2SolrClient<?> getLbClient() {
     return lbClient;
   }
 
@@ -157,7 +157,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
     return stateProvider;
   }
 
-  public C getHttpClient() {
+  public HttpSolrClientBase getHttpClient() {
     return myClient;
   }
 
@@ -167,16 +167,16 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
   }
 
   /** Constructs {@link CloudHttp2SolrClient} instances from provided 
configuration. */
-  public static class Builder<B extends HttpSolrClientBuilderBase<?,?>, C 
extends HttpSolrClientBase> {
+  public static class Builder {
     protected Collection<String> zkHosts = new ArrayList<>();
     protected List<String> solrUrls = new ArrayList<>();
     protected String zkChroot;
-    protected C httpClient;
+    protected HttpSolrClientBase httpClient;
     protected boolean shardLeadersOnly = true;
     protected boolean directUpdatesToLeadersOnly = false;
     protected boolean parallelUpdates = true;
     protected ClusterStateProvider stateProvider;
-    protected B internalClientBuilder;
+    protected HttpSolrClientBuilderBase<?,?> internalClientBuilder;
     private RequestWriter requestWriter;
     private ResponseParser responseParser;
     private long retryExpiryTimeNano =
@@ -206,7 +206,6 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      *   final SolrClient client = new 
CloudHttp2SolrClient.Builder(solrBaseUrls).build();
      * </pre>
      */
-    @SuppressWarnings({"rawtypes"})
     public Builder(List<String> solrUrls) {
       this.solrUrls = solrUrls;
     }
@@ -246,7 +245,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
     }
 
     /** Whether to use the default ZK ACLs when building a ZK Client. */
-    public Builder<B, C> canUseZkACLs(boolean canUseZkACLs) {
+    public Builder  canUseZkACLs(boolean canUseZkACLs) {
       this.canUseZkACLs = canUseZkACLs;
       return this;
     }
@@ -258,7 +257,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @see #sendUpdatesToAnyReplica
      * @see CloudSolrClient#isUpdatesToLeaders
      */
-    public Builder<B, C> sendUpdatesOnlyToShardLeaders() {
+    public Builder  sendUpdatesOnlyToShardLeaders() {
       shardLeadersOnly = true;
       return this;
     }
@@ -270,7 +269,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @see #sendUpdatesOnlyToShardLeaders
      * @see CloudSolrClient#isUpdatesToLeaders
      */
-    public Builder<B, C> sendUpdatesToAnyReplica() {
+    public Builder  sendUpdatesToAnyReplica() {
       shardLeadersOnly = false;
       return this;
     }
@@ -285,7 +284,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @see #sendDirectUpdatesToAnyShardReplica
      * @see CloudSolrClient#isDirectUpdatesToLeadersOnly
      */
-    public Builder<B, C> sendDirectUpdatesToShardLeadersOnly() {
+    public Builder  sendDirectUpdatesToShardLeadersOnly() {
       directUpdatesToLeadersOnly = true;
       return this;
     }
@@ -300,19 +299,19 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @see #sendDirectUpdatesToShardLeadersOnly
      * @see CloudSolrClient#isDirectUpdatesToLeadersOnly
      */
-    public Builder<B, C> sendDirectUpdatesToAnyShardReplica() {
+    public Builder  sendDirectUpdatesToAnyShardReplica() {
       directUpdatesToLeadersOnly = false;
       return this;
     }
 
     /** Provides a {@link RequestWriter} for created clients to use when 
handing requests. */
-    public Builder<B, C> withRequestWriter(RequestWriter requestWriter) {
+    public Builder  withRequestWriter(RequestWriter requestWriter) {
       this.requestWriter = requestWriter;
       return this;
     }
 
     /** Provides a {@link ResponseParser} for created clients to use when 
handling requests. */
-    public Builder<B, C> withResponseParser(ResponseParser responseParser) {
+    public Builder  withResponseParser(ResponseParser responseParser) {
       this.responseParser = responseParser;
       return this;
     }
@@ -327,7 +326,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      *
      * <p>If not set, this defaults to 'true' and sends sub-requests in 
parallel.
      */
-    public Builder<B, C> withParallelUpdates(boolean parallelUpdates) {
+    public Builder  withParallelUpdates(boolean parallelUpdates) {
       this.parallelUpdates = parallelUpdates;
       return this;
     }
@@ -338,7 +337,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      *
      * <p>Defaults to 3.
      */
-    public Builder<B, C> withParallelCacheRefreshes(int 
parallelCacheRefreshesLocks) {
+    public Builder  withParallelCacheRefreshes(int 
parallelCacheRefreshesLocks) {
       this.parallelCacheRefreshesLocks = parallelCacheRefreshesLocks;
       return this;
     }
@@ -346,13 +345,13 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
     /**
      * This is the time to wait to re-fetch the state after getting the same 
state version from ZK
      */
-    public Builder<B, C> withRetryExpiryTime(long expiryTime, TimeUnit unit) {
+    public Builder  withRetryExpiryTime(long expiryTime, TimeUnit unit) {
       this.retryExpiryTimeNano = TimeUnit.NANOSECONDS.convert(expiryTime, 
unit);
       return this;
     }
 
     /** Sets the default collection for request. */
-    public Builder<B, C> withDefaultCollection(String defaultCollection) {
+    public Builder  withDefaultCollection(String defaultCollection) {
       this.defaultCollection = defaultCollection;
       return this;
     }
@@ -362,7 +361,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      *
      * @param timeToLive ttl value
      */
-    public Builder<B, C> withCollectionCacheTtl(long timeToLive, TimeUnit 
unit) {
+    public Builder  withCollectionCacheTtl(long timeToLive, TimeUnit unit) {
       assert timeToLive > 0;
       this.timeToLiveSeconds = TimeUnit.SECONDS.convert(timeToLive, unit);
       return this;
@@ -375,7 +374,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      *
      * @return this
      */
-    public Builder<B, C> withHttpClient(C httpSolrClient) {
+    public Builder  withHttpClient(HttpSolrClientBase httpSolrClient) {
       if (this.internalClientBuilder != null) {
         throw new IllegalStateException(
             "The builder can't accept an httpClient AND an 
internalClientBuilder, only one of those can be provided");
@@ -392,7 +391,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @param internalClientBuilder the builder to use for creating the 
internal http client.
      * @return this
      */
-    public Builder<B, C> withHttpClientBuilder(B internalClientBuilder) {
+    public Builder  withHttpClientBuilder(HttpSolrClientBuilderBase<?,?> 
internalClientBuilder) {
       if (this.httpClient != null) {
         throw new IllegalStateException(
             "The builder can't accept an httpClient AND an 
internalClientBuilder, only one of those can be provided");
@@ -402,7 +401,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
     }
 
     @Deprecated(since = "9.10")
-    public Builder<B, C> withInternalClientBuilder(B internalClientBuilder) {
+    public Builder  withInternalClientBuilder(HttpSolrClientBuilderBase<?,?> 
internalClientBuilder) {
       return withHttpClientBuilder(internalClientBuilder);
     }
 
@@ -412,7 +411,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @param zkConnectTimeout timeout value
      * @param unit time unit
      */
-    public Builder<B, C> withZkConnectTimeout(int zkConnectTimeout, TimeUnit 
unit) {
+    public Builder  withZkConnectTimeout(int zkConnectTimeout, TimeUnit unit) {
       this.zkConnectTimeout = Math.toIntExact(unit.toMillis(zkConnectTimeout));
       return this;
     }
@@ -423,13 +422,13 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
      * @param zkClientTimeout timeout value
      * @param unit time unit
      */
-    public Builder<B, C> withZkClientTimeout(int zkClientTimeout, TimeUnit 
unit) {
+    public Builder  withZkClientTimeout(int zkClientTimeout, TimeUnit unit) {
       this.zkClientTimeout = Math.toIntExact(unit.toMillis(zkClientTimeout));
       return this;
     }
 
     /** Create a {@link CloudHttp2SolrClient} based on the provided 
configuration. */
-    public CloudHttp2SolrClient<C> build() {
+    public CloudHttp2SolrClient build() {
       int providedOptions = 0;
       if (!zkHosts.isEmpty()) providedOptions++;
       if (!solrUrls.isEmpty()) providedOptions++;
@@ -443,7 +442,7 @@ public class CloudHttp2SolrClient<C extends 
HttpSolrClientBase> extends CloudSol
             "One of zkHosts, solrUrls, or stateProvider must be specified.");
       }
 
-      return new CloudHttp2SolrClient<>(this);
+      return new CloudHttp2SolrClient(this);
     }
   }
 }
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBuilderTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBuilderTest.java
index 72dbf83cfc7..f3e3804bc8f 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBuilderTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBuilderTest.java
@@ -54,7 +54,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
   @Test
   public void testSingleZkHostSpecified() throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
@@ -72,7 +72,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     zkHostList.add(ANY_ZK_HOST);
     zkHostList.add(ANY_OTHER_ZK_HOST);
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(zkHostList, Optional.of(ANY_CHROOT)).build()) {
+        new CloudHttp2SolrClient.Builder(zkHostList, 
Optional.of(ANY_CHROOT)).build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(createdClient)) {
         final String clientZkHost = zkClientClusterStateProvider.getZkHost();
@@ -89,7 +89,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     zkHosts.add(ANY_ZK_HOST);
     zkHosts.add(ANY_OTHER_ZK_HOST);
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(zkHosts, Optional.of(ANY_CHROOT)).build()) {
+        new CloudHttp2SolrClient.Builder(zkHosts, 
Optional.of(ANY_CHROOT)).build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(createdClient)) {
         final String clientZkHost = zkClientClusterStateProvider.getZkHost();
@@ -103,7 +103,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
   @Test
   public void testByDefaultConfiguresClientToSendUpdatesOnlyToShardLeaders() 
throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .build()) {
       assertTrue(createdClient.isUpdatesToLeaders());
@@ -113,7 +113,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
   @Test
   public void testIsDirectUpdatesToLeadersOnlyDefault() throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .build()) {
       assertFalse(createdClient.isDirectUpdatesToLeadersOnly());
@@ -125,7 +125,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     expectThrows(
         IllegalStateException.class,
         () ->
-            new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+            new CloudHttp2SolrClient.Builder(
                     Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
                 .withHttpClient(mock(Http2SolrClient.class))
                 .withHttpClientBuilder(mock(Http2SolrClient.Builder.class))
@@ -133,7 +133,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     expectThrows(
         IllegalStateException.class,
         () ->
-            new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+            new CloudHttp2SolrClient.Builder(
                     Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
                 .withHttpClientBuilder(mock(Http2SolrClient.Builder.class))
                 .withHttpClient(mock(Http2SolrClient.class))
@@ -145,12 +145,12 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     Http2SolrClient http2Client = mock(Http2SolrClient.class);
     Http2SolrClient.Builder http2ClientBuilder = 
mock(Http2SolrClient.Builder.class);
     when(http2ClientBuilder.build()).thenReturn(http2Client);
-    CloudHttp2SolrClient.Builder<HttpSolrClientBuilderBase<?, ?>, 
HttpSolrClientBase> clientBuilder =
-        new CloudHttp2SolrClient.Builder<>(
+    CloudHttp2SolrClient.Builder clientBuilder =
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .withHttpClientBuilder(http2ClientBuilder);
     verify(http2ClientBuilder, never()).build();
-    try (CloudHttp2SolrClient<?> client = clientBuilder.build()) {
+    try (CloudHttp2SolrClient client = clientBuilder.build()) {
       assertEquals(http2Client, client.getHttpClient());
       verify(http2ClientBuilder, times(1)).build();
       verify(http2Client, never()).close();
@@ -164,12 +164,12 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
     var http2Client = mock(HttpJdkSolrClient.class);
     HttpJdkSolrClient.Builder http2ClientBuilder = 
mock(HttpJdkSolrClient.Builder.class);
     when(http2ClientBuilder.build()).thenReturn(http2Client);
-    CloudHttp2SolrClient.Builder<HttpJdkSolrClient.Builder, HttpJdkSolrClient> 
clientBuilder =
-        new CloudHttp2SolrClient.Builder<HttpJdkSolrClient.Builder, 
HttpJdkSolrClient>(
+    CloudHttp2SolrClient.Builder clientBuilder =
+        new CloudHttp2SolrClient.Builder(
             Collections.singletonList(ANY_ZK_HOST), Optional.of(ANY_CHROOT))
             .withHttpClientBuilder(http2ClientBuilder);
     verify(http2ClientBuilder, never()).build();
-    try (CloudHttp2SolrClient<HttpJdkSolrClient> client = 
clientBuilder.build()) {
+    try (CloudHttp2SolrClient client = clientBuilder.build()) {
       assertEquals(http2Client, client.getHttpClient());
       verify(http2ClientBuilder, times(1)).build();
       verify(http2Client, never()).close();
@@ -181,11 +181,11 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
   @Test
   public void testProvideExternalJettyClient() throws IOException {
     Http2SolrClient http2Client = mock(Http2SolrClient.class);
-    CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, Http2SolrClient> 
clientBuilder =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+    CloudHttp2SolrClient.Builder clientBuilder =
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .withHttpClient(http2Client);
-    try (CloudHttp2SolrClient<Http2SolrClient> client = clientBuilder.build()) 
{
+    try (CloudHttp2SolrClient client = clientBuilder.build()) {
       assertEquals(http2Client, client.getHttpClient());
     }
     // it's external, should be NOT closed when closing CloudSolrClient
@@ -195,11 +195,11 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
   @Test
   public void testProvideExternalJdkClient() throws IOException {
     HttpJdkSolrClient http2Client = mock(HttpJdkSolrClient.class);
-    CloudHttp2SolrClient.Builder<HttpJdkSolrClient.Builder, HttpJdkSolrClient> 
clientBuilder =
-        new CloudHttp2SolrClient.Builder<HttpJdkSolrClient.Builder, 
HttpJdkSolrClient>(
+    CloudHttp2SolrClient.Builder clientBuilder =
+        new CloudHttp2SolrClient.Builder(
             Collections.singletonList(ANY_ZK_HOST), Optional.of(ANY_CHROOT))
             .withHttpClient(http2Client);
-    try (CloudHttp2SolrClient<HttpJdkSolrClient> client = 
clientBuilder.build()) {
+    try (CloudHttp2SolrClient client = clientBuilder.build()) {
       assertEquals(http2Client, client.getHttpClient());
     }
     // it's external, should be NOT closed when closing CloudSolrClient
@@ -208,8 +208,8 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
 
   @Test
   public void testDefaultCollectionPassedFromBuilderToClient() throws 
IOException {
-    try (CloudHttp2SolrClient<Http2SolrClient> createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+    try (CloudHttp2SolrClient createdClient =
+        new CloudHttp2SolrClient.Builder(
                 Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .withDefaultCollection("aCollection")
             .build()) {
@@ -246,7 +246,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
       Http2SolrClient httpClient,
       Http2SolrClient.Builder internalClientBuilder)
       throws IOException {
-    CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, Http2SolrClient> 
clientBuilder = new CloudHttp2SolrClient.Builder<>(solrUrls);
+    CloudHttp2SolrClient.Builder clientBuilder = new 
CloudHttp2SolrClient.Builder(solrUrls);
 
     if (httpClient != null) {
       clientBuilder.withHttpClient(httpClient);
@@ -254,7 +254,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
       clientBuilder.withHttpClientBuilder(internalClientBuilder);
     }
 
-    try (CloudHttp2SolrClient<Http2SolrClient> client = clientBuilder.build()) 
{
+    try (CloudHttp2SolrClient client = clientBuilder.build()) {
       assertEquals(
           client.getHttpClient(),
           ((Http2ClusterStateProvider) 
client.getClusterStateProvider()).getHttpClient());
@@ -263,7 +263,7 @@ public class CloudHttp2SolrClientBuilderTest extends 
SolrCloudTestCase {
 
   public void testCustomStateProvider() throws IOException {
     ZkClientClusterStateProvider stateProvider = 
mock(ZkClientClusterStateProvider.class);
-    try (CloudSolrClient cloudSolrClient = new 
CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(stateProvider).build()) {
+    try (CloudSolrClient cloudSolrClient = new 
CloudHttp2SolrClient.Builder(stateProvider).build()) {
       assertEquals(stateProvider, cloudSolrClient.getClusterStateProvider());
     }
     verify(stateProvider, times(1)).close();
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientMultiConstructorTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientMultiConstructorTest.java
index ccf57adc49b..c4210bab7b4 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientMultiConstructorTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientMultiConstructorTest.java
@@ -69,7 +69,7 @@ public class CloudHttp2SolrClientMultiConstructorTest extends 
SolrTestCase {
     }
 
     try (CloudSolrClient client =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(new ArrayList<>(hosts), Optional.ofNullable(clientChroot))
+        new CloudHttp2SolrClient.Builder(new ArrayList<>(hosts), 
Optional.ofNullable(clientChroot))
             .build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(client)) {
@@ -82,6 +82,6 @@ public class CloudHttp2SolrClientMultiConstructorTest extends 
SolrTestCase {
   public void testBadChroot() {
     final List<String> zkHosts = new ArrayList<>();
     zkHosts.add("host1:2181");
-    new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(zkHosts, Optional.of("foo")).build();
+    new CloudHttp2SolrClient.Builder(zkHosts, Optional.of("foo")).build();
   }
 }
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
index a399cd85764..39f10b2c324 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
@@ -53,7 +53,7 @@ public class CloudHttp2SolrClientRetryTest extends 
SolrCloudTestCase {
   public void testRetry() throws Exception {
     String collectionName = "testRetry";
     try (CloudSolrClient solrClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 
Collections.singletonList(cluster.getZkServer().getZkAddress()), 
Optional.empty())
             .build()) {
       CollectionAdminRequest.createCollection(collectionName, 1, 
1).process(solrClient);
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
index 70def143d70..508bd735938 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
@@ -94,8 +94,9 @@ public class CloudHttp2SolrClientTest extends 
SolrCloudTestCase {
   private static final int TIMEOUT = 30;
   private static final int NODE_COUNT = 3;
 
-  private static CloudSolrClient httpBasedCloudSolrClient = null;
-  private static CloudSolrClient zkBasedCloudSolrClient = null;
+  private static CloudHttp2SolrClient httpJettyBasedCloudSolrClient = null;
+  private static CloudHttp2SolrClient httpJdkBasedCloudSolrClient = null;
+  private static CloudHttp2SolrClient zkBasedCloudSolrClient = null;
 
   @BeforeClass
   public static void setupCluster() throws Exception {
@@ -112,19 +113,39 @@ public class CloudHttp2SolrClientTest extends 
SolrCloudTestCase {
 
     final List<String> solrUrls = new ArrayList<>();
     solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-    httpBasedCloudSolrClient = new 
CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(solrUrls).build();
+
+    httpJettyBasedCloudSolrClient = new 
CloudHttp2SolrClient.Builder(solrUrls).withHttpClientBuilder(new 
Http2SolrClient.Builder()).build();
+    assertTrue(httpJettyBasedCloudSolrClient.getHttpClient() instanceof 
Http2SolrClient);
+    assertTrue(httpJettyBasedCloudSolrClient.getClusterStateProvider() 
instanceof Http2ClusterStateProvider<?>);
+    assertTrue(((Http2ClusterStateProvider<?>) 
httpJettyBasedCloudSolrClient.getClusterStateProvider()).getHttpClient() 
instanceof  Http2SolrClient);
+
+    httpJdkBasedCloudSolrClient = new 
CloudHttp2SolrClient.Builder(solrUrls).withHttpClientBuilder(new 
HttpJdkSolrClient.Builder().withSSLContext(MockTrustManager.ALL_TRUSTING_SSL_CONTEXT)).build();
+    assertTrue(httpJdkBasedCloudSolrClient.getHttpClient() instanceof 
HttpJdkSolrClient);
+    assertTrue(httpJdkBasedCloudSolrClient.getClusterStateProvider() 
instanceof Http2ClusterStateProvider<?>);
+    assertTrue(((Http2ClusterStateProvider<?>) 
httpJdkBasedCloudSolrClient.getClusterStateProvider()).getHttpClient() 
instanceof  HttpJdkSolrClient);
+
     zkBasedCloudSolrClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 
Collections.singletonList(cluster.getZkServer().getZkAddress()), 
Optional.empty())
             .build();
+    assertTrue(zkBasedCloudSolrClient.getHttpClient() instanceof 
Http2SolrClient);
+    assertTrue(zkBasedCloudSolrClient.getClusterStateProvider() instanceof 
ZkClientClusterStateProvider);
+
   }
 
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
 
-    if (httpBasedCloudSolrClient != null) {
+    if (httpJettyBasedCloudSolrClient != null) {
+      try {
+        httpJettyBasedCloudSolrClient.close();
+      } catch (IOException e) {
+        throw new RuntimeException(e);
+      }
+    }
+    if (httpJdkBasedCloudSolrClient != null) {
       try {
-        httpBasedCloudSolrClient.close();
+        httpJdkBasedCloudSolrClient.close();
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
@@ -138,14 +159,14 @@ public class CloudHttp2SolrClientTest extends 
SolrCloudTestCase {
     }
 
     shutdownCluster();
-    httpBasedCloudSolrClient = null;
+    httpJettyBasedCloudSolrClient = null;
     zkBasedCloudSolrClient = null;
   }
 
   /** Randomly return the cluster's ZK based CSC, or HttpClusterProvider based 
CSC. */
   private CloudSolrClient getRandomClient() {
     //    return random().nextBoolean()? zkBasedCloudSolrClient : 
httpBasedCloudSolrClient;
-    return httpBasedCloudSolrClient;
+    return httpJdkBasedCloudSolrClient; //NOCOMMit
   }
 
   @Test
@@ -312,7 +333,7 @@ public class CloudHttp2SolrClientTest extends 
SolrCloudTestCase {
   private CloudSolrClient createHttpCSPBasedCloudSolrClient() {
     final List<String> solrUrls = new ArrayList<>();
     solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-    return new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(solrUrls).build();
+    return new CloudHttp2SolrClient.Builder(solrUrls).build();
   }
 
   @Test
@@ -1007,7 +1028,7 @@ public class CloudHttp2SolrClientTest extends 
SolrCloudTestCase {
     CollectionAdminRequest.createCollection(COLLECTION, "conf", 2, 1)
         .process(cluster.getSolrClient());
     cluster.waitForActiveCollection(COLLECTION, 2, 2);
-    CloudSolrClient client = httpBasedCloudSolrClient;
+    CloudSolrClient client = httpJettyBasedCloudSolrClient;
     SolrInputDocument doc = new SolrInputDocument("id", "1", "title_s", "my 
doc");
     new UpdateRequest().add(doc).commit(client, COLLECTION);
     assertEquals(1, client.query(COLLECTION, params("q", 
"*:*")).getResults().getNumFound());
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
index 2c101b86811..4089faa454e 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
@@ -34,7 +34,7 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
   @Test
   public void testSingleZkHostSpecified() throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build(); ) {
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build(); ) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(createdClient)) {
         final String clientZkHost = zkClientClusterStateProvider.getZkHost();
@@ -48,7 +48,7 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
     final List<String> zkHostList = new ArrayList<>();
     zkHostList.add(ANY_ZK_HOST);
     zkHostList.add(ANY_OTHER_ZK_HOST);
-    try (CloudSolrClient createdClient = new 
CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(zkHostList, Optional.of(ANY_CHROOT)).build()) {
+    try (CloudSolrClient createdClient = new 
CloudHttp2SolrClient.Builder(zkHostList, Optional.of(ANY_CHROOT)).build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(createdClient)) {
         final String clientZkHost = zkClientClusterStateProvider.getZkHost();
@@ -63,7 +63,7 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
     final ArrayList<String> zkHosts = new ArrayList<>();
     zkHosts.add(ANY_ZK_HOST);
     zkHosts.add(ANY_OTHER_ZK_HOST);
-    try (CloudSolrClient createdClient = new 
CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, Http2SolrClient>(zkHosts, 
Optional.of(ANY_CHROOT)).build()) {
+    try (CloudSolrClient createdClient = new 
CloudHttp2SolrClient.Builder(zkHosts, Optional.of(ANY_CHROOT)).build()) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(createdClient)) {
         final String clientZkHost = zkClientClusterStateProvider.getZkHost();
@@ -76,7 +76,7 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
   @Test
   public void testByDefaultConfiguresClientToSendUpdatesOnlyToShardLeaders() 
throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build()) {
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build()) {
       assertTrue(createdClient.isUpdatesToLeaders());
     }
   }
@@ -84,7 +84,7 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
   @Test
   public void testIsDirectUpdatesToLeadersOnlyDefault() throws IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build()) {
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT)).build()) {
       assertFalse(createdClient.isDirectUpdatesToLeadersOnly());
     }
   }
@@ -104,7 +104,7 @@ public class CloudSolrClientBuilderTest extends 
SolrTestCase {
   @Test
   public void testDefaultCollectionPassedFromBuilderToClient() throws 
IOException {
     try (CloudSolrClient createdClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(ANY_ZK_HOST), 
Optional.of(ANY_CHROOT))
             .withDefaultCollection("aCollection")
             .build()) {
       assertEquals("aCollection", createdClient.getDefaultCollection());
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientMultiConstructorTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientMultiConstructorTest.java
index ee769ec1e76..dc540e49693 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientMultiConstructorTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientMultiConstructorTest.java
@@ -69,7 +69,7 @@ public class CloudSolrClientMultiConstructorTest extends 
SolrTestCase {
     }
 
     try (CloudSolrClient client =
-        (new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(new ArrayList<>(hosts), Optional.ofNullable(clientChroot))
+        (new CloudHttp2SolrClient.Builder(new ArrayList<>(hosts), 
Optional.ofNullable(clientChroot))
             .build())) {
       try (ZkClientClusterStateProvider zkClientClusterStateProvider =
           ZkClientClusterStateProvider.from(client)) {
@@ -113,6 +113,6 @@ public class CloudSolrClientMultiConstructorTest extends 
SolrTestCase {
   public void testBadChroot() {
     final List<String> zkHosts = new ArrayList<>();
     zkHosts.add("host1:2181");
-    new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(zkHosts, Optional.of("foo")).build();
+    new CloudHttp2SolrClient.Builder(zkHosts, Optional.of("foo")).build();
   }
 }
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClusterStateSSLTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClusterStateSSLTest.java
index d23987059ec..d160a5d43da 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClusterStateSSLTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClusterStateSSLTest.java
@@ -83,7 +83,7 @@ public class HttpClusterStateSSLTest extends 
SolrCloudTestCase {
 
     // verify the http derived cluster state (on the client side) agrees with 
what the server stored
     try (CloudSolrClient httpBasedCloudSolrClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(url0.toExternalForm())).build()) {
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(url0.toExternalForm())).build())
 {
       ClusterStateProvider csp = 
httpBasedCloudSolrClient.getClusterStateProvider();
       assertTrue(csp instanceof Http2ClusterStateProvider);
       verifyUrlSchemeInClusterState(csp.getCollection(collectionId), 
expectedReplicas);
@@ -91,7 +91,7 @@ public class HttpClusterStateSSLTest extends 
SolrCloudTestCase {
 
     // http2
     try (CloudSolrClient http2BasedClient =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(Collections.singletonList(url0.toExternalForm()))
+        new 
CloudHttp2SolrClient.Builder(Collections.singletonList(url0.toExternalForm()))
             .build()) {
       ClusterStateProvider csp = http2BasedClient.getClusterStateProvider();
       assertTrue(csp instanceof Http2ClusterStateProvider);
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
index cd8a6c2b71d..89c674b01ee 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
@@ -214,7 +214,7 @@ public class SendUpdatesToLeadersOverrideTest extends 
SolrCloudTestCase {
       assertTrue(client.isUpdatesToLeaders());
     }
     try (CloudSolrClient client =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 
Collections.singletonList(cluster.getZkServer().getZkAddress()), 
Optional.empty())
             .build()) {
       assertTrue(client.isUpdatesToLeaders());
@@ -245,7 +245,7 @@ public class SendUpdatesToLeadersOverrideTest extends 
SolrCloudTestCase {
 
   public void testHttp2ClientThatDefaultsToLeaders() throws Exception {
     try (CloudSolrClient client =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 
Collections.singletonList(cluster.getZkServer().getZkAddress()), 
Optional.empty())
             .sendUpdatesOnlyToShardLeaders()
             .build()) {
@@ -256,7 +256,7 @@ public class SendUpdatesToLeadersOverrideTest extends 
SolrCloudTestCase {
 
   public void testHttp2ClientThatDoesNotDefaultToLeaders() throws Exception {
     try (CloudSolrClient client =
-        new CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, 
Http2SolrClient>(
+        new CloudHttp2SolrClient.Builder(
                 
Collections.singletonList(cluster.getZkServer().getZkAddress()), 
Optional.empty())
             .sendUpdatesToAnyReplica()
             .build()) {
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java 
b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index 16d0dca8721..f2b08870f52 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -2527,7 +2527,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase 
{
    * A variant of {@link 
org.apache.solr.client.solrj.impl.CloudHttp2SolrClient.Builder} that will
    * randomize some internal settings.
    */
-  public static class RandomizingCloudHttp2SolrClientBuilder extends 
CloudHttp2SolrClient.Builder<Http2SolrClient.Builder, Http2SolrClient> {
+  public static class RandomizingCloudHttp2SolrClientBuilder extends 
CloudHttp2SolrClient.Builder {
 
     public RandomizingCloudHttp2SolrClientBuilder(List<String> zkHosts, 
Optional<String> zkChroot) {
       super(zkHosts, zkChroot);

Reply via email to