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);
