From c9740bbf620bce9c7dbca2046e6828da55c406e2 Mon Sep 17 00:00:00 2001 From: Serhiy Bzhezytskyy Date: Fri, 21 Aug 2026 13:11:23 +0300 Subject: [PATCH 1/2] SOLR-18390: remove test-framework HTTP client convenience helpers Removes the four @Deprecated helpers (SolrTestCaseJ4.getHttpSolrClient overloads and JettySolrRunner.newClient()) and inlines every call site to the equivalent HttpJettySolrClient.Builder construction. Test-only change, no behavior change. --- .../solr/bench/lifecycle/SolrStartup.java | 4 +- .../org/apache/solr/TestCpuTimeSearch.java | 3 +- .../solr/cli/TestSolrCLIRunExample.java | 5 ++- .../solr/cloud/AliasIntegrationTest.java | 9 +++- .../solr/cloud/BasicDistributedZk2Test.java | 10 ++++- .../solr/cloud/BasicDistributedZkTest.java | 8 +++- .../CloudExitableDirectoryReaderTest.java | 5 ++- .../solr/cloud/CollectionsAPISolrJTest.java | 4 +- .../ConcurrentCreateRoutedAliasTest.java | 5 ++- .../solr/cloud/DeleteInactiveReplicaTest.java | 4 +- ...stribDocExpirationUpdateProcessorTest.java | 6 ++- .../cloud/DistributedVersionInfoTest.java | 24 ++++++++--- .../cloud/FullSolrCloudDistribCmdsTest.java | 36 ++++++++++++---- .../solr/cloud/HttpPartitionOnCommitTest.java | 6 ++- .../apache/solr/cloud/HttpPartitionTest.java | 5 ++- .../solr/cloud/MigrateReplicasTest.java | 6 ++- .../solr/cloud/MigrateRouteKeyTest.java | 6 ++- .../apache/solr/cloud/MoveReplicaTest.java | 5 ++- .../cloud/NestedShardedAtomicUpdateTest.java | 6 ++- .../solr/cloud/RemoteQueryErrorTest.java | 4 +- .../apache/solr/cloud/ReplaceNodeTest.java | 6 ++- .../solr/cloud/ReplicationFactorTest.java | 6 ++- .../org/apache/solr/cloud/SplitShardTest.java | 6 ++- .../solr/cloud/TestBaseStatsCacheCloud.java | 4 +- .../solr/cloud/TestCloudConsistency.java | 5 ++- .../solr/cloud/TestCloudDeleteByQuery.java | 26 +++++++++--- ...stCloudPhrasesIdentificationComponent.java | 6 ++- .../cloud/TestCloudPseudoReturnFields.java | 6 ++- .../apache/solr/cloud/TestCloudRecovery2.java | 22 ++++++---- .../apache/solr/cloud/TestConfigSetsAPI.java | 11 ++--- .../cloud/TestConfigSetsAPIExclusivity.java | 3 +- .../cloud/TestConfigSetsAPIZkFailure.java | 3 +- .../solr/cloud/TestGracefulJettyShutdown.java | 4 +- .../cloud/TestMiniSolrCloudClusterSSL.java | 2 +- .../apache/solr/cloud/TestPullReplica.java | 42 +++++++++++++++---- .../cloud/TestPullReplicaErrorHandling.java | 42 +++++++++++++++---- .../solr/cloud/TestPullReplicaWithAuth.java | 6 ++- .../cloud/TestQueryingOnDownCollection.java | 4 +- .../TestStressCloudBlindAtomicUpdates.java | 6 ++- .../solr/cloud/TestTlogReplayVsRecovery.java | 10 +++-- .../apache/solr/cloud/TestTlogReplica.java | 27 +++++++++--- .../TestTolerantUpdateProcessorCloud.java | 26 +++++++++--- ...estTolerantUpdateProcessorRandomCloud.java | 6 ++- .../solr/cloud/UnloadDistributedZkTest.java | 4 +- .../solr/cloud/ZkShardTermsRecoveryTest.java | 6 ++- ...ncurrentDeleteAndCreateCollectionTest.java | 5 ++- .../cloud/api/collections/ShardSplitTest.java | 20 ++++++--- .../snapshots/TestSolrCloudSnapshots.java | 5 ++- .../core/snapshots/TestSolrCoreSnapshots.java | 8 +++- .../solr/filestore/TestDistribFileStore.java | 4 +- .../solr/handler/TestReplicationHandler.java | 3 +- .../handler/TestStressIncrementalBackup.java | 11 ++++- .../solr/handler/TestStressThreadBackup.java | 11 ++++- .../apache/solr/handler/V2StandaloneTest.java | 4 +- .../handler/admin/CoreAdminHandlerTest.java | 4 +- .../handler/admin/HealthCheckHandlerTest.java | 19 ++++++--- .../handler/admin/LukeHandlerCloudTest.java | 11 ++++- .../handler/component/UpdateLogCloudTest.java | 4 +- .../metrics/SolrMetricsIntegrationTest.java | 4 +- .../TestPrometheusResponseWriter.java | 19 ++++++--- .../solr/response/TestRawTransformer.java | 5 ++- .../ManagedSchemaRoundRobinCloudTest.java | 5 ++- .../solr/search/TestCoordinatorRole.java | 3 +- .../facet/TestCloudJSONFacetJoinDomain.java | 6 ++- .../search/facet/TestCloudJSONFacetSKG.java | 6 ++- .../facet/TestCloudJSONFacetSKGEquiv.java | 6 ++- .../solr/search/stats/TestDistribIDF.java | 11 +++-- .../security/BasicAuthIntegrationTest.java | 6 ++- .../security/BasicAuthStandaloneTest.java | 3 +- .../solr/security/MultiAuthPluginTest.java | 13 +++--- .../update/DeleteByIdWithRouterFieldTest.java | 11 ++++- .../processor/TestCloudDeduplication.java | 3 +- .../solr/client/solrj/SolrExampleTests.java | 2 +- .../client/solrj/SolrExampleTestsBase.java | 6 ++- .../solrj/impl/CloudHttp2SolrClientTest.java | 12 ++++-- .../impl/HttpSolrClientBadInputTest.java | 8 +++- .../client/solrj/impl/LB2SolrClientTest.java | 4 +- .../solr/BaseDistributedSearchTestCase.java | 5 ++- .../java/org/apache/solr/SolrTestCaseHS.java | 4 +- .../java/org/apache/solr/SolrTestCaseJ4.java | 33 --------------- .../cloud/AbstractFullDistribZkTestBase.java | 2 +- ...ctCollectionsAPIDistributedZkTestBase.java | 5 ++- .../apache/solr/embedded/JettySolrRunner.java | 7 +--- .../solr/embedded/TestJettySolrRunner.java | 4 +- 84 files changed, 540 insertions(+), 212 deletions(-) diff --git a/solr/benchmark/src/java/org/apache/solr/bench/lifecycle/SolrStartup.java b/solr/benchmark/src/java/org/apache/solr/bench/lifecycle/SolrStartup.java index d0bd64d56baf..e308aba70b9d 100644 --- a/solr/benchmark/src/java/org/apache/solr/bench/lifecycle/SolrStartup.java +++ b/solr/benchmark/src/java/org/apache/solr/bench/lifecycle/SolrStartup.java @@ -23,6 +23,7 @@ import org.apache.commons.io.file.PathUtils; import org.apache.lucene.util.IOUtils; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.response.CoreAdminResponse; import org.apache.solr.embedded.JettyConfig; @@ -78,7 +79,8 @@ public void bootstrapJettyServer() throws Exception { solrRunner = new JettySolrRunner(tmpSolrHome.toString(), buildJettyConfig()); solrRunner.start(false); - try (SolrClient client = solrRunner.newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(solrRunner.getBaseUrl().toString()).build()) { for (int i = 0; i < NUM_CORES; i++) { createCore(client, "core-prefix-" + i); } diff --git a/solr/core/src/test/org/apache/solr/TestCpuTimeSearch.java b/solr/core/src/test/org/apache/solr/TestCpuTimeSearch.java index 427205d300c2..7bea9335dcb9 100644 --- a/solr/core/src/test/org/apache/solr/TestCpuTimeSearch.java +++ b/solr/core/src/test/org/apache/solr/TestCpuTimeSearch.java @@ -20,6 +20,7 @@ import java.util.List; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -100,7 +101,7 @@ public void testWithoutDistrib() throws SolrServerException, IOException { coll.getSlices().stream() .flatMap(s -> s.getReplicas().stream()) .toArray(Replica[]::new)); - try (SolrClient client = getHttpSolrClient(randomReplica.getCoreUrl())) { + try (SolrClient client = new HttpJettySolrClient.Builder(randomReplica.getCoreUrl()).build()) { response = client.query(query); } diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java index 7a7f105c0848..2e2157878ae8 100644 --- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java +++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java @@ -39,6 +39,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.cloud.MiniSolrCloudCluster; @@ -376,7 +377,9 @@ protected void testExample(String exampleName) throws Exception { if ("techproducts".equals(exampleName)) { try (SolrClient solrClient = - getHttpSolrClient("http://localhost:" + bindPort + "/solr", exampleName)) { + new HttpJettySolrClient.Builder("http://localhost:" + bindPort + "/solr") + .withDefaultCollection(exampleName) + .build()) { SolrQuery query = new SolrQuery("*:*"); QueryResponse qr = solrClient.query(query); long numFound = qr.getResults().getNumFound(); diff --git a/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java index 18e4d92ba4b6..1349f8868be6 100644 --- a/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java @@ -33,6 +33,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.ClusterStateProvider; import org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -959,11 +960,15 @@ private void searchSeveralWays( // HttpSolrClient JettySolrRunner jetty = cluster.getRandomJetty(random()); if (random().nextBoolean()) { - try (SolrClient client = getHttpSolrClient(jetty.getBaseUrl().toString(), collectionList)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(collectionList) + .build()) { responseConsumer.accept(client.query(null, solrQuery)); } } else { - try (SolrClient client = getHttpSolrClient(jetty.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()).build()) { responseConsumer.accept(client.query(collectionList, solrQuery)); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java index 61edcfa0f1f6..71bf9cffe162 100644 --- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java +++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java @@ -26,6 +26,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -221,7 +222,10 @@ private void addAndQueryDocs(final String baseUrl, int docs) throws Exception { SolrQuery query = new SolrQuery("*:*"); - try (SolrClient client = getHttpSolrClient(baseUrl, "onenodecollection")) { + try (SolrClient client = + new HttpJettySolrClient.Builder(baseUrl) + .withDefaultCollection("onenodecollection") + .build()) { // add a doc client.add(sdoc("id", docs)); client.commit(); @@ -442,7 +446,9 @@ private void bringDownShardIndexSomeDocsAndRecover() throws Exception { // try a backup command try (final SolrClient client = - getHttpSolrClient((String) shardToJetty.get(SHARD2).get(0).info.get("base_url"))) { + new HttpJettySolrClient.Builder( + (String) shardToJetty.get(SHARD2).get(0).info.get("base_url")) + .build()) { final String backupName = "the_backup"; ModifiableSolrParams params = new ModifiableSolrParams(); params.set("command", "backup"); diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java index 88be1ee8861b..a78b7ad299df 100644 --- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java @@ -47,6 +47,7 @@ import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest.Create; @@ -913,7 +914,10 @@ private long checkSlicesSameCounts(DocCollection dColl) throws SolrServerExcepti for (Slice slice : dColl.getActiveSlices()) { long sliceDocCount = -1; for (Replica rep : slice.getReplicas()) { - try (SolrClient one = getHttpSolrClient(rep)) { + try (SolrClient one = + new HttpJettySolrClient.Builder(rep.getBaseUrl()) + .withDefaultCollection(rep.getCoreName()) + .build()) { SolrQuery query = new SolrQuery("*:*"); query.setDistrib(false); QueryResponse resp = one.query(query); @@ -1503,7 +1507,7 @@ private void createSolrCore( final String shardId) { Callable call = () -> { - try (SolrClient client = getHttpSolrClient(baseUrl)) { + try (SolrClient client = new HttpJettySolrClient.Builder(baseUrl).build()) { // client.setConnectionTimeout(15000); Create createCmd = new Create(); createCmd.setCoreName(collection + num); diff --git a/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java b/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java index 24d02a389cf4..6dc0c7d61f5c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java @@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit; import org.apache.lucene.tests.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -81,7 +82,9 @@ public static void setupCluster() throws Exception { clusterBuilder.configure(); // pick an arbitrary node to use for our requests - client = cluster.getRandomJetty(random()).newClient(); + client = + new HttpJettySolrClient.Builder(cluster.getRandomJetty(random()).getBaseUrl().toString()) + .build(); CollectionAdminRequest.createCollection(COLLECTION, "conf", 2, 1) .processAndWait(cluster.getSolrClient(), DEFAULT_TIMEOUT); diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java index 17cb7e51ebb6..f4c942a5f167 100644 --- a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java @@ -48,6 +48,7 @@ import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CollectionPropertiesApi; import org.apache.solr.client.solrj.request.CollectionsApi; @@ -300,7 +301,8 @@ public void testCloudInfoInCoreStatus() throws IOException, SolrServerException String corename = response._getStr(asList("success", nodeName, "core"), null); try (SolrClient coreClient = - getHttpSolrClient(cluster.getZkStateReader().getBaseUrlForNodeName(nodeName))) { + new HttpJettySolrClient.Builder(cluster.getZkStateReader().getBaseUrlForNodeName(nodeName)) + .build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(corename, coreClient); assertEquals( collectionName, status._get(asList("status", corename, "cloud", "collection"), null)); diff --git a/solr/core/src/test/org/apache/solr/cloud/ConcurrentCreateRoutedAliasTest.java b/solr/core/src/test/org/apache/solr/cloud/ConcurrentCreateRoutedAliasTest.java index 504bfd94facb..f52ab1df0b2d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ConcurrentCreateRoutedAliasTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ConcurrentCreateRoutedAliasTest.java @@ -21,6 +21,7 @@ import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.common.util.IOUtils; @@ -96,7 +97,7 @@ public void testConcurrentCreateRoutedAliasMinimal() { for (; num < threads.length + numStart; num++) { final String aliasName = "testAlias" + num; final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); int i = num - numStart; threads[i] = @@ -120,7 +121,7 @@ public void testConcurrentCreateRoutedAliasComplex() { for (; num < threads.length + numStart; num++) { final String aliasName = "testAliasCplx" + num; final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); int i = num - numStart; threads[i] = diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java index e84e9e436dc7..606a7235b9fd 100644 --- a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java @@ -20,6 +20,7 @@ import java.nio.file.Files; import java.util.concurrent.TimeUnit; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.common.cloud.DocCollection; @@ -108,7 +109,8 @@ public void deleteInactiveReplicaTest() throws Exception { && !FileUtils.fileExists(replicaCd.getDataDir())); // Check that we can't create a core with no coreNodeName - try (SolrClient queryClient = getHttpSolrClient(jetty.getBaseUrl().toString())) { + try (SolrClient queryClient = + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()).build()) { Exception e = expectThrows( Exception.class, diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java index 45b83e7066df..17175d63df80 100644 --- a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java @@ -28,6 +28,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -288,7 +289,10 @@ private Map getTestDataForAllReplicas() for (Replica replica : collectionState.getReplicas()) { String coreName = replica.getCoreName(); - try (SolrClient client = getHttpSolrClient(replica)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { ModifiableSolrParams params = new ModifiableSolrParams(); params.set("command", "indexversion"); diff --git a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java index b6b1f977240a..d2d6aa7aa373 100644 --- a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java @@ -34,6 +34,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; @@ -107,7 +108,10 @@ public void testReplicaVersionHandling() throws Exception { maxOnReplica); // send the same doc but with a lower version than the max in the index - try (SolrClient client = getHttpSolrClient(replica)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { String docId = String.valueOf(1); SolrInputDocument doc = new SolrInputDocument(); doc.setField("id", docId); @@ -298,7 +302,10 @@ protected long getVersionFromIndex(Replica replica, String docId) query.addSort(new SolrQuery.SortClause("_version_", SolrQuery.ORDER.desc)); query.setParam("distrib", false); - try (SolrClient client = getHttpSolrClient(replica)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { QueryResponse qr = client.query(query); SolrDocumentList hits = qr.getResults(); if (hits.isEmpty()) fail("No results returned from query: " + query); @@ -320,9 +327,16 @@ protected void assertDocsExistInAllReplicas( int lastDocId, Set deletedDocs) throws Exception { - SolrClient leaderSolr = getHttpSolrClient(leader); + SolrClient leaderSolr = + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) + .build(); List replicas = new ArrayList(notLeaders.size()); - for (Replica r : notLeaders) replicas.add(getHttpSolrClient(r)); + for (Replica r : notLeaders) + replicas.add( + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build()); try { for (int d = firstDocId; d <= lastDocId; d++) { @@ -376,7 +390,7 @@ protected Long assertDocExists(SolrClient solr, String docId, Long expVers) thro protected boolean reloadCollection(Replica replica, String testCollectionName) throws Exception { String coreName = replica.getCoreName(); boolean reloadedOk = false; - try (SolrClient client = getHttpSolrClient(replica.getBaseUrl())) { + try (SolrClient client = new HttpJettySolrClient.Builder(replica.getBaseUrl()).build()) { CoreAdminResponse statusResp = CoreAdminRequest.getStatus(coreName, client); long leaderCoreStartTime = statusResp.getStartTime(coreName).getTime(); diff --git a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java index cb5bee468783..e162c35b15a6 100644 --- a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java @@ -31,6 +31,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.jetty.ConcurrentUpdateJettySolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -170,8 +171,14 @@ public void testDeleteByIdImplicitRouter() throws Exception { (n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2)); final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName); - try (SolrClient shard1 = getHttpSolrClient(docCol.getSlice("shard1").getLeader()); - SolrClient shard2 = getHttpSolrClient(docCol.getSlice("shard2").getLeader())) { + try (SolrClient shard1 = + new HttpJettySolrClient.Builder(docCol.getSlice("shard1").getLeader().getBaseUrl()) + .withDefaultCollection(docCol.getSlice("shard1").getLeader().getCoreName()) + .build(); + SolrClient shard2 = + new HttpJettySolrClient.Builder(docCol.getSlice("shard2").getLeader().getBaseUrl()) + .withDefaultCollection(docCol.getSlice("shard2").getLeader().getCoreName()) + .build()) { // Add three documents to shard1 shard1.add(sdoc("id", "1", "title", "s1 one")); @@ -325,8 +332,14 @@ public void testDeleteByIdCompositeRouterWithRouterField() throws Exception { (n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2)); final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName); - try (SolrClient shard1 = getHttpSolrClient(docCol.getSlice("shard1").getLeader()); - SolrClient shard2 = getHttpSolrClient(docCol.getSlice("shard2").getLeader())) { + try (SolrClient shard1 = + new HttpJettySolrClient.Builder(docCol.getSlice("shard1").getLeader().getBaseUrl()) + .withDefaultCollection(docCol.getSlice("shard1").getLeader().getCoreName()) + .build(); + SolrClient shard2 = + new HttpJettySolrClient.Builder(docCol.getSlice("shard2").getLeader().getBaseUrl()) + .withDefaultCollection(docCol.getSlice("shard2").getLeader().getCoreName()) + .build()) { // Add six documents w/diff routes (all sent to shard1 leader's core) shard1.add(sdoc("id", "1", "routefield_s", "europe")); @@ -488,7 +501,10 @@ public void testThatCantForwardToLeaderFails() throws Exception { } // create client to send our updates to... - try (SolrClient indexClient = getHttpSolrClient(indexingBaseUrl, collectionName)) { + try (SolrClient indexClient = + new HttpJettySolrClient.Builder(indexingBaseUrl) + .withDefaultCollection(collectionName) + .build()) { // Sanity check: we should be able to send a bunch of updates that work right now... for (int i = 0; i < 100; i++) { @@ -862,11 +878,17 @@ private void checkShardConsistency(String collectionName, final SolrParams param final Slice slice = entry.getValue(); log.info("Checking: {} -> {}", shardName, slice); final Replica leader = entry.getValue().getLeader(); - try (SolrClient leaderClient = getHttpSolrClient(leader)) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) + .build()) { final SolrDocumentList leaderResults = leaderClient.query(perReplicaParams).getResults(); log.debug("Shard {}: Leader results: {}", shardName, leaderResults); for (Replica replica : slice) { - try (SolrClient replicaClient = getHttpSolrClient(replica)) { + try (SolrClient replicaClient = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { final SolrDocumentList replicaResults = replicaClient.query(perReplicaParams).getResults(); if (log.isDebugEnabled()) { diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java index c271c88adb7a..0543f72cf7b6 100644 --- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java @@ -21,6 +21,7 @@ import java.nio.file.Path; import java.util.List; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.Replica; import org.apache.solr.common.cloud.ZkStateReader; @@ -190,7 +191,10 @@ protected void sendCommitWithRetry(Replica replica) throws Exception { String replicaCoreUrl = replica.getCoreUrl(); log.info("Sending commit request to: {}", replicaCoreUrl); final RTimer timer = new RTimer(); - try (SolrClient client = getHttpSolrClient(replica)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { try { client.commit(); diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java index ee536f12ae16..56fe4f5f53d7 100644 --- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java @@ -36,6 +36,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrException; @@ -516,7 +517,9 @@ protected void assertDocsExistInAllReplicas( } protected SolrClient getHttpSolrClient(Replica replica, String collection) { - return getHttpSolrClient(replica.getBaseUrl(), collection); + return new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(collection) + .build(); } // Send doc directly to a server (without going through proxy) diff --git a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java index 1d4d431d6df2..b05e198daa5b 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java @@ -29,6 +29,7 @@ import org.apache.solr.client.api.model.MigrateReplicasRequestBody; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.response.CoreAdminResponse; @@ -124,7 +125,8 @@ public void test() throws Exception { ((Map) response.get("responseHeader")).get("status")); ZkStateReader zkStateReader = ZkStateReader.from(cloudClient); try (SolrClient coreClient = - getHttpSolrClient(zkStateReader.getBaseUrlForNodeName(nodeToBeDecommissioned))) { + new HttpJettySolrClient.Builder(zkStateReader.getBaseUrlForNodeName(nodeToBeDecommissioned)) + .build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(null, coreClient); assertEquals( "There should not be any cores left on decommissioned node", @@ -151,7 +153,7 @@ public void test() throws Exception { ((Map) response.get("responseHeader")).get("status")); try (SolrClient coreClient = - getHttpSolrClient(zkStateReader.getBaseUrlForNodeName(emptyNode))) { + new HttpJettySolrClient.Builder(zkStateReader.getBaseUrlForNodeName(emptyNode)).build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(null, coreClient); assertEquals( "Expecting no cores but found some: " + status.getCoreStatus(), diff --git a/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java b/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java index c990f43423ab..d54212f5fdd2 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java @@ -24,6 +24,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.response.QueryResponse; @@ -134,7 +135,10 @@ public void multipleShardMigrateTest() throws Exception { DocCollection state = getCollectionState(targetCollection); Replica replica = state.getReplicas().get(0); - try (SolrClient collectionClient = getHttpSolrClient(replica)) { + try (SolrClient collectionClient = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { SolrQuery solrQuery = new SolrQuery("*:*"); assertEquals( diff --git a/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java index 76092a2c9369..74592a114d7f 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java @@ -29,6 +29,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -365,7 +366,9 @@ private int getNumOfCores( CloudSolrClient cloudClient, String nodeName, String collectionName, String replicaType) throws IOException, SolrServerException { try (SolrClient coreclient = - getHttpSolrClient(ZkStateReader.from(cloudClient).getBaseUrlForNodeName(nodeName))) { + new HttpJettySolrClient.Builder( + ZkStateReader.from(cloudClient).getBaseUrlForNodeName(nodeName)) + .build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(null, coreclient); if (status.getCoreStatus().size() == 0) { return 0; diff --git a/solr/core/src/test/org/apache/solr/cloud/NestedShardedAtomicUpdateTest.java b/solr/core/src/test/org/apache/solr/cloud/NestedShardedAtomicUpdateTest.java index 455b202f1d38..6526361b872c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/NestedShardedAtomicUpdateTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/NestedShardedAtomicUpdateTest.java @@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -72,7 +73,10 @@ public static void beforeClass() throws Exception { clients = new ArrayList<>(); ClusterState clusterState = cloudClient.getClusterState(); for (Replica replica : clusterState.getCollection(DEFAULT_COLLECTION).getReplicas()) { - clients.add(getHttpSolrClient(replica)); + clients.add( + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/RemoteQueryErrorTest.java b/solr/core/src/test/org/apache/solr/cloud/RemoteQueryErrorTest.java index 9da524dfc9b8..ddaf414e5d0c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/RemoteQueryErrorTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/RemoteQueryErrorTest.java @@ -19,6 +19,7 @@ import static org.hamcrest.core.StringContains.containsString; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; @@ -43,7 +44,8 @@ public void test() throws Exception { .process(cluster.getSolrClient()); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - try (SolrClient client = jetty.newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()).build()) { SolrException e = expectThrows( SolrException.class, diff --git a/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeTest.java b/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeTest.java index bc64635d2d87..7b77f91fc988 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeTest.java @@ -29,6 +29,7 @@ import java.util.stream.Collectors; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.response.CoreAdminResponse; @@ -118,7 +119,8 @@ public void test() throws Exception { .processAndWait("000", cloudClient, 15); ZkStateReader zkStateReader = ZkStateReader.from(cloudClient); try (SolrClient coreClient = - getHttpSolrClient(zkStateReader.getBaseUrlForNodeName(nodeToBeDecommissioned))) { + new HttpJettySolrClient.Builder(zkStateReader.getBaseUrlForNodeName(nodeToBeDecommissioned)) + .build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(null, coreClient); assertEquals(0, status.getCoreStatus().size()); } @@ -137,7 +139,7 @@ public void test() throws Exception { replaceNodeRequest.processAndWait("001", cloudClient, 10); try (SolrClient coreClient = - getHttpSolrClient(zkStateReader.getBaseUrlForNodeName(emptyNode))) { + new HttpJettySolrClient.Builder(zkStateReader.getBaseUrlForNodeName(emptyNode)).build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(null, coreClient); assertEquals( "Expecting no cores but found some: " + status.getCoreStatus(), diff --git a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java index eb63af4a5ac5..a37086b06149 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java @@ -31,6 +31,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; @@ -268,7 +269,10 @@ protected void sendNonDirectUpdateRequestReplicaWithRetry( protected void sendNonDirectUpdateRequestReplica( Replica replica, UpdateRequest up, int expectedRf, String collection) throws Exception { - try (SolrClient solrServer = getHttpSolrClient(replica.getBaseUrl(), collection)) { + try (SolrClient solrServer = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(collection) + .build()) { NamedList resp = solrServer.request(up); NamedList hdr = (NamedList) resp.get("responseHeader"); Integer batchRf = (Integer) hdr.get(UpdateRequest.REPFACT); diff --git a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java index 0b539bd39d0f..a78eb5c39566 100644 --- a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java @@ -37,6 +37,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -229,7 +230,10 @@ long getNumDocs(CloudSolrClient client, String collectionName) throws Exception if (!slice.getState().equals(Slice.State.ACTIVE)) continue; long lastReplicaCount = -1; for (Replica replica : slice.getReplicas()) { - SolrClient replicaClient = getHttpSolrClient(replica); + SolrClient replicaClient = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build(); long numFound; try { numFound = diff --git a/solr/core/src/test/org/apache/solr/cloud/TestBaseStatsCacheCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestBaseStatsCacheCloud.java index a7dc3f8d12fc..3280410bb151 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestBaseStatsCacheCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestBaseStatsCacheCloud.java @@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.MetricsRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -131,7 +132,8 @@ public void testBasicStats() throws Exception { // check cache metrics StatsCache.StatsCacheMetrics statsCacheMetrics = new StatsCache.StatsCacheMetrics(); for (JettySolrRunner jettySolrRunner : cluster.getJettySolrRunners()) { - try (SolrClient client = getHttpSolrClient(jettySolrRunner.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { var req = new MetricsRequest(SolrParams.of("wt", "prometheus")); NamedList resp = client.request(req); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java index 9041d42555d0..e7876b54a4bb 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java @@ -32,6 +32,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.common.SolrInputDocument; @@ -351,6 +352,8 @@ private NamedList realTimeGetDocId(SolrClient solr, String docId) } protected SolrClient getHttpSolrClient(Replica replica, String coll) { - return getHttpSolrClient(replica.getBaseUrl(), coll); + return new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(coll) + .build(); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudDeleteByQuery.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudDeleteByQuery.java index 451ef12dab6c..7fe47d4af206 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudDeleteByQuery.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudDeleteByQuery.java @@ -27,6 +27,7 @@ import java.util.UUID; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrDocument; @@ -166,17 +167,32 @@ public static void createMiniSolrCloudCluster() throws Exception { assertNotNull("could not find URL for " + shardName + " replica", passiveUrl); if (shardName.equals("shard1")) { - S_ONE_LEADER_CLIENT = getHttpSolrClient(leaderUrl, COLLECTION_NAME); - S_ONE_NON_LEADER_CLIENT = getHttpSolrClient(passiveUrl, COLLECTION_NAME); + S_ONE_LEADER_CLIENT = + new HttpJettySolrClient.Builder(leaderUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); + S_ONE_NON_LEADER_CLIENT = + new HttpJettySolrClient.Builder(passiveUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); } else if (shardName.equals("shard2")) { - S_TWO_LEADER_CLIENT = getHttpSolrClient(leaderUrl, COLLECTION_NAME); - S_TWO_NON_LEADER_CLIENT = getHttpSolrClient(passiveUrl, COLLECTION_NAME); + S_TWO_LEADER_CLIENT = + new HttpJettySolrClient.Builder(leaderUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); + S_TWO_NON_LEADER_CLIENT = + new HttpJettySolrClient.Builder(passiveUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); } else { fail("unexpected shard: " + shardName); } } assertEquals("Should be exactly one server left (not hosting either shard)", 1, urlMap.size()); - NO_COLLECTION_CLIENT = getHttpSolrClient(urlMap.values().iterator().next(), COLLECTION_NAME); + NO_COLLECTION_CLIENT = + new HttpJettySolrClient.Builder(urlMap.values().iterator().next()) + .withDefaultCollection(COLLECTION_NAME) + .build(); assertNotNull(S_ONE_LEADER_CLIENT); assertNotNull(S_TWO_LEADER_CLIENT); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java index 2a979299698d..cd95b51aa38d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java @@ -27,6 +27,7 @@ import org.apache.lucene.tests.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -80,7 +81,10 @@ public static void createMiniSolrCloudCluster() throws Exception { waitForRecoveriesToFinish(COLLECTION_CLIENT); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - CLIENTS.add(getHttpSolrClient(jetty.getBaseUrl().toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } // index some docs... diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java index 81969dae3452..833b524167a4 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java @@ -35,6 +35,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.schema.SchemaRequest.Field; import org.apache.solr.client.solrj.response.QueryResponse; @@ -97,7 +98,10 @@ public static void createMiniSolrCloudCluster() throws Exception { waitForRecoveriesToFinish(COLLECTION_CLIENT); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - CLIENTS.add(getHttpSolrClient(jetty.getBaseUrl().toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } assertEquals( diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java index d4af2692573a..2f37f61683d9 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java @@ -18,6 +18,7 @@ package org.apache.solr.cloud; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -49,7 +50,8 @@ public static void setupCluster() throws Exception { public void test() throws Exception { JettySolrRunner node1 = cluster.getJettySolrRunner(0); JettySolrRunner node2 = cluster.getJettySolrRunner(1); - try (SolrClient client1 = getHttpSolrClient(node1.getBaseUrl().toString())) { + try (SolrClient client1 = + new HttpJettySolrClient.Builder(node1.getBaseUrl().toString()).build()) { node2.stop(); waitForState("", COLLECTION, (liveNodes, collectionState) -> liveNodes.size() == 1); @@ -63,7 +65,8 @@ public void test() throws Exception { node2.start(); waitForState("", COLLECTION, clusterShape(1, 2)); - try (SolrClient client = getHttpSolrClient(node2.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node2.getBaseUrl().toString()).build()) { long numFound = client .query(COLLECTION, new SolrQuery("q", "*:*", "distrib", "false")) @@ -80,7 +83,8 @@ public void test() throws Exception { new UpdateRequest().add("id", "1", "num", "10").commit(client1, COLLECTION); - try (SolrClient client = getHttpSolrClient(node2.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node2.getBaseUrl().toString()).build()) { Object v = client .query(COLLECTION, new SolrQuery("q", "id:1", "distrib", "false")) @@ -112,7 +116,8 @@ public void test() throws Exception { node2.start(); waitForState("", COLLECTION, clusterShape(1, 2)); - try (SolrClient client = getHttpSolrClient(node2.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node2.getBaseUrl().toString()).build()) { v = client .query(COLLECTION, new SolrQuery("q", "id:1", "distrib", "false")) @@ -137,7 +142,8 @@ public void test() throws Exception { node2.start(); waitForState("", COLLECTION, clusterShape(1, 2)); - try (SolrClient client = getHttpSolrClient(node2.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node2.getBaseUrl().toString()).build()) { v = client .query(COLLECTION, new SolrQuery("q", "id:1", "distrib", "false")) @@ -166,7 +172,8 @@ public void test() throws Exception { node1.start(); waitForState("", COLLECTION, clusterShape(1, 2)); - try (SolrClient client = getHttpSolrClient(node1.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node1.getBaseUrl().toString()).build()) { Object v = client .query(COLLECTION, new SolrQuery("q", "id:1", "distrib", "false")) @@ -175,7 +182,8 @@ public void test() throws Exception { .get("num"); assertEquals("30", v.toString()); } - try (SolrClient client = getHttpSolrClient(node2.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(node2.getBaseUrl().toString()).build()) { Object v = client .query(COLLECTION, new SolrQuery("q", "id:1", "distrib", "false")) diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java index 29c17139d2a4..806d5d49d6b7 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java @@ -63,6 +63,7 @@ import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Create; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Delete; @@ -136,7 +137,7 @@ public void tearDown() throws Exception { @Test public void testCreateErrors() throws Exception { final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - try (final SolrClient solrClient = getHttpSolrClient(baseUrl)) { + try (final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build()) { getConfigSetService().uploadConfig("configSet", configset("configset-2")); // no action @@ -223,7 +224,7 @@ private void verifyCreate( String username) throws Exception { final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - try (final SolrClient solrClient = getHttpSolrClient(baseUrl)) { + try (final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build()) { setupBaseConfigSet(baseConfigSetName, oldProps); try (SolrZkClient zkClient = @@ -1625,7 +1626,7 @@ private byte[] readFile(String fname) throws IOException { @Test public void testDeleteErrors() throws Exception { final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); final Path configDir = getFile("solr").resolve("configsets/configset-2/conf"); final Path tmpConfigDir = createTempDir(); // Ensure ConfigSet is immutable @@ -1660,7 +1661,7 @@ private void verifyException( @Test public void testDelete() throws Exception { final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); final String configSet = "testDelete"; getConfigSetService().uploadConfig(configSet, configset("configset-2")); assertDelete(solrClient, configSet, true); @@ -1692,7 +1693,7 @@ private void assertDelete(SolrClient solrClient, String configSet, boolean asser @Test public void testList() throws Exception { final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); SolrZkClient zkClient = new SolrZkClient.Builder() diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java index 722ed01c1fa7..363a36f27359 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java @@ -22,6 +22,7 @@ import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Create; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Delete; @@ -119,7 +120,7 @@ public ConfigSetsAPIThread(MiniSolrCloudCluster solrCluster, int trials) { @Override public void run() { final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); ConfigSetAdminRequest request = createRequest(); for (int i = 0; i < trials; ++i) { diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java index 0cce6aef96f6..61758f0592af 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java @@ -37,6 +37,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Create; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.SolrZkClient; @@ -109,7 +110,7 @@ public void tearDown() throws Exception { @Test public void testCreateZkFailure() throws Exception { final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); final ConfigSetService configSetService = solrCluster.getOpenOverseer().getCoreContainer().getConfigSetService(); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java b/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java index 8c52096dda0d..e2397df60581 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java @@ -28,6 +28,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -86,7 +87,8 @@ public void testSingleShardInFlightRequestsDuringShutDown() throws Exception { final List> results = new ArrayList<>(13); - try (SolrClient jettyClient = nodeToStop.newClient()) { + try (SolrClient jettyClient = + new HttpJettySolrClient.Builder(nodeToStop.getBaseUrl().toString()).build()) { final QueryRequest req = new QueryRequest(handler, params("q", "foo_s:aaa")); // check inflight requests using both clients... diff --git a/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java b/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java index 8fbbe214fe0c..b546d9eada5d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java @@ -411,6 +411,6 @@ public static SolrClient getRandomizedHttpSolrClient(String url) { if (random().nextBoolean()) { return HttpSolrClient.builder(url).build(); } // else... - return getHttpSolrClient(url); + return new HttpJettySolrClient.Builder(url).build(); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java index 331b2b7e9f2e..2c5893571d48 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java @@ -36,6 +36,7 @@ import org.apache.lucene.tests.util.LuceneTestCase.Nightly; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -296,7 +297,10 @@ public void testAddDocs() throws Exception { log.info("Committed doc {} to leader", numDocs); Slice s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertEquals(numDocs, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } log.info( @@ -531,14 +535,20 @@ public void testRealTimeGet() Slice slice = docCollection.getSlice("shard1"); List ids = new ArrayList<>(slice.getReplicas().size()); for (Replica rAdd : slice.getReplicas()) { - try (SolrClient client = getHttpSolrClient(rAdd.getBaseUrl(), rAdd.getCoreName())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(rAdd.getBaseUrl()) + .withDefaultCollection(rAdd.getCoreName()) + .build()) { client.add(new SolrInputDocument("id", String.valueOf(id), "foo_s", "bar")); } SolrDocument docCloudClient = cluster.getSolrClient().getById(collectionName, String.valueOf(id)); assertEquals("bar", docCloudClient.getFieldValue("foo_s")); for (Replica rGet : slice.getReplicas()) { - try (SolrClient client = getHttpSolrClient(rGet.getBaseUrl(), rGet.getCoreName())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(rGet.getBaseUrl()) + .withDefaultCollection(rGet.getCoreName()) + .build()) { SolrDocument doc = client.getById(String.valueOf(id)); assertEquals("bar", doc.getFieldValue("foo_s")); } @@ -548,7 +558,10 @@ public void testRealTimeGet() } SolrDocumentList previousAllIdsResult = null; for (Replica rAdd : slice.getReplicas()) { - try (SolrClient client = getHttpSolrClient(rAdd.getBaseUrl(), rAdd.getCoreName())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(rAdd.getBaseUrl()) + .withDefaultCollection(rAdd.getCoreName()) + .build()) { SolrDocumentList allIdsResult = client.getById(ids); if (previousAllIdsResult != null) { assertTrue(compareSolrDocumentList(previousAllIdsResult, allIdsResult)); @@ -579,7 +592,10 @@ private void doTestNoLeader(boolean removeReplica) throws Exception { cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "1", "foo", "bar")); cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -634,7 +650,11 @@ private void doTestNoLeader(boolean removeReplica) throws Exception { // Also fails if I send the update to the pull replica explicitly try (SolrClient pullReplicaClient = - getHttpSolrClient(getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { expectThrows( SolrException.class, () -> @@ -681,7 +701,10 @@ private void doTestNoLeader(boolean removeReplica) throws Exception { // add docs agin cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "2", "foo", "zoo")); s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { leaderClient.commit(); assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -878,7 +901,10 @@ static void waitForNumDocsInAllReplicas( TimeOut t = new TimeOut(REPLICATION_TIMEOUT_SECS, TimeUnit.SECONDS, TimeSource.NANO_TIME); for (Replica r : replicas) { String replicaUrl = r.getCoreUrl(); - try (SolrClient replicaClient = getHttpSolrClient(r)) { + try (SolrClient replicaClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build()) { while (true) { QueryRequest req = new QueryRequest(new SolrQuery(query)); if (user != null && pass != null) { diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java index 5d0ee95b5410..78b805d79b58 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java @@ -29,6 +29,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrException; @@ -139,7 +140,10 @@ public void testCantConnectToPullReplica() throws Exception { proxy.close(); for (int i = 1; i <= 10; i++) { addDocs(10 + i); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertNumDocs(10 + i, leaderClient); } } @@ -149,7 +153,11 @@ public void testCantConnectToPullReplica() throws Exception { SolrServerException.class, () -> { try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { pullReplicaClient.query(new SolrQuery("*:*")).getResults().getNumFound(); } }); @@ -174,7 +182,11 @@ public void testCantConnectToPullReplica() throws Exception { } try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { assertNumDocs(20, pullReplicaClient); } } @@ -191,13 +203,21 @@ public void testCantConnectToLeader() throws Exception { try { // wait for replication try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { assertNumDocs(10, pullReplicaClient); } proxy.close(); expectThrows(SolrException.class, () -> addDocs(1)); try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { assertNumDocs(10, pullReplicaClient); } assertNumDocs(10, cluster.getSolrClient(collectionName)); @@ -227,7 +247,11 @@ public void testPullReplicaDisconnectsFromZooKeeper() throws Exception { DocCollection docCollection = assertNumberOfReplicas(numShards, 0, numShards, false, true); Slice s = docCollection.getSlices().iterator().next(); try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { assertNumDocs(10, pullReplicaClient); } addDocs(20); @@ -238,7 +262,11 @@ public void testPullReplicaDisconnectsFromZooKeeper() throws Exception { addDocs(40); waitForState("Expecting node to be reconnected", collectionName, activeReplicaCount(1, 0, 1)); try (SolrClient pullReplicaClient = - getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) { + new HttpJettySolrClient.Builder( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getBaseUrl()) + .withDefaultCollection( + s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreName()) + .build()) { assertNumDocs(40, pullReplicaClient); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java index 4439f8fbf353..77e64f382da9 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java @@ -29,6 +29,7 @@ import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -93,7 +94,10 @@ public void testPKIAuthWorksForPullReplication() throws Exception { ureq.commit(solrClient, collectionName); Slice s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertEquals( numDocs, queryWithBasicAuth(leaderClient, new SolrQuery("*:*")).getResults().getNumFound()); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestQueryingOnDownCollection.java b/solr/core/src/test/org/apache/solr/cloud/TestQueryingOnDownCollection.java index e95bf3493fb4..58ccc9ed26cf 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestQueryingOnDownCollection.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestQueryingOnDownCollection.java @@ -84,7 +84,9 @@ public void testQueryToDownCollectionShouldFailFast() throws Exception { new QueryRequest(new SolrQuery("*:*").setRows(0)) .setBasicAuthCredentials(USERNAME, PASSWORD); - try (SolrClient client = cluster.getJettySolrRunner(0).newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(cluster.getJettySolrRunner(0).getBaseUrl().toString()) + .build()) { // Without the SOLR-13793 fix, this causes requests to "down collection" to pile up (until the // nodes run out of serviceable threads, and they crash, even for other collections hosted on // the diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java index 8abccaf7fbd1..79dd2341cce1 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java @@ -33,6 +33,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.request.schema.SchemaRequest.Field; @@ -141,7 +142,10 @@ public static void createMiniSolrCloudCluster() throws Exception { assertNotNull("Cluster contains null jetty?", jetty); final URL baseUrl = jetty.getBaseUrl(); assertNotNull("Jetty has null baseUrl: " + jetty, baseUrl); - CLIENTS.add(getHttpSolrClient(baseUrl.toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(baseUrl.toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } // sanity check no one broke the assumptions we make about our schema diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java index f41cfb8a72d2..454e0bcf59aa 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java @@ -32,6 +32,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.response.RequestStatusState; @@ -243,7 +244,8 @@ private void addDocs(final boolean commit, final int numDocs, final int startId) } // For simplicity, we always add out docs directly to NODE0 // (where the leader should be) and bypass the proxy... - try (SolrClient client = getHttpSolrClient(NODE0.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(NODE0.getBaseUrl().toString()).build()) { assertEquals(0, client.add(COLLECTION, docs).getStatus()); if (commit) { assertEquals(0, client.commit(COLLECTION).getStatus()); @@ -256,8 +258,10 @@ private void addDocs(final boolean commit, final int numDocs, final int startId) * (inclusive) can be found on both the leader and the replica */ private void assertDocsExistInBothReplicas(int firstDocId, int lastDocId) throws Exception { - try (SolrClient leaderSolr = getHttpSolrClient(NODE0.getBaseUrl().toString()); - SolrClient replicaSolr = getHttpSolrClient(NODE1.getBaseUrl().toString())) { + try (SolrClient leaderSolr = + new HttpJettySolrClient.Builder(NODE0.getBaseUrl().toString()).build(); + SolrClient replicaSolr = + new HttpJettySolrClient.Builder(NODE1.getBaseUrl().toString()).build()) { for (int d = firstDocId; d <= lastDocId; d++) { String docId = String.valueOf(d); assertDocExists("leader", leaderSolr, docId); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java index aec3a34ed362..680f779b3999 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java @@ -40,6 +40,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -254,14 +255,20 @@ public void testAddDocs() throws Exception { cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } TimeOut t = new TimeOut(REPLICATION_TIMEOUT_SECS, TimeUnit.SECONDS, TimeSource.NANO_TIME); for (Replica r : s.getReplicas(EnumSet.of(Replica.Type.TLOG))) { // TODO: assert replication < REPLICATION_TIMEOUT_SECS - try (SolrClient tlogReplicaClient = getHttpSolrClient(r)) { + try (SolrClient tlogReplicaClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build()) { while (true) { try { assertEquals( @@ -440,7 +447,10 @@ private void doReplaceLeader(boolean removeReplica) throws Exception { cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "1", "foo", "bar")); cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); - try (SolrClient leaderClient = getHttpSolrClient(s.getLeader())) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) + .withDefaultCollection(s.getLeader().getCoreName()) + .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -891,7 +901,8 @@ public void testOutOfOrderDBQWithInPlaceUpdates() throws Exception { updates.add(simulatedDBQ("inplace_updatable_int:5", 3L)); updates.add(simulatedUpdateRequest(1L, "id", 1, "inplace_updatable_int", 6, "_version_", 2L)); for (JettySolrRunner solrRunner : getSolrRunner(false)) { - try (SolrClient client = solrRunner.newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(solrRunner.getBaseUrl().toString()).build()) { for (UpdateRequest up : updates) { up.process(client, collectionName); } @@ -995,7 +1006,10 @@ private void waitForNumDocsInAllReplicas( if (!r.isActive(cluster.getSolrClient().getClusterState().getLiveNodes())) { continue; } - try (SolrClient replicaClient = getHttpSolrClient(r)) { + try (SolrClient replicaClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build()) { while (true) { try { assertEquals( @@ -1130,7 +1144,8 @@ private List getSolrCore(boolean isLeader) { private void checkRTG(int from, int to, List solrRunners) throws Exception { for (JettySolrRunner solrRunner : solrRunners) { - try (SolrClient client = solrRunner.newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(solrRunner.getBaseUrl().toString()).build()) { for (int i = from; i <= to; i++) { SolrQuery query = new SolrQuery(); query.set("distrib", false); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java index dc0a44359498..bbbcafc1a3b8 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java @@ -27,6 +27,7 @@ import java.util.Set; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.UpdateResponse; @@ -145,17 +146,32 @@ public static void createMiniSolrCloudCluster() throws Exception { assertNotNull("could not find URL for " + shardName + " replica", passiveUrl); if (shardName.equals("shard1")) { - S_ONE_LEADER_CLIENT = getHttpSolrClient(leaderUrl, COLLECTION_NAME); - S_ONE_NON_LEADER_CLIENT = getHttpSolrClient(passiveUrl, COLLECTION_NAME); + S_ONE_LEADER_CLIENT = + new HttpJettySolrClient.Builder(leaderUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); + S_ONE_NON_LEADER_CLIENT = + new HttpJettySolrClient.Builder(passiveUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); } else if (shardName.equals("shard2")) { - S_TWO_LEADER_CLIENT = getHttpSolrClient(leaderUrl, COLLECTION_NAME); - S_TWO_NON_LEADER_CLIENT = getHttpSolrClient(passiveUrl, COLLECTION_NAME); + S_TWO_LEADER_CLIENT = + new HttpJettySolrClient.Builder(leaderUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); + S_TWO_NON_LEADER_CLIENT = + new HttpJettySolrClient.Builder(passiveUrl) + .withDefaultCollection(COLLECTION_NAME) + .build(); } else { fail("unexpected shard: " + shardName); } } assertEquals("Should be exactly one server left (not hosting either shard)", 1, urlMap.size()); - NO_COLLECTION_CLIENT = getHttpSolrClient(urlMap.values().iterator().next(), COLLECTION_NAME); + NO_COLLECTION_CLIENT = + new HttpJettySolrClient.Builder(urlMap.values().iterator().next()) + .withDefaultCollection(COLLECTION_NAME) + .build(); assertNotNull(S_ONE_LEADER_CLIENT); assertNotNull(S_TWO_LEADER_CLIENT); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java index a39197320cfd..253a90206f60 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java @@ -39,6 +39,7 @@ import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -115,7 +116,10 @@ public static void createMiniSolrCloudCluster() throws Exception { for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { URL jettyURL = jetty.getBaseUrl(); - NODE_CLIENTS.add(getHttpSolrClient(jettyURL.toString(), COLLECTION_NAME)); + NODE_CLIENTS.add( + new HttpJettySolrClient.Builder(jettyURL.toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } assertEquals(numServers, NODE_CLIENTS.size()); } diff --git a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java index fcbc8b23ad11..ddb1cd71acdc 100644 --- a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java @@ -32,6 +32,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CollectionScopedSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest.Unload; import org.apache.solr.common.SolrInputDocument; @@ -155,7 +156,8 @@ private void testUnloadShardAndCollection() throws Exception { final String unloadCmdCoreName1 = (unloadInOrder ? coreName1 : coreName2); final String unloadCmdCoreName2 = (unloadInOrder ? coreName2 : coreName1); - try (SolrClient adminClient = getHttpSolrClient(buildUrl(jettys.get(0).getLocalPort()))) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(buildUrl(jettys.get(0).getLocalPort())).build()) { // now unload one of the two Unload unloadCmd = new Unload(false); unloadCmd.setCoreName(unloadCmdCoreName1); diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsRecoveryTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsRecoveryTest.java index 10385f2c54cb..6c4769d3b297 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsRecoveryTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsRecoveryTest.java @@ -27,6 +27,7 @@ import java.util.stream.Collectors; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -190,7 +191,10 @@ private void waitForNumDocsInAllReplicas(int numDocs, Collection replic if (!r.isActive(cluster.getSolrClient().getClusterState().getLiveNodes())) { continue; } - try (SolrClient replicaClient = getHttpSolrClient(r)) { + try (SolrClient replicaClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build()) { assertEquals( "Replica " + r.getName() + " not up to date", numDocs, diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/ConcurrentDeleteAndCreateCollectionTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/ConcurrentDeleteAndCreateCollectionTest.java index c89f46ccf391..da52dbe97c49 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/ConcurrentDeleteAndCreateCollectionTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/ConcurrentDeleteAndCreateCollectionTest.java @@ -24,6 +24,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.cloud.MiniSolrCloudCluster; @@ -68,7 +69,7 @@ public void testConcurrentCreateAndDeleteDoesNotFail() throws IOException { final String collectionName = "collection" + i; solrCluster.uploadConfigSet(configset("configset-2"), collectionName); final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString(); - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); threads[i] = new CreateDeleteSearchCollectionThread( "create-delete-search-" + i, @@ -95,7 +96,7 @@ public void testConcurrentCreateAndDeleteOverTheSameConfig() throws IOException final CreateDeleteCollectionThread[] threads = new CreateDeleteCollectionThread[2]; for (int i = 0; i < threads.length; i++) { final String collectionName = "collection" + i; - final SolrClient solrClient = getHttpSolrClient(baseUrl); + final SolrClient solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); threads[i] = new CreateDeleteCollectionThread( "create-delete-" + i, collectionName, configName, timeToRunSec, solrClient, failure); diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java index c55843dab9d9..6ef8e9048f6d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java @@ -43,6 +43,7 @@ import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -965,7 +966,8 @@ public void splitByRouteFieldTest() throws Exception { getCommonCloudSolrClient(); String baseUrl = getBaseUrlFromZk(cloudClient.getClusterState(), collectionName); - try (SolrClient collectionClient = getHttpSolrClient(baseUrl, collectionName)) { + try (SolrClient collectionClient = + new HttpJettySolrClient.Builder(baseUrl).withDefaultCollection(collectionName).build()) { ClusterState clusterState = cloudClient.getClusterState(); final DocRouter router = clusterState.getCollection(collectionName).getRouter(); @@ -1036,7 +1038,8 @@ private void splitByRouteKeyTest() throws Exception { getCommonCloudSolrClient(); String baseUrl = getBaseUrlFromZk(cloudClient.getClusterState(), collectionName); - try (SolrClient collectionClient = getHttpSolrClient(baseUrl, collectionName)) { + try (SolrClient collectionClient = + new HttpJettySolrClient.Builder(baseUrl).withDefaultCollection(collectionName).build()) { String splitKey = "b!"; @@ -1191,7 +1194,9 @@ protected void checkDocCountsAndShardStates( Replica shard1_0 = getLeaderFromZk(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_0); QueryResponse response; try (SolrClient shard1_0Client = - getHttpSolrClient(shard1_0.getBaseUrl(), shard1_0.getCoreName())) { + new HttpJettySolrClient.Builder(shard1_0.getBaseUrl()) + .withDefaultCollection(shard1_0.getCoreName()) + .build()) { response = shard1_0Client.query(query); } long shard10Count = response.getResults().getNumFound(); @@ -1199,7 +1204,9 @@ protected void checkDocCountsAndShardStates( Replica shard1_1 = getLeaderFromZk(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_1); QueryResponse response2; try (SolrClient shard1_1Client = - getHttpSolrClient(shard1_1.getBaseUrl(), shard1_1.getCoreName())) { + new HttpJettySolrClient.Builder(shard1_1.getBaseUrl()) + .withDefaultCollection(shard1_1.getCoreName()) + .build()) { response2 = shard1_1Client.query(query); } long shard11Count = response2.getResults().getNumFound(); @@ -1224,7 +1231,10 @@ protected void checkSubShardConsistency(String shard) throws SolrServerException for (Replica replica : slice.getReplicas()) { String coreUrl = replica.getCoreUrl(); QueryResponse response; - try (SolrClient client = getHttpSolrClient(replica)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { response = client.query(query); } numFound[c++] = response.getResults().getNumFound(); diff --git a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java index 6fa70f020e68..c3110bff329c 100644 --- a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java +++ b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java @@ -29,6 +29,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest.ListSnapshots; import org.apache.solr.client.solrj.response.CollectionAdminResponse; @@ -157,7 +158,7 @@ public void testSnapshots() throws Exception { assertTrue(snapshotByCoreName.containsKey(coreName)); CoreSnapshotMetaData coreSnapshot = snapshotByCoreName.get(coreName); - try (SolrClient adminClient = getHttpSolrClient(replicaBaseUrl)) { + try (SolrClient adminClient = new HttpJettySolrClient.Builder(replicaBaseUrl).build()) { Collection snapshots = listCoreSnapshots(adminClient, coreName); Optional metaData = snapshots.stream().filter(x -> commitName.equals(x.getName())).findFirst(); @@ -276,7 +277,7 @@ public void testSnapshots() throws Exception { String replicaBaseUrl = replica.getBaseUrl(); String coreName = replica.getCoreName(); - try (SolrClient adminClient = getHttpSolrClient(replicaBaseUrl)) { + try (SolrClient adminClient = new HttpJettySolrClient.Builder(replicaBaseUrl).build()) { Collection snapshots = listCoreSnapshots(adminClient, coreName); Optional metaData = snapshots.stream().filter(x -> commitName.equals(x.getName())).findFirst(); diff --git a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java index 431a43a2fb78..33ab744012b3 100644 --- a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java +++ b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java @@ -99,7 +99,9 @@ public void testBackupRestore() throws Exception { String duplicateName = commitName.concat("_duplicate"); try (SolrClient adminClient = - getHttpSolrClient(cluster.getJettySolrRunners().get(0).getBaseUrl().toString()); + new HttpJettySolrClient.Builder( + cluster.getJettySolrRunners().get(0).getBaseUrl().toString()) + .build(); SolrClient leaderClient = new HttpJettySolrClient.Builder(replica.getBaseUrl()) .withDefaultCollection(replica.getCoreName()) @@ -193,7 +195,9 @@ public void testIndexOptimization() throws Exception { String commitName = TestUtil.randomSimpleString(random(), 1, 5); try (SolrClient adminClient = - getHttpSolrClient(cluster.getJettySolrRunners().get(0).getBaseUrl().toString()); + new HttpJettySolrClient.Builder( + cluster.getJettySolrRunners().get(0).getBaseUrl().toString()) + .build(); SolrClient leaderClient = new HttpJettySolrClient.Builder(replica.getBaseUrl()) .withDefaultCollection(replica.getCoreName()) diff --git a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java index 8e7b5ab80ed0..3096e9a05a7c 100644 --- a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java +++ b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java @@ -36,6 +36,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.FileStoreApi; import org.apache.solr.client.solrj.request.V2Request; import org.apache.solr.client.solrj.response.SimpleSolrResponse; @@ -173,7 +174,8 @@ public void testFileStoreManagement() throws Exception { for (JettySolrRunner jettySolrRunner : cluster.getJettySolrRunners()) { final var fetchReq = new FileStoreApi.FetchFile("/package/mypkg/v1.0/runtimelibs.jar2"); fetchReq.setGetFrom("someFakeSolrNode:8983_solr"); - try (final var solrClient = jettySolrRunner.newClient()) { + try (final var solrClient = + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { final var expectedExc = expectThrows( RemoteSolrException.class, diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java index 7f45190869a7..f197a3c117eb 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java +++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java @@ -53,6 +53,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CoresApi; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.QueryRequest; @@ -243,7 +244,7 @@ private void reloadCore(JettySolrRunner jettySolrRunner, String core) throws Exc } private SolrClient adminClient(JettySolrRunner client) { - return getHttpSolrClient(client.getBaseUrl().toString()); + return new HttpJettySolrClient.Builder(client.getBaseUrl().toString()).build(); } @Test diff --git a/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java b/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java index 6305473b94e5..aad31ef2626e 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java +++ b/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; @@ -62,7 +63,10 @@ public void beforeTest() throws Exception { (CollectionAdminRequest.createCollection(DEFAULT_TEST_COLLECTION_NAME, "conf1", 1, 1) .process(cluster.getSolrClient()) .getStatus())); - adminClient = getHttpSolrClient(cluster.getJettySolrRunners().get(0).getBaseUrl().toString()); + adminClient = + new HttpJettySolrClient.Builder( + cluster.getJettySolrRunners().get(0).getBaseUrl().toString()) + .build(); initCoreNameAndSolrCoreClient(); } @@ -80,7 +84,10 @@ private void initCoreNameAndSolrCoreClient() { .iterator() .next(); coreName = r.getCoreName(); - coreClient = getHttpSolrClient(r); + coreClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build(); } @After diff --git a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java index 70db545fced4..c92edb046746 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java +++ b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java @@ -41,6 +41,7 @@ import org.apache.lucene.tests.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -96,7 +97,10 @@ public void beforeTest() throws Exception { (CollectionAdminRequest.createCollection(DEFAULT_TEST_COLLECTION_NAME, "conf1", 1, 1) .process(cluster.getSolrClient()) .getStatus())); - adminClient = getHttpSolrClient(cluster.getJettySolrRunners().get(0).getBaseUrl().toString()); + adminClient = + new HttpJettySolrClient.Builder( + cluster.getJettySolrRunners().get(0).getBaseUrl().toString()) + .build(); initCoreNameAndSolrCoreClient(); } @@ -371,7 +375,10 @@ private void initCoreNameAndSolrCoreClient() { .iterator() .next(); coreName = r.getCoreName(); - coreClient = getHttpSolrClient(r); + coreClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()) + .withDefaultCollection(r.getCoreName()) + .build(); } /** diff --git a/solr/core/src/test/org/apache/solr/handler/V2StandaloneTest.java b/solr/core/src/test/org/apache/solr/handler/V2StandaloneTest.java index aa76092cf5de..0283d770284d 100644 --- a/solr/core/src/test/org/apache/solr/handler/V2StandaloneTest.java +++ b/solr/core/src/test/org/apache/solr/handler/V2StandaloneTest.java @@ -21,6 +21,7 @@ import org.apache.commons.io.file.PathUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.V2Request; import org.apache.solr.common.util.NamedList; import org.apache.solr.embedded.JettyConfig; @@ -39,7 +40,8 @@ public void testWelcomeMessage() throws Exception { new JettySolrRunner(solrHomeTmp.toString(), JettyConfig.builder().build()); jetty.start(); - try (SolrClient client = getHttpSolrClient(buildUrl(jetty.getLocalPort()))) { + try (SolrClient client = + new HttpJettySolrClient.Builder(buildUrl(jetty.getLocalPort())).build()) { NamedList res = client.request(new V2Request.Builder("/").build()); NamedList header = (NamedList) res.get("responseHeader"); assertEquals(0, header.get("status")); diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java index 66627c225833..7b6890360122 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java @@ -34,6 +34,7 @@ import org.apache.solr.client.api.model.CoreStatusResponse; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.json.JacksonContentWriter; @@ -418,7 +419,8 @@ public void testDeleteInstanceDirAfterCreateFailure() throws Exception { runner.getSolrClient().commit("corex"); Path dataDir = null; - try (SolrClient client = getHttpSolrClient(runner.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(runner.getBaseUrl().toString()).build()) { final var status = CoreAdminRequest.getCoreStatus("corex", true, client); String dataDirectory = status.dataDir; dataDir = Path.of(dataDirectory); diff --git a/solr/core/src/test/org/apache/solr/handler/admin/HealthCheckHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/HealthCheckHandlerTest.java index 96cb2f4c4256..a839d10ccbcd 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/HealthCheckHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/HealthCheckHandlerTest.java @@ -29,6 +29,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.HealthCheckRequest; @@ -75,13 +76,15 @@ public void testHealthCheckHandler() throws Exception { // positive check that our exiting "healthy" node works with direct http client try (SolrClient solrClient = - getHttpSolrClient(cluster.getJettySolrRunner(0).getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(cluster.getJettySolrRunner(0).getBaseUrl().toString()) + .build()) { assertEquals(CommonParams.OK, runHealthcheckWithClient(solrClient).getNodeStatus()); } // successfully create a dummy collection try (SolrClient solrClient = - getHttpSolrClient(cluster.getJettySolrRunner(0).getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(cluster.getJettySolrRunner(0).getBaseUrl().toString()) + .build()) { CollectionAdminResponse collectionAdminResponse = CollectionAdminRequest.createCollection("test", "_default", 1, 1) .withProperty("solr.directoryFactory", "solr.StandardDirectoryFactory") @@ -95,7 +98,8 @@ public void testHealthCheckHandler() throws Exception { // add a new node for the purpose of negative testing JettySolrRunner newJetty = cluster.startJettySolrRunner(); - try (SolrClient solrClient = getHttpSolrClient(newJetty.getBaseUrl().toString())) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(newJetty.getBaseUrl().toString()).build()) { // positive check that our (new) "healthy" node works with direct http client final var response = runHealthcheckWithClient(solrClient); @@ -116,7 +120,8 @@ public void testHealthCheckHandler() throws Exception { // (redundant) positive check that our (previously) exiting "healthy" node (still) works // after getting negative results from our broken node and failed core container try (SolrClient solrClient = - getHttpSolrClient(cluster.getJettySolrRunner(0).getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(cluster.getJettySolrRunner(0).getBaseUrl().toString()) + .build()) { assertEquals(CommonParams.OK, runHealthcheckWithClient(solrClient).getNodeStatus()); } @@ -127,7 +132,8 @@ public void testHealthCheckHandlerSolrJ() throws IOException, SolrServerExceptio // positive check of a HealthCheckRequest using http client HealthCheckRequest req = new HealthCheckRequest(); try (SolrClient solrClient = - getHttpSolrClient(cluster.getJettySolrRunner(0).getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(cluster.getJettySolrRunner(0).getBaseUrl().toString()) + .build()) { HealthCheckResponse rsp = req.process(solrClient); assertEquals(CommonParams.OK, rsp.getNodeStatus()); } @@ -148,7 +154,8 @@ public void testHealthCheckHandlerSolrJ() throws IOException, SolrServerExceptio @Test public void testV1FailureResponseIncludesStatusField() throws Exception { JettySolrRunner newJetty = cluster.startJettySolrRunner(); - try (SolrClient solrClient = getHttpSolrClient(newJetty.getBaseUrl().toString())) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(newJetty.getBaseUrl().toString()).build()) { // Sanity check: the new node is initially healthy. assertEquals(CommonParams.OK, runHealthcheckWithClient(solrClient).getNodeStatus()); diff --git a/solr/core/src/test/org/apache/solr/handler/admin/LukeHandlerCloudTest.java b/solr/core/src/test/org/apache/solr/handler/admin/LukeHandlerCloudTest.java index c9ddbabe2bbc..2c270eef2b93 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/LukeHandlerCloudTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/LukeHandlerCloudTest.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.LukeRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -137,7 +138,10 @@ public void testInconsistentIndexFlagsAcrossShards() throws Exception { String targetSliceName = null; for (Slice slice : docColl.getSlices()) { Replica leader = slice.getLeader(); - try (SolrClient client = getHttpSolrClient(leader)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) + .build()) { SolrQuery q = new SolrQuery("id:target"); q.set(DISTRIB, "false"); QueryResponse qr = client.query(q); @@ -153,7 +157,10 @@ public void testInconsistentIndexFlagsAcrossShards() throws Exception { for (Slice slice : docColl.getSlices()) { if (!slice.getName().equals(targetSliceName)) { Replica leader = slice.getLeader(); - try (SolrClient client = getHttpSolrClient(leader)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) + .build()) { SolrQuery q = new SolrQuery("*:*"); q.setRows(1); q.set(DISTRIB, "false"); diff --git a/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java b/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java index fcc0efde3ba5..4077b78cbd5a 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.stream.Collectors; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -90,7 +91,8 @@ public void test() throws Exception { .equals(getCollectionState(COLLECTION).getLeader("shard1").getBaseUrl())) { specialIdx = solrClients.size(); } - solrClients.add(jettySolrRunner.newClient()); + solrClients.add( + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()); } new UpdateRequest() diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java index ad9bcf5a479d..7a9a65360f65 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java @@ -27,6 +27,7 @@ import java.util.Set; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.cloud.MiniSolrCloudCluster; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.NodeConfig; @@ -123,7 +124,8 @@ public void testZkMetrics() throws Exception { reader, "solr_zk_ops", baseLabels.merge(Labels.of("ops", type)))); } - try (SolrClient solrClient = j.newClient()) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(j.getBaseUrl().toString()).build()) { assertNotNull(solrClient); HttpClient httpClient = j.getSolrClient().getHttpClient(); var initialChildFetches = diff --git a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java index 610b7267cbe3..88bf8a94f40f 100644 --- a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java +++ b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java @@ -28,6 +28,7 @@ import java.util.Set; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.MetricsRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; import org.apache.solr.common.params.ModifiableSolrParams; @@ -68,7 +69,8 @@ public void testPrometheusStructureOutput() throws Exception { params.set("wt", "prometheus"); var req = new MetricsRequest(params); // response parser set in MetricsRequest constructor - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); String output = InputStreamResponseParser.consumeResponseToString(res); @@ -119,7 +121,8 @@ public void testAcceptHeaderOpenMetricsFormat() throws Exception { req.addHeader("Accept", "application/openmetrics-text;version=1.0.0"); - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); try (InputStream in = (InputStream) res.get(STREAM_KEY)) { @@ -137,7 +140,8 @@ public void testWtParameterOpenMetricsFormat() throws Exception { req.setResponseParser(new InputStreamResponseParser("openmetrics")); - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); try (InputStream in = (InputStream) res.get(STREAM_KEY)) { @@ -155,7 +159,8 @@ public void testDefaultPrometheusFormat() throws Exception { req.setResponseParser(new InputStreamResponseParser("prometheus")); - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); try (InputStream in = (InputStream) res.get(STREAM_KEY)) { @@ -173,7 +178,8 @@ public void testDefaultPrometheusFormatNoWtParam() throws Exception { req.setResponseParser(new InputStreamResponseParser(null)); - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); try (InputStream in = (InputStream) res.get(STREAM_KEY)) { @@ -191,7 +197,8 @@ public void testUnsupportedMetricsFormat() throws Exception { req.setResponseParser(new InputStreamResponseParser("unknownFormat")); - try (SolrClient adminClient = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient adminClient = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { NamedList res = adminClient.request(req); InputStream stream = (InputStream) res.get("stream"); if (stream != null) stream.close(); diff --git a/solr/core/src/test/org/apache/solr/response/TestRawTransformer.java b/solr/core/src/test/org/apache/solr/response/TestRawTransformer.java index 0190653249be..a59b39daf495 100644 --- a/solr/core/src/test/org/apache/solr/response/TestRawTransformer.java +++ b/solr/core/src/test/org/apache/solr/response/TestRawTransformer.java @@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; @@ -62,13 +63,13 @@ public static void beforeClass() throws Exception { initStandalone(); JSR.start(); if (random().nextBoolean()) { - CLIENT = JSR.newClient(); + CLIENT = new HttpJettySolrClient.Builder(JSR.getBaseUrl().toString()).build(); } else { CLIENT = new EmbeddedSolrServer(JSR.getCoreContainer(), null); } } else { initCloud(); - CLIENT = JSR.newClient(); + CLIENT = new HttpJettySolrClient.Builder(JSR.getBaseUrl().toString()).build(); JSR = null; } initIndex(); diff --git a/solr/core/src/test/org/apache/solr/schema/ManagedSchemaRoundRobinCloudTest.java b/solr/core/src/test/org/apache/solr/schema/ManagedSchemaRoundRobinCloudTest.java index 2b770f7f23c6..3d235e40d962 100644 --- a/solr/core/src/test/org/apache/solr/schema/ManagedSchemaRoundRobinCloudTest.java +++ b/solr/core/src/test/org/apache/solr/schema/ManagedSchemaRoundRobinCloudTest.java @@ -23,6 +23,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.schema.SchemaRequest; import org.apache.solr.client.solrj.response.schema.SchemaResponse; @@ -58,7 +59,9 @@ public void testAddFieldsRoundRobin() throws Exception { try { for (int shardNum = 0; shardNum < NUM_SHARDS; ++shardNum) { clients.add( - getHttpSolrClient(cluster.getJettySolrRunners().get(shardNum).getBaseUrl().toString())); + new HttpJettySolrClient.Builder( + cluster.getJettySolrRunners().get(shardNum).getBaseUrl().toString()) + .build()); } int shardNum = 0; for (int fieldNum = 0; fieldNum < NUM_FIELDS_TO_ADD; ++fieldNum) { diff --git a/solr/core/src/test/org/apache/solr/search/TestCoordinatorRole.java b/solr/core/src/test/org/apache/solr/search/TestCoordinatorRole.java index 3dbe061559fb..9a641323d5ef 100644 --- a/solr/core/src/test/org/apache/solr/search/TestCoordinatorRole.java +++ b/solr/core/src/test/org/apache/solr/search/TestCoordinatorRole.java @@ -219,7 +219,8 @@ public void testNRTRestart() throws Exception { } assertNotNull(nrtJetty); assertNotNull(pullJetty); - try (SolrClient client = pullJetty.newClient()) { + try (SolrClient client = + new HttpJettySolrClient.Builder(pullJetty.getBaseUrl().toString()).build()) { client.add(COLL, sid); client.commit(COLL); assertEquals( diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java index 2853d1c7c3fd..c993c4a49013 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java @@ -31,6 +31,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -123,7 +124,10 @@ public static void createMiniSolrCloudCluster() throws Exception { waitForRecoveriesToFinish(CLOUD_CLIENT); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) - CLIENTS.add(getHttpSolrClient(jetty.getBaseUrl().toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); final int numDocs = atLeast(100); for (int id = 0; id < numDocs; id++) { diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java index 48ccb4a133f3..53b44f60af36 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java @@ -34,6 +34,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -150,7 +151,10 @@ public static void createMiniSolrCloudCluster() throws Exception { waitForRecoveriesToFinish(CLOUD_CLIENT); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - CLIENTS.add(getHttpSolrClient(jetty.getBaseUrl().toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } final int numDocs = atLeast(100); diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java index deec286fd215..a5952bd235ee 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java @@ -37,6 +37,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -142,7 +143,10 @@ public static void createMiniSolrCloudCluster() throws Exception { waitForRecoveriesToFinish(CLOUD_CLIENT); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - CLIENTS.add(getHttpSolrClient(jetty.getBaseUrl().toString(), COLLECTION_NAME)); + CLIENTS.add( + new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()) + .withDefaultCollection(COLLECTION_NAME) + .build()); } final int numDocs = atLeast(100); diff --git a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java index 4f63b16f52f7..a7b39837c590 100644 --- a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java +++ b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java @@ -22,6 +22,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.response.CollectionAdminResponse; @@ -108,9 +109,10 @@ public void testSimpleQuery() throws Exception { // Test against all nodes for (JettySolrRunner jettySolrRunner : solrCluster.getJettySolrRunners()) { - try (SolrClient solrClient = getHttpSolrClient(jettySolrRunner.getBaseUrl().toString())) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { try (SolrClient solrClient_local = - getHttpSolrClient(jettySolrRunner.getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { SolrQuery query = new SolrQuery("cat:football"); query.setFields("*,score"); @@ -160,10 +162,11 @@ public void testMultiCollectionQuery() throws Exception { // Test against all nodes for (JettySolrRunner jettySolrRunner : solrCluster.getJettySolrRunners()) { - try (SolrClient solrClient = getHttpSolrClient(jettySolrRunner.getBaseUrl().toString())) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { try (SolrClient solrClient_local = - getHttpSolrClient(jettySolrRunner.getBaseUrl().toString())) { + new HttpJettySolrClient.Builder(jettySolrRunner.getBaseUrl().toString()).build()) { SolrQuery query = new SolrQuery("cat:football"); query.setFields("*,score").add("collection", "collection1,collection2"); QueryResponse queryResponse = solrClient.query("collection1", query); diff --git a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java index 9684d5447cf7..3666befc374b 100644 --- a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java @@ -31,6 +31,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.QueryRequest; @@ -210,7 +211,7 @@ public void testBasicAuth() throws Exception { CollectionAdminRequest.Reload reload = CollectionAdminRequest.reloadCollection(COLLECTION); - try (var solrClient2 = getHttpSolrClient(baseUrl)) { + try (var solrClient2 = new HttpJettySolrClient.Builder(baseUrl).build()) { expectThrows(RemoteSolrException.class, () -> solrClient2.request(reload)); reload.setMethod(SolrRequest.METHOD.POST); expectThrows(RemoteSolrException.class, () -> solrClient2.request(reload)); @@ -247,7 +248,8 @@ public void testBasicAuth() throws Exception { // Test for SOLR-12514. Create a new jetty . This jetty does not have the collection. // Make a request to that jetty and it should fail JettySolrRunner aNewJetty = cluster.startJettySolrRunner(); - SolrClient aNewClient = aNewJetty.newClient(); + SolrClient aNewClient = + new HttpJettySolrClient.Builder(aNewJetty.getBaseUrl().toString()).build(); UpdateRequest delQuery = null; delQuery = new UpdateRequest().deleteByQuery("*:*"); delQuery.setBasicAuthCredentials("harry", "HarryIsUberCool"); diff --git a/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java b/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java index 63c83c135792..efbedee74f43 100644 --- a/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java +++ b/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java @@ -27,6 +27,7 @@ import java.util.Map; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.common.params.MapSolrParams; import org.apache.solr.common.util.Utils; import org.apache.solr.embedded.JettySolrRunner; @@ -75,7 +76,7 @@ public void testBasicAuth() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 20); diff --git a/solr/core/src/test/org/apache/solr/security/MultiAuthPluginTest.java b/solr/core/src/test/org/apache/solr/security/MultiAuthPluginTest.java index 9cb8d774989a..fd05a64a72f1 100644 --- a/solr/core/src/test/org/apache/solr/security/MultiAuthPluginTest.java +++ b/solr/core/src/test/org/apache/solr/security/MultiAuthPluginTest.java @@ -39,6 +39,7 @@ import java.util.stream.Collectors; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.util.CommandOperation; @@ -90,7 +91,7 @@ public void testMultiAuthEditAPI() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); @@ -266,7 +267,7 @@ public void testMultiAuthXBasicLookup() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); @@ -308,7 +309,7 @@ public void testMultiAuthWithBasicAndXBasic() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); @@ -354,7 +355,7 @@ public void testMultiAuthWithSinglePlugin() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); @@ -395,7 +396,7 @@ public void testMultiAuthWithBasicAndMockPlugin() throws Exception { try { httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); @@ -432,7 +433,7 @@ public void testMultiAuthWithBasicPluginAndAjax() throws Exception { try { var httpClient = jetty.getSolrClient().getHttpClient(); String baseUrl = buildUrl(jetty.getLocalPort()); - solrClient = getHttpSolrClient(baseUrl); + solrClient = new HttpJettySolrClient.Builder(baseUrl).build(); verifySecurityStatus(httpClient, baseUrl + authcPrefix, "/errorMessages", null, 5); diff --git a/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java b/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java index 4a92852cbdc5..9f77d3bd636c 100644 --- a/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java +++ b/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java @@ -27,6 +27,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CollectionScopedSolrClient; import org.apache.solr.client.solrj.impl.LBSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.cloud.CloudInspectUtil; @@ -114,10 +115,16 @@ private void checkShardsConsistentNumFound() throws Exception { final String shardName = entry.getKey(); final Slice slice = entry.getValue(); final Replica leader = entry.getValue().getLeader(); - try (SolrClient leaderClient = getHttpSolrClient(leader)) { + try (SolrClient leaderClient = + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) + .build()) { final SolrDocumentList leaderResults = leaderClient.query(params).getResults(); for (Replica replica : slice) { - try (SolrClient replicaClient = getHttpSolrClient(replica)) { + try (SolrClient replicaClient = + new HttpJettySolrClient.Builder(replica.getBaseUrl()) + .withDefaultCollection(replica.getCoreName()) + .build()) { final SolrDocumentList replicaResults = replicaClient.query(params).getResults(); assertEquals( "inconsistency w/leader: shard=" + shardName + "core=" + replica.getCoreName(), diff --git a/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java b/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java index 6c1dcc0fa8b9..c4e03ae5b25f 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java +++ b/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.lucene.util.IOUtils; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.request.json.JsonQueryRequest; @@ -59,7 +60,7 @@ public static void setupCluster() throws Exception { CLIENTS.add(cluster.getSolrClient()); for (JettySolrRunner jetty : cluster.getJettySolrRunners()) { - final SolrClient c = getHttpSolrClient(jetty.getBaseUrl().toString()); + final SolrClient c = new HttpJettySolrClient.Builder(jetty.getBaseUrl().toString()).build(); NODE_CLIENTS.add(c); CLIENTS.add(c); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java index c791c7fe7eb9..ba5a7fd73e3e 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java @@ -439,7 +439,7 @@ public void testExampleConfig() throws Exception { if (solrTestRule.getJetty() != null) { // check system wide system handler + "/admin/info/system" String url = solrTestRule.getBaseUrl(); - try (SolrClient adminClient = getHttpSolrClient(url)) { + try (SolrClient adminClient = new HttpJettySolrClient.Builder(url).build()) { SolrQuery q = new SolrQuery(); final var rsp = new SystemInfoRequest().process(adminClient); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java index 8d41ab9ce224..f4716ee0de1a 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java @@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -78,8 +79,9 @@ protected SolrClient getSolrClient() { * options. */ public SolrClient createNewSolrClient() { - return SolrTestCaseJ4.getHttpSolrClient( - solrTestRule.getBaseUrl(), DEFAULT_TEST_COLLECTION_NAME); + return new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()) + .withDefaultCollection(DEFAULT_TEST_COLLECTION_NAME) + .build(); } /** query the example */ 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 88ae42fc32c4..913253ec2754 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 @@ -406,7 +406,8 @@ public void testRouting() throws Exception { params.add("distrib", "false"); QueryRequest queryRequest = new QueryRequest(params); - try (SolrClient solrClient = getHttpSolrClient(baseUrl, coreName)) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(baseUrl).withDefaultCollection(coreName).build()) { QueryResponse queryResponse = queryRequest.process(solrClient); SolrDocumentList docList = queryResponse.getResults(); assertEquals(1, docList.getNumFound()); @@ -455,7 +456,8 @@ public void testRouting() throws Exception { params.add("q", "id:" + id); params.add("distrib", "false"); QueryRequest queryRequest = new QueryRequest(params); - try (SolrClient solrClient = getHttpSolrClient(baseUrl, coreName)) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(baseUrl).withDefaultCollection(coreName).build()) { QueryResponse queryResponse = queryRequest.process(solrClient); SolrDocumentList docList = queryResponse.getResults(); assertEquals(1, docList.getNumFound()); @@ -847,7 +849,8 @@ public void stateVersionParamTest() throws Exception { SolrQuery q = new SolrQuery().setQuery("*:*"); RemoteSolrException sse = null; - try (SolrClient solrClient = getHttpSolrClient(r.getBaseUrl(), COLLECTION)) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(r.getBaseUrl()).withDefaultCollection(COLLECTION).build()) { if (log.isInfoEnabled()) { log.info("should work query, result {}", solrClient.query(q)); @@ -893,7 +896,8 @@ public void stateVersionParamTest() throws Exception { log.info("the node which does not serve this collection{} ", theNode); assertNotNull(theNode); - try (SolrClient solrClient = getHttpSolrClient(theNode, COLLECTION)) { + try (SolrClient solrClient = + new HttpJettySolrClient.Builder(theNode).withDefaultCollection(COLLECTION).build()) { q.setParam(CloudSolrClient.STATE_VERSION, COLLECTION + ":" + (coll.getZNodeVersion() - 1)); try { diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java index e9c4e9e093a6..0a1c81363e9a 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java @@ -23,6 +23,7 @@ import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; @@ -50,7 +51,10 @@ public static void beforeTest() throws Exception { @Test public void testDeleteByIdReportsInvalidIdLists() throws Exception { - try (SolrClient client = getHttpSolrClient(solrTestRule.getBaseUrl(), ANY_COLLECTION)) { + try (SolrClient client = + new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()) + .withDefaultCollection(ANY_COLLECTION) + .build()) { assertExceptionThrownWithMessageContaining( IllegalArgumentException.class, List.of("ids", "null"), @@ -77,7 +81,7 @@ public void testDeleteByIdReportsInvalidIdLists() throws Exception { }); } - try (SolrClient client = getHttpSolrClient(solrTestRule.getBaseUrl())) { + try (SolrClient client = new HttpJettySolrClient.Builder(solrTestRule.getBaseUrl()).build()) { assertExceptionThrownWithMessageContaining( IllegalArgumentException.class, List.of("ids", "null"), diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LB2SolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LB2SolrClientTest.java index 849d8953c0fa..5fca5e8f7898 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LB2SolrClientTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LB2SolrClientTest.java @@ -91,7 +91,9 @@ private void addDocs(SolrInstance solrInstance) throws IOException, SolrServerEx } SolrResponseBase resp; try (SolrClient client = - getHttpSolrClient(solrInstance.getBaseUrl(), solrInstance.getDefaultCollection())) { + new HttpJettySolrClient.Builder(solrInstance.getBaseUrl()) + .withDefaultCollection(solrInstance.getDefaultCollection()) + .build()) { resp = client.add(docs); assertEquals(0, resp.getStatus()); resp = client.commit(); diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java index 2cc6ea7ce5af..332863410cbe 100644 --- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java @@ -51,6 +51,7 @@ import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.QueryResponse; @@ -455,7 +456,9 @@ public SequencedMap, String> getExtraRequestFilters() { } protected HttpSolrClient createNewSolrClient(int port) { - return getHttpSolrClient(buildUrl(port), DEFAULT_TEST_CORENAME); + return new HttpJettySolrClient.Builder(buildUrl(port)) + .withDefaultCollection(DEFAULT_TEST_CORENAME) + .build(); } protected static void addFields(SolrInputDocument doc, Object... fields) { diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java index 160da2b1a85f..a2f4b24834a9 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java @@ -35,6 +35,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; @@ -405,7 +406,8 @@ public String getShardURL() { public SolrClient getSolrJ() { if (solrj == null) { - solrj = getHttpSolrClient(getBaseURL(), collection); + solrj = + new HttpJettySolrClient.Builder(getBaseURL()).withDefaultCollection(collection).build(); } return solrj; } 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 b3c50f8e151b..902d70e3b56b 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -89,7 +89,6 @@ import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.SolrInputField; -import org.apache.solr.common.cloud.Replica; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.MultiMapSolrParams; @@ -2557,38 +2556,6 @@ private void randomizeCloudSolrClient() { } } - /** - * This method creates a basic HttpSolrClient. Tests that want to control the creation process - * should use the {@link org.apache.solr.client.solrj.jetty.HttpJettySolrClient.Builder} class - * directly - * - * @param url the base URL for a Solr node. Should not contain a core or collection name. - */ - @Deprecated // probably use an existing client like on a testRule/jettyRunner - public static HttpJettySolrClient getHttpSolrClient(String url) { - return new HttpJettySolrClient.Builder(url).build(); - } - - /** Create a basic HttpSolrClient pointed at the specified replica */ - @Deprecated // probably use an existing client like on a testRule/jettyRunner - public static HttpJettySolrClient getHttpSolrClient(Replica replica) { - return getHttpSolrClient(replica.getBaseUrl(), replica.getCoreName()); - } - - /** - * This method creates a basic HttpSolrClient. Tests that want to control the creation process - * should use the {@link org.apache.solr.client.solrj.jetty.HttpJettySolrClient.Builder} class - * directly - * - * @param url the base URL of a Solr node. Should not include a collection or core name. - * @param defaultCoreName the name of a core that the created client should default to when making - * core-aware requests - */ - @Deprecated // probably use an existing client like on a testRule/jettyRunner - public static HttpJettySolrClient getHttpSolrClient(String url, String defaultCoreName) { - return new HttpJettySolrClient.Builder(url).withDefaultCollection(defaultCoreName).build(); - } - /** * Returns a randomly generated Date in the appropriate Solr external (input) format * diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java index 20ca82790836..c619c3354ead 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java @@ -2825,7 +2825,7 @@ protected String printClusterStateInfo(String collection) throws Exception { protected boolean reloadCollection(Replica replica, String testCollectionName) throws Exception { String coreName = replica.getCoreName(); boolean reloadedOk = false; - try (SolrClient client = getHttpSolrClient(replica.getBaseUrl())) { + try (SolrClient client = new HttpJettySolrClient.Builder(replica.getBaseUrl()).build()) { CoreAdminResponse statusResp = CoreAdminRequest.getStatus(coreName, client); long leaderCoreStartTime = statusResp.getStartTime(coreName).getTime(); diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCollectionsAPIDistributedZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCollectionsAPIDistributedZkTestBase.java index f4bc7e54bb8f..7548f869401e 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCollectionsAPIDistributedZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCollectionsAPIDistributedZkTestBase.java @@ -40,6 +40,7 @@ import org.apache.solr.client.solrj.SolrRequest.METHOD; import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; @@ -555,7 +556,7 @@ private void collectStartTimes(String collectionName, Map urlToTim for (Slice shard : collectionState) { for (Replica replica : shard) { CoreStatusResponse.SingleCoreData coreStatus; - try (SolrClient server = getHttpSolrClient(replica.getBaseUrl())) { + try (SolrClient server = new HttpJettySolrClient.Builder(replica.getBaseUrl()).build()) { coreStatus = CoreAdminRequest.getCoreStatus(replica.getCoreName(), false, server); } long before = coreStatus.startTime.getTime(); @@ -635,7 +636,7 @@ public void addReplicaTest() throws Exception { assertNotNull(newReplica); cluster.waitForActiveCollection(collectionName, 2, 6); - try (SolrClient coreclient = getHttpSolrClient(newReplica.getBaseUrl())) { + try (SolrClient coreclient = new HttpJettySolrClient.Builder(newReplica.getBaseUrl()).build()) { CoreAdminResponse status = CoreAdminRequest.getStatus(newReplica.getStr("core"), coreclient); final var coreStatus = status.getCoreStatus(newReplica.getStr("core")); String instanceDirStr = coreStatus.instanceDir; diff --git a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java index b27651251f3d..e2b7bfac19f7 100644 --- a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java +++ b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java @@ -654,7 +654,7 @@ public void dumpCoresInfo(PrintStream pw) { if (getCoreContainer() != null) { final var coreStatusReq = new CoresApi.GetAllCoreStatus(); coreStatusReq.setIndexInfo(true); - try (final var client = newClient()) { + try (final var client = new HttpJettySolrClient.Builder(getBaseUrl().toString()).build()) { final var coreStatusRsp = coreStatusReq.process(client); Utils.writeJson(coreStatusRsp, pw, true); } catch (SolrServerException | IOException e) { @@ -749,11 +749,6 @@ public URL getProxyBaseUrl() { } } - @Deprecated - public HttpJettySolrClient newClient() { - return new HttpJettySolrClient.Builder(getBaseUrl().toString()).build(); - } - public HttpJettySolrClient newClient(int connectionTimeoutMillis, int socketTimeoutMillis) { return new HttpJettySolrClient.Builder(getBaseUrl().toString()) .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS) diff --git a/solr/test-framework/src/test/org/apache/solr/embedded/TestJettySolrRunner.java b/solr/test-framework/src/test/org/apache/solr/embedded/TestJettySolrRunner.java index 230a279864dd..a941574e7acf 100644 --- a/solr/test-framework/src/test/org/apache/solr/embedded/TestJettySolrRunner.java +++ b/solr/test-framework/src/test/org/apache/solr/embedded/TestJettySolrRunner.java @@ -25,6 +25,7 @@ import java.util.Properties; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.cloud.MiniSolrCloudCluster; import org.junit.Test; @@ -55,7 +56,8 @@ public void testPassSolrHomeToRunner() throws Exception { try { runner.start(); - try (SolrClient client = getHttpSolrClient(runner.getBaseUrl().toString())) { + try (SolrClient client = + new HttpJettySolrClient.Builder(runner.getBaseUrl().toString()).build()) { CoreAdminRequest.Create createReq = new CoreAdminRequest.Create(); createReq.setCoreName("newcore"); createReq.setConfigSet("minimal"); From 9ea76db016539355d32114fb78224c55e9456a4c Mon Sep 17 00:00:00 2001 From: Serhiy Bzhezytskyy Date: Fri, 21 Aug 2026 14:10:07 +0300 Subject: [PATCH 2/2] SOLR-18390: evaluate Slice.getLeader() once per client, not twice The mechanical migration called .getLeader() separately for getBaseUrl() and getCoreName(). For PRS collections getLeader() recomputes the leader on every call (its own comment: 'leader may keep changing') -- calling it twice risked getBaseUrl() and getCoreName() coming from two different replicas if the leader changed in between. Capture it once instead. --- .../cloud/FullSolrCloudDistribCmdsTest.java | 20 +++++++++++-------- .../apache/solr/cloud/TestPullReplica.java | 15 ++++++++------ .../cloud/TestPullReplicaErrorHandling.java | 5 +++-- .../solr/cloud/TestPullReplicaWithAuth.java | 5 +++-- .../apache/solr/cloud/TestTlogReplica.java | 10 ++++++---- 5 files changed, 33 insertions(+), 22 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java index e162c35b15a6..451fadbeae13 100644 --- a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java @@ -171,13 +171,15 @@ public void testDeleteByIdImplicitRouter() throws Exception { (n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2)); final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName); + Replica shard1Leader = docCol.getSlice("shard1").getLeader(); + Replica shard2Leader = docCol.getSlice("shard2").getLeader(); try (SolrClient shard1 = - new HttpJettySolrClient.Builder(docCol.getSlice("shard1").getLeader().getBaseUrl()) - .withDefaultCollection(docCol.getSlice("shard1").getLeader().getCoreName()) + new HttpJettySolrClient.Builder(shard1Leader.getBaseUrl()) + .withDefaultCollection(shard1Leader.getCoreName()) .build(); SolrClient shard2 = - new HttpJettySolrClient.Builder(docCol.getSlice("shard2").getLeader().getBaseUrl()) - .withDefaultCollection(docCol.getSlice("shard2").getLeader().getCoreName()) + new HttpJettySolrClient.Builder(shard2Leader.getBaseUrl()) + .withDefaultCollection(shard2Leader.getCoreName()) .build()) { // Add three documents to shard1 @@ -332,13 +334,15 @@ public void testDeleteByIdCompositeRouterWithRouterField() throws Exception { (n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2)); final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName); + Replica shard1Leader = docCol.getSlice("shard1").getLeader(); + Replica shard2Leader = docCol.getSlice("shard2").getLeader(); try (SolrClient shard1 = - new HttpJettySolrClient.Builder(docCol.getSlice("shard1").getLeader().getBaseUrl()) - .withDefaultCollection(docCol.getSlice("shard1").getLeader().getCoreName()) + new HttpJettySolrClient.Builder(shard1Leader.getBaseUrl()) + .withDefaultCollection(shard1Leader.getCoreName()) .build(); SolrClient shard2 = - new HttpJettySolrClient.Builder(docCol.getSlice("shard2").getLeader().getBaseUrl()) - .withDefaultCollection(docCol.getSlice("shard2").getLeader().getCoreName()) + new HttpJettySolrClient.Builder(shard2Leader.getBaseUrl()) + .withDefaultCollection(shard2Leader.getCoreName()) .build()) { // Add six documents w/diff routes (all sent to shard1 leader's core) diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java index 2c5893571d48..13ba5dff4994 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java @@ -297,9 +297,10 @@ public void testAddDocs() throws Exception { log.info("Committed doc {} to leader", numDocs); Slice s = docCollection.getSlices().iterator().next(); + Replica sliceLeader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(sliceLeader.getBaseUrl()) + .withDefaultCollection(sliceLeader.getCoreName()) .build()) { assertEquals(numDocs, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -592,9 +593,10 @@ private void doTestNoLeader(boolean removeReplica) throws Exception { cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "1", "foo", "bar")); cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); + Replica sliceLeader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(sliceLeader.getBaseUrl()) + .withDefaultCollection(sliceLeader.getCoreName()) .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -701,9 +703,10 @@ private void doTestNoLeader(boolean removeReplica) throws Exception { // add docs agin cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "2", "foo", "zoo")); s = docCollection.getSlices().iterator().next(); + sliceLeader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(sliceLeader.getBaseUrl()) + .withDefaultCollection(sliceLeader.getCoreName()) .build()) { leaderClient.commit(); assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java index 78b805d79b58..f3ff272d21f8 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java @@ -140,9 +140,10 @@ public void testCantConnectToPullReplica() throws Exception { proxy.close(); for (int i = 1; i <= 10; i++) { addDocs(10 + i); + Replica leader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) .build()) { assertNumDocs(10 + i, leaderClient); } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java index 77e64f382da9..d9079ceefb1e 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaWithAuth.java @@ -94,9 +94,10 @@ public void testPKIAuthWorksForPullReplication() throws Exception { ureq.commit(solrClient, collectionName); Slice s = docCollection.getSlices().iterator().next(); + Replica leader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(leader.getBaseUrl()) + .withDefaultCollection(leader.getCoreName()) .build()) { assertEquals( numDocs, diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java index 680f779b3999..635a19049580 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java @@ -255,9 +255,10 @@ public void testAddDocs() throws Exception { cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); + Replica sliceLeader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(sliceLeader.getBaseUrl()) + .withDefaultCollection(sliceLeader.getCoreName()) .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); } @@ -447,9 +448,10 @@ private void doReplaceLeader(boolean removeReplica) throws Exception { cluster.getSolrClient().add(collectionName, new SolrInputDocument("id", "1", "foo", "bar")); cluster.getSolrClient().commit(collectionName); Slice s = docCollection.getSlices().iterator().next(); + Replica sliceLeader = s.getLeader(); try (SolrClient leaderClient = - new HttpJettySolrClient.Builder(s.getLeader().getBaseUrl()) - .withDefaultCollection(s.getLeader().getCoreName()) + new HttpJettySolrClient.Builder(sliceLeader.getBaseUrl()) + .withDefaultCollection(sliceLeader.getCoreName()) .build()) { assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound()); }