This is an automated email from the ASF dual-hosted git repository. dsmiley pushed a commit to branch branch_10x in repository https://gitbox.apache.org/repos/asf/solr.git
commit 9ad63cc534c8befd4290278636e3c6ef4cb751f8 Author: David Smiley <[email protected]> AuthorDate: Sat Aug 1 12:59:41 2026 -0400 Simplify SolrRequest path usage: prefer ctor not setPath (#4689) (mostly tests) Also switched some inappropriate usages of QueryRequest to GenericSolrRequest. (cherry picked from commit b47aacaec82be9bef6e97643503dff45122321ba) --- .../apache/solr/cloud/BasicDistributedZkTest.java | 7 +++++-- .../apache/solr/cloud/MultiThreadedOCPTest.java | 8 +++++--- .../org/apache/solr/cloud/SSLMigrationTest.java | 8 +++++--- .../TestCloudPhrasesIdentificationComponent.java | 6 ++---- .../solr/cloud/TestGracefulJettyShutdown.java | 3 +-- .../solr/cloud/api/collections/ShardSplitTest.java | 8 +++++--- .../TestRequestStatusCollectionAPI.java | 8 +++++--- .../solr/response/TestErrorResponseStackTrace.java | 4 ++-- .../apache/solr/schema/TestCloudManagedSchema.java | 7 ++++--- .../org/apache/solr/search/TestSmileRequest.java | 4 ---- .../apache/solr/update/UuidAtomicUpdateTest.java | 3 +-- .../update/processor/AtomicUpdateJavabinTest.java | 3 +-- .../solr/ltr/TestLTRReRankCutoffOnSolrCloud.java | 9 +++------ .../TermComponentRefGuideExamplesTest.java | 3 +-- .../client/solrj/io/stream/JSONTupleStream.java | 11 +---------- .../solr/client/solrj/io/stream/SolrStream.java | 23 ++++------------------ .../client/solrj/io/graph/GraphExpressionTest.java | 3 +-- .../solr/client/solrj/request/UpdateRequest.java | 7 +++---- .../apache/solr/client/solrj/SolrExampleTests.java | 3 +-- .../solr/client/solrj/request/TestCoreAdmin.java | 6 ++++-- .../src/java/org/apache/solr/SolrTestCaseHS.java | 5 ----- .../solr/cloud/AbstractFullDistribZkTestBase.java | 1 - 22 files changed, 54 insertions(+), 86 deletions(-) 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 16031370fc3..b82625c6202 100644 --- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java @@ -43,12 +43,15 @@ import org.apache.lucene.util.IOUtils; import org.apache.solr.JSONTestUtil; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; +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.impl.HttpSolrClient; 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; import org.apache.solr.client.solrj.request.CoreAdminRequest.Unload; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.MetricsRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.SolrQuery; @@ -1143,8 +1146,8 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase { } params.set("name", collectionName); params.set("collection.configName", configSetName); - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/collections"); + var request = + new GenericSolrRequest(METHOD.POST, "/admin/collections", SolrRequestType.ADMIN, params); CollectionAdminResponse res = new CollectionAdminResponse(); if (client == null) { diff --git a/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java b/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java index 37a26488c2d..2ce7dec37aa 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java @@ -23,11 +23,13 @@ import java.lang.invoke.MethodHandles; import java.util.Random; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; +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.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CollectionAdminRequest.Create; import org.apache.solr.client.solrj.request.CollectionAdminRequest.SplitShard; -import org.apache.solr.client.solrj.request.QueryRequest; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.response.RequestStatusState; import org.apache.solr.common.params.CollectionParams; import org.apache.solr.common.params.ModifiableSolrParams; @@ -322,8 +324,8 @@ public class MultiThreadedOCPTest extends AbstractFullDistribZkTestBase { ModifiableSolrParams params = new ModifiableSolrParams(); params.set("action", CollectionParams.CollectionAction.CLUSTERSTATUS.toString()); params.set("collection", "collection1"); - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/collections"); + var request = + new GenericSolrRequest(METHOD.GET, "/admin/collections", SolrRequestType.ADMIN, params); client.request(request); diff --git a/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java b/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java index b0e329f0836..c168cceae47 100644 --- a/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java @@ -23,9 +23,11 @@ import java.util.Map; import java.util.Properties; import org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; +import org.apache.solr.client.solrj.SolrRequest.METHOD; +import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.impl.LBSolrClient; import org.apache.solr.client.solrj.jetty.LBJettySolrClient; -import org.apache.solr.client.solrj.request.QueryRequest; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.common.cloud.DocCollection; import org.apache.solr.common.cloud.Replica; import org.apache.solr.common.cloud.Slice; @@ -116,8 +118,8 @@ public class SSLMigrationTest extends AbstractFullDistribZkTestBase { "val", value); SolrParams params = new MapSolrParams(m); - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/collections"); + var request = + new GenericSolrRequest(METHOD.POST, "/admin/collections", SolrRequestType.ADMIN, params); LBSolrClient.Endpoint[] urls = getReplicas().stream() 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 1bd20b5db22..2a979299698 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java @@ -133,8 +133,7 @@ public class TestCloudPhrasesIdentificationComponent extends SolrCloudTestCase { params("q", input, "phrases", "true"), params("q", "*:*", "phrases.q", input, "phrases", "true"), params("q", "-*:*", "phrases.q", input, "phrases", "true"))) { - final QueryRequest req = new QueryRequest(p); - req.setPath(path); + final QueryRequest req = new QueryRequest(path, p); final QueryResponse rsp = req.process(getRandClient(random())); try { @SuppressWarnings({"unchecked"}) @@ -169,8 +168,7 @@ public class TestCloudPhrasesIdentificationComponent extends SolrCloudTestCase { Arrays.asList( params("q", "*:*", "phrases.q", input, "phrases", "true"), params("q", "-*:*", "phrases.q", input, "phrases", "true"))) { - final QueryRequest req = new QueryRequest(p); - req.setPath("/phrases"); + final QueryRequest req = new QueryRequest("/phrases", p); final QueryResponse rsp = req.process(getRandClient(random())); try { @SuppressWarnings({"unchecked"}) 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 8c0689585d2..c0cc72fb206 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestGracefulJettyShutdown.java @@ -85,8 +85,7 @@ public class TestGracefulJettyShutdown extends SolrTestCaseJ4 { final List<Future<QueryResponse>> results = new ArrayList<>(13); try (SolrClient jettyClient = nodeToStop.newClient()) { - final QueryRequest req = new QueryRequest(params("q", "foo_s:aaa")); - req.setPath(handler); + final QueryRequest req = new QueryRequest(handler, params("q", "foo_s:aaa")); // check inflight requests using both clients... for (SolrClient client : Arrays.asList(cloudClient, jettyClient)) { 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 9b7053adda5..c55843dab9d 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 @@ -39,10 +39,12 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; +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.impl.CloudSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; -import org.apache.solr.client.solrj.request.QueryRequest; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.client.solrj.response.QueryResponse; @@ -1269,8 +1271,8 @@ public class ShardSplitTest extends BasicDistributedZkTest { if (splitKey != null) { params.set("split.key", splitKey); } - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/collections"); + var request = + new GenericSolrRequest(METHOD.POST, "/admin/collections", SolrRequestType.ADMIN, params); JettySolrRunner jetty = shardToJetty.get(SHARD1).getFirst().jetty; try (SolrClient baseServer = jetty.newClient(30_000, 300_000)) { diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java index 5f93ef71768..ba03a7c42ea 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java @@ -24,8 +24,10 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.RemoteSolrException; +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.request.QueryRequest; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.response.RequestStatusState; import org.apache.solr.cloud.BasicDistributedZkTest; import org.apache.solr.common.params.CollectionParams; @@ -225,8 +227,8 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest { protected NamedList<Object> sendRequest(ModifiableSolrParams params) throws SolrServerException, IOException { - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/collections"); + var request = + new GenericSolrRequest(METHOD.GET, "/admin/collections", SolrRequestType.ADMIN, params); return shardToJetty.get(SHARD1).getFirst().jetty.getSolrClient().request(request); } diff --git a/solr/core/src/test/org/apache/solr/response/TestErrorResponseStackTrace.java b/solr/core/src/test/org/apache/solr/response/TestErrorResponseStackTrace.java index 5271a4e502c..875bfcde1df 100644 --- a/solr/core/src/test/org/apache/solr/response/TestErrorResponseStackTrace.java +++ b/solr/core/src/test/org/apache/solr/response/TestErrorResponseStackTrace.java @@ -99,8 +99,8 @@ public class TestErrorResponseStackTrace extends SolrTestCaseJ4 { public void testRemoteSolrException() { var client = solrTestRule.getSolrClient("collection1"); QueryRequest queryRequest = - new QueryRequest(new ModifiableSolrParams().set("q", "*:*").set("wt", "json")); - queryRequest.setPath("/withError"); + new QueryRequest( + "/withError", new ModifiableSolrParams().set("q", "*:*").set("wt", "json")); RemoteSolrException exception = expectThrows(RemoteSolrException.class, () -> queryRequest.process(client, "collection1")); assertTrue(exception.getRemoteErrorObject() instanceof NamedList); diff --git a/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java b/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java index 6a584ddb165..fd98948df1d 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java +++ b/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java @@ -22,7 +22,9 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import org.apache.solr.client.api.model.CoreStatusResponse; -import org.apache.solr.client.solrj.request.QueryRequest; +import org.apache.solr.client.solrj.SolrRequest.METHOD; +import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; +import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.request.json.JacksonContentWriter; import org.apache.solr.cloud.AbstractFullDistribZkTestBase; import org.apache.solr.common.cloud.SolrZkClient; @@ -54,8 +56,7 @@ public class TestCloudManagedSchema extends AbstractFullDistribZkTestBase { public void test() throws Exception { ModifiableSolrParams params = new ModifiableSolrParams(); params.set(CoreAdminParams.ACTION, CoreAdminParams.CoreAdminAction.STATUS.toString()); - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/cores"); + var request = new GenericSolrRequest(METHOD.GET, "/admin/cores", SolrRequestType.ADMIN, params); int which = r.nextInt(clients.size()); // use a client that does not have the /collection1 as part of the URL. diff --git a/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java b/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java index a3bb792496b..d121c46dd5e 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java +++ b/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java @@ -74,10 +74,6 @@ public class TestSmileRequest extends SolrTestCaseJ4 { throws Exception { QueryRequest query = new QueryRequest(args); query.setResponseParser(new SmileResponseParser()); - String path = args.get("qt"); - if (path != null) { - query.setPath(path); - } NamedList<Object> rsp = client.request(query); @SuppressWarnings({"rawtypes"}) Map m = rsp.asMap(5); diff --git a/solr/core/src/test/org/apache/solr/update/UuidAtomicUpdateTest.java b/solr/core/src/test/org/apache/solr/update/UuidAtomicUpdateTest.java index 44ed53bdc70..5db7ef75430 100644 --- a/solr/core/src/test/org/apache/solr/update/UuidAtomicUpdateTest.java +++ b/solr/core/src/test/org/apache/solr/update/UuidAtomicUpdateTest.java @@ -126,8 +126,7 @@ public class UuidAtomicUpdateTest extends SolrCloudTestCase { final ModifiableSolrParams solrParams = new ModifiableSolrParams(); solrParams.set("id", identifyingDocId); solrParams.set("shards.preference", "replica.leader:" + tf); - QueryRequest request = new QueryRequest(solrParams); - request.setPath("/get"); + QueryRequest request = new QueryRequest("/get", solrParams); final QueryResponse response = request.process(cluster.getSolrClient(), COLLECTION); final NamedList<Object> rawResponse = response.getResponse(); diff --git a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java index 363dbe14945..ad1376441a6 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java +++ b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java @@ -419,8 +419,7 @@ public class AtomicUpdateJavabinTest extends SolrCloudTestCase { String identifyingDocId, String fieldName, Object... expectedValues) throws Exception { final ModifiableSolrParams solrParams = new ModifiableSolrParams(); solrParams.set("id", identifyingDocId); - QueryRequest request = new QueryRequest(solrParams); - request.setPath("/get"); + QueryRequest request = new QueryRequest("/get", solrParams); final QueryResponse response = request.process(cluster.getSolrClient(), COLLECTION); final NamedList<Object> rawResponse = response.getResponse(); diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTRReRankCutoffOnSolrCloud.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTRReRankCutoffOnSolrCloud.java index 71367bef542..4fa4ce55eba 100644 --- a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTRReRankCutoffOnSolrCloud.java +++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTRReRankCutoffOnSolrCloud.java @@ -46,8 +46,7 @@ public class TestLTRReRankCutoffOnSolrCloud extends AbstractLTRSolrCloudTestBase final SolrQuery query = newBaseRerankQuery(); query.add("rq", "{!ltr model=powpularityS-model reRankDocs=3 echoReRankCutoff=true}"); - final QueryRequest queryRequest = new QueryRequest(query); - queryRequest.setPath("/query"); + final QueryRequest queryRequest = new QueryRequest("/query", query); final QueryResponse queryResponse = queryRequest.process(solrCluster.getSolrClient(), COLLECTION); @@ -72,8 +71,7 @@ public class TestLTRReRankCutoffOnSolrCloud extends AbstractLTRSolrCloudTestBase final SolrQuery query = newBaseRerankQuery(); query.add("rq", "{!ltr model=powpularityS-model reRankDocs=3}"); - final QueryRequest queryRequest = new QueryRequest(query); - queryRequest.setPath("/query"); + final QueryRequest queryRequest = new QueryRequest("/query", query); final QueryResponse queryResponse = queryRequest.process(solrCluster.getSolrClient(), COLLECTION); assertNull( @@ -87,8 +85,7 @@ public class TestLTRReRankCutoffOnSolrCloud extends AbstractLTRSolrCloudTestBase final SolrQuery query = newBaseRerankQuery(); query.add("rq", "{!ltr model=powpularityS-model reRankDocs=3 echoReRankCutoff=false}"); - final QueryRequest queryRequest = new QueryRequest(query); - queryRequest.setPath("/query"); + final QueryRequest queryRequest = new QueryRequest("/query", query); final QueryResponse queryResponse = queryRequest.process(solrCluster.getSolrClient(), COLLECTION); assertNull( diff --git a/solr/solr-ref-guide/modules/query-guide/examples/TermComponentRefGuideExamplesTest.java b/solr/solr-ref-guide/modules/query-guide/examples/TermComponentRefGuideExamplesTest.java index 1bab1a0fe33..8ce97f5a7ab 100644 --- a/solr/solr-ref-guide/modules/query-guide/examples/TermComponentRefGuideExamplesTest.java +++ b/solr/solr-ref-guide/modules/query-guide/examples/TermComponentRefGuideExamplesTest.java @@ -87,8 +87,7 @@ public class TermComponentRefGuideExamplesTest extends SolrCloudTestCase { termsQuery.addTermsField("name"); termsQuery.setTermsMinCount(1); - final QueryRequest request = new QueryRequest(termsQuery); - request.setPath("/terms"); + final QueryRequest request = new QueryRequest("/terms", termsQuery); final List<Term> terms = request .process(cluster.getSolrClient(), COLLECTION_NAME) diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JSONTupleStream.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JSONTupleStream.java index ae7b895498f..98f02cd274c 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JSONTupleStream.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JSONTupleStream.java @@ -28,7 +28,6 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; -import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.NamedList; import org.noggit.JSONParser; @@ -53,16 +52,8 @@ public class JSONTupleStream implements TupleStreamParser { // temporary... public static JSONTupleStream create(SolrClient server, SolrParams requestParams) throws IOException, SolrServerException { - String p = requestParams.get("qt"); - if (p != null) { - ModifiableSolrParams modifiableSolrParams = (ModifiableSolrParams) requestParams; - modifiableSolrParams.remove("qt"); - } - - QueryRequest query = new QueryRequest(requestParams); - query.setPath(p); + QueryRequest query = new QueryRequest(requestParams, SolrRequest.METHOD.POST); query.setResponseParser(new InputStreamResponseParser("json")); - query.setMethod(SolrRequest.METHOD.POST); NamedList<Object> genericResponse = server.request(query); InputStream stream = (InputStream) genericResponse.get(InputStreamResponseParser.STREAM_KEY); InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8); diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java index 1102f4518fb..7520fe2c468 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java @@ -270,34 +270,19 @@ public class SolrStream extends TupleStream { private TupleStreamParser constructParser(SolrParams requestParams) throws IOException, SolrServerException { - String p = requestParams.get("qt"); - if (p != null) { - ModifiableSolrParams modifiableSolrParams = (ModifiableSolrParams) requestParams; - modifiableSolrParams.remove("qt"); - // performance optimization - remove extra whitespace by default when streaming - modifiableSolrParams.set("indent", modifiableSolrParams.get("indent", "off")); - } + // performance optimization - remove extra whitespace when streaming + requestParams = SolrParams.wrapDefaults(requestParams, SolrParams.of("indent", "off")); + QueryRequest query = new QueryRequest(requestParams, SolrRequest.METHOD.POST); String wt = requestParams.get(CommonParams.WT, "json"); - QueryRequest query = new QueryRequest(requestParams); - - // in order to reuse HttpSolrClient objects per node, we need to cache them without the core - // name in the URL - if (core != null) { - query.setPath("/" + core + (p != null ? p : "/select")); - } else { - query.setPath(p); - } - query.setResponseParser(new InputStreamResponseParser(wt)); - query.setMethod(SolrRequest.METHOD.POST); if (user != null && password != null) { query.setBasicAuthCredentials(user, password); } var client = clientCache.getHttpSolrClient(baseUrl); - NamedList<Object> genericResponse = client.request(query); + NamedList<Object> genericResponse = client.request(query, core); InputStream stream = (InputStream) genericResponse.get(InputStreamResponseParser.STREAM_KEY); // since 9.4 the updated format has a dedicated status field final Integer statusCode = (Integer) genericResponse.get("responseStatus"); diff --git a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java index 4dfcbf3d0d7..9aecfd9f6be 100644 --- a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java +++ b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java @@ -1244,8 +1244,7 @@ public class GraphExpressionTest extends SolrCloudTestCase { + "gather=\"to_s\"))"; params.add("expr", expr); - QueryRequest query = new QueryRequest(params); - query.setPath("/collection1/graph"); + QueryRequest query = new QueryRequest("/collection1/graph", params); query.setResponseParser(new InputStreamResponseParser("xml")); query.setMethod(SolrRequest.METHOD.POST); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/UpdateRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/UpdateRequest.java index 2d4e4e011d4..4eac12b652e 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/UpdateRequest.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/UpdateRequest.java @@ -63,8 +63,8 @@ public class UpdateRequest extends AbstractUpdateRequest { super(METHOD.POST, "/update"); } - public UpdateRequest(String url) { - super(METHOD.POST, url); + public UpdateRequest(String path) { + super(METHOD.POST, path); } /** clear the pending documents and delete commands */ @@ -250,11 +250,10 @@ public class UpdateRequest extends AbstractUpdateRequest { String leaderUrl = urls.get(0); LBSolrClient.Req request = routes.get(leaderUrl); if (request == null) { - UpdateRequest updateRequest = new UpdateRequest(); + UpdateRequest updateRequest = new UpdateRequest(getPath()); updateRequest.setMethod(getMethod()); updateRequest.setCommitWithin(getCommitWithin()); updateRequest.setParams(params); - updateRequest.setPath(getPath()); updateRequest.setBasicAuthCredentials(getBasicAuthUser(), getBasicAuthPassword()); updateRequest.setResponseParser(getResponseParser()); updateRequest.addHeaders(getHeaders()); 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 64090fb8e17..adf572c2902 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 @@ -2337,8 +2337,7 @@ public abstract class SolrExampleTests extends SolrExampleTestsBase { q.set("fl", "id,name,aaa:[value v=aaa]"); // First Try with the BinaryResponseParser - QueryRequest req = new QueryRequest(q); - req.setPath("/get"); + QueryRequest req = new QueryRequest("/get", q); req.setResponseParser(new JavaBinResponseParser()); QueryResponse rsp = req.process(client); SolrDocument out = (SolrDocument) rsp.getResponse().get("doc"); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java index 7c572275b10..d4b7beece42 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java @@ -26,6 +26,8 @@ import java.util.Collection; import org.apache.commons.io.file.PathUtils; import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.SolrRequest.METHOD; +import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.client.solrj.embedded.AbstractEmbeddedSolrServerTestCase; import org.apache.solr.client.solrj.request.CoreAdminRequest.Create; import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery; @@ -110,8 +112,8 @@ public class TestCoreAdmin extends AbstractEmbeddedSolrServerTestCase { params.set("action", "BADACTION"); String collectionName = "badactioncollection"; params.set("name", collectionName); - QueryRequest request = new QueryRequest(params); - request.setPath("/admin/cores"); + var request = + new GenericSolrRequest(METHOD.POST, "/admin/cores", SolrRequestType.ADMIN, params); expectThrows(SolrException.class, () -> getSolrAdmin().request(request)); } 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 e27708c5381..160da2b1a85 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseHS.java @@ -163,14 +163,9 @@ public class SolrTestCaseHS extends SolrTestCaseJ4 { } ModifiableSolrParams p = new ModifiableSolrParams(params); p.set("wt", wt); - String path = p.get("qt"); - p.remove("qt"); p.set("indent", "true"); QueryRequest query = new QueryRequest(p); - if (path != null) { - query.setPath(path); - } if ("json".equals(wt)) { query.setResponseParser(new JsonMapResponseParser()); 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 ef9159a38d5..ae0b250a3d5 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 @@ -2837,7 +2837,6 @@ public abstract class AbstractFullDistribZkTestBase extends BaseDistributedSearc params.set("name", testCollectionName); var request = new GenericSolrRequest(METHOD.GET, "/admin/collections", SolrRequestType.ADMIN, params); - request.setPath("/admin/collections"); client.request(request); Thread.sleep(2000); // reload can take a short while
