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
 

Reply via email to