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

epugh pushed a commit to branch branch_10x
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/branch_10x by this push:
     new c319e7b5546 SOLR-18028: Remove stream.file, stream.url and stream.body 
(#3948)
c319e7b5546 is described below

commit c319e7b554655cfc8fb9e810ac4257b5a952aa7a
Author: Eric Pugh <[email protected]>
AuthorDate: Tue Dec 16 19:33:32 2025 -0500

    SOLR-18028: Remove stream.file, stream.url and stream.body (#3948)
---
 .../SOLR-18028-remove_stream_file_stream_url.yml   |   5 +
 .../src/java/org/apache/solr/core/SolrConfig.java  |   8 --
 .../apache/solr/handler/DumpRequestHandler.java    |  18 +---
 .../apache/solr/servlet/SolrRequestParsers.java    |  71 ------------
 .../org/apache/solr/TestDistributedSearch.java     |   4 -
 .../org/apache/solr/handler/TestCSVLoader.java     |   2 -
 .../tagger/EmbeddedSolrNoSerializeTest.java        |  12 ---
 .../apache/solr/request/TestRemoteStreaming.java   | 120 ---------------------
 .../org/apache/solr/request/TestStreamBody.java    | 117 --------------------
 .../apache/solr/search/json/TestJsonRequest.java   |  48 ++-------
 .../org/apache/solr/servlet/CacheHeaderTest.java   |  20 ----
 .../solr/servlet/DirectSolrConnectionTest.java     |  20 +---
 .../apache/solr/servlet/SolrRequestParserTest.java | 117 --------------------
 .../ExtractingRequestHandlerTestAbstract.java      |   2 -
 .../conf/solrconfig.xml                            |   8 +-
 .../pages/script-update-processor.adoc             |  15 ++-
 .../configuration-guide/pages/solr-properties.adoc |   4 -
 .../indexing-guide/pages/content-streams.adoc      |  25 +----
 .../pages/indexing-with-update-handlers.adoc       |  12 +--
 .../pages/major-changes-in-solr-10.adoc            |   2 +
 .../apache/solr/common/params/CommonParams.java    |  15 ---
 .../DeprecatedSystemPropertyMappings.properties    |   3 -
 .../apache/solr/common/util/ContentStreamTest.java |   2 +-
 23 files changed, 42 insertions(+), 608 deletions(-)

diff --git a/changelog/unreleased/SOLR-18028-remove_stream_file_stream_url.yml 
b/changelog/unreleased/SOLR-18028-remove_stream_file_stream_url.yml
new file mode 100644
index 00000000000..a1976a351ca
--- /dev/null
+++ b/changelog/unreleased/SOLR-18028-remove_stream_file_stream_url.yml
@@ -0,0 +1,5 @@
+# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc
+title: Remove stream.url, stream.file, and stream.body params.
+type: removed # added, changed, fixed, deprecated, removed, dependency_update, 
security, other
+authors:
+  - name: Eric Pugh
diff --git a/solr/core/src/java/org/apache/solr/core/SolrConfig.java 
b/solr/core/src/java/org/apache/solr/core/SolrConfig.java
index 4be0350efd3..0bea68e114e 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrConfig.java
@@ -355,14 +355,6 @@ public class SolrConfig implements MapSerializable {
       formUploadLimitKB = 
requestParsersNode.intAttr("formdataUploadLimitInKB", Integer.MAX_VALUE);
       if (formUploadLimitKB == -1) formUploadLimitKB = Integer.MAX_VALUE;
 
-      if (requestParsersNode.attr("enableRemoteStreaming") != null) {
-        log.warn("Ignored deprecated enableRemoteStreaming in config; use 
sys-prop");
-      }
-
-      if (requestParsersNode.attr("enableStreamBody") != null) {
-        log.warn("Ignored deprecated enableStreamBody in config; use 
sys-prop");
-      }
-
       List<PluginInfo> argsInfos = getPluginInfos(InitParams.class.getName());
       if (argsInfos != null) {
         Map<String, InitParams> argsMap = new HashMap<>();
diff --git a/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java 
b/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java
index b08367f11cb..d96b33517ca 100644
--- a/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java
@@ -29,17 +29,14 @@ import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.core.PluginInfo;
-import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.request.SolrRequestHandler;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.security.AuthorizationContext;
-import org.apache.solr.util.plugin.SolrCoreAware;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class DumpRequestHandler extends RequestHandlerBase implements 
SolrCoreAware {
-  private SolrCore solrCore;
+public class DumpRequestHandler extends RequestHandlerBase {
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Override
@@ -127,17 +124,6 @@ public class DumpRequestHandler extends RequestHandlerBase 
implements SolrCoreAw
 
   @Override
   public Name getPermissionName(AuthorizationContext request) {
-    if (solrCore != null && 
solrCore.getSolrConfig().getRequestParsers().isEnableRemoteStreams()) {
-      log.warn(
-          "Dump request handler requires config-read permission when remote 
streams are enabled");
-      return Name.CONFIG_READ_PERM;
-    } else {
-      return Name.ALL;
-    }
-  }
-
-  @Override
-  public void inform(SolrCore core) {
-    this.solrCore = core;
+    return Name.ALL;
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java 
b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index 34d18e57962..b609f378aef 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -25,14 +25,12 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
-import java.net.URI;
 import java.nio.ByteBuffer;
 import java.nio.charset.CharacterCodingException;
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CodingErrorAction;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -47,7 +45,6 @@ import org.apache.lucene.util.IOUtils;
 import org.apache.solr.api.V2HttpCall;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
-import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.MultiMapSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.CommandOperation;
@@ -84,8 +81,6 @@ public class SolrRequestParsers {
   public static final String REQUEST_TIMER_SERVLET_ATTRIBUTE = 
"org.apache.solr.RequestTimer";
 
   private final HashMap<String, SolrRequestParser> parsers = new HashMap<>();
-  private final boolean enableRemoteStreams;
-  private final boolean enableStreamBody;
   private StandardRequestParser standard;
 
   /**
@@ -101,18 +96,11 @@ public class SolrRequestParsers {
     final int multipartUploadLimitKB, formUploadLimitKB;
     if (globalConfig == null) {
       multipartUploadLimitKB = formUploadLimitKB = Integer.MAX_VALUE;
-      enableRemoteStreams = false;
-      enableStreamBody = false;
-
     } else {
       multipartUploadLimitKB = globalConfig.getMultipartUploadLimitKB();
 
       formUploadLimitKB = globalConfig.getFormUploadLimitKB();
 
-      // security risks; disabled by default
-      enableRemoteStreams = 
Boolean.getBoolean("solr.requests.streaming.remote.enabled");
-      enableStreamBody = 
Boolean.getBoolean("solr.requests.streaming.body.enabled");
-
       // Let this filter take care of /select?xxx format
 
     }
@@ -120,9 +108,6 @@ public class SolrRequestParsers {
   }
 
   private SolrRequestParsers() {
-    enableRemoteStreams = false;
-    enableStreamBody = false;
-
     init(Integer.MAX_VALUE, Integer.MAX_VALUE);
   }
 
@@ -198,58 +183,6 @@ public class SolrRequestParsers {
       streams = new ArrayList<>(streams);
     }
 
-    // The content type will be applied to all streaming content
-    String contentType = params.get(CommonParams.STREAM_CONTENTTYPE);
-
-    // Handle anything with a remoteURL
-    String[] strs = params.getParams(CommonParams.STREAM_URL);
-    if (strs != null) {
-      if (!enableRemoteStreams) {
-        throw new SolrException(ErrorCode.BAD_REQUEST, "Remote Streaming is 
disabled.");
-      }
-      for (final String url : strs) {
-        ContentStreamBase stream = new 
ContentStreamBase.URLStream(URI.create(url).toURL());
-        if (contentType != null) {
-          stream.setContentType(contentType);
-        }
-        streams.add(stream);
-      }
-    }
-
-    // Handle streaming files
-    strs = params.getParams(CommonParams.STREAM_FILE);
-    if (strs != null) {
-      if (!enableRemoteStreams) {
-        throw new SolrException(
-            ErrorCode.BAD_REQUEST,
-            "Remote Streaming is disabled. See 
https://solr.apache.org/guide/solr/latest/configuration-guide/requestdispatcher.html
 for help");
-      }
-      for (final String file : strs) {
-        ContentStreamBase stream = new 
ContentStreamBase.FileStream(Path.of(file));
-        if (contentType != null) {
-          stream.setContentType(contentType);
-        }
-        streams.add(stream);
-      }
-    }
-
-    // Check for streams in the request parameters
-    strs = params.getParams(CommonParams.STREAM_BODY);
-    if (strs != null) {
-      if (!enableStreamBody) {
-        throw new SolrException(
-            ErrorCode.BAD_REQUEST,
-            "Stream Body is disabled. See 
https://solr.apache.org/guide/solr/latest/configuration-guide/requestdispatcher.html
 for help");
-      }
-      for (final String body : strs) {
-        ContentStreamBase stream = new ContentStreamBase.StringStream(body);
-        if (contentType != null) {
-          stream.setContentType(contentType);
-        }
-        streams.add(stream);
-      }
-    }
-
     final HttpSolrCall httpSolrCall =
         req == null ? null : (HttpSolrCall) 
req.getAttribute(HttpSolrCall.class.getName());
     SolrQueryRequestBase q =
@@ -515,10 +448,6 @@ public class SolrRequestParsers {
         "URLDecoder: Invalid digit (" + ((char) b) + ") in escape (%) 
pattern");
   }
 
-  public boolean isEnableRemoteStreams() {
-    return enableRemoteStreams;
-  }
-
   // -----------------------------------------------------------------
   // -----------------------------------------------------------------
 
diff --git a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java 
b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
index 3c823f6601e..9c9ceefa616 100644
--- a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
+++ b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
@@ -1520,10 +1520,6 @@ public class TestDistributedSearch extends 
BaseDistributedSearchTestCase {
     // SOLR 3161 ensure shards.qt=/update fails (anything but search handler 
really)
     // Also see TestRemoteStreaming#testQtUpdateFails()
 
-    // SolrException e = expectThrows(SolrException.class, () -> {
-    //  ignoreException("isShard is only acceptable");
-    //  
query("q","*:*","shards.qt","/update","stream.body","<delete><query>*:*</query></delete>");
-    // });
     unIgnoreException("isShard is only acceptable");
 
     // test debugging
diff --git a/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java 
b/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
index 9f1f0beefb1..b7ca0d33173 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
@@ -79,8 +79,6 @@ public class TestCSVLoader extends SolrTestCaseJ4 {
   void loadLocal(String... args) throws Exception {
     LocalSolrQueryRequest req = (LocalSolrQueryRequest) req(args);
 
-    // TODO: stop using locally defined streams once stream.file and
-    // stream.body work everywhere
     List<ContentStream> cs = new ArrayList<>(1);
     ContentStreamBase f = new ContentStreamBase.FileStream(Path.of(filename));
     f.setContentType("text/csv");
diff --git 
a/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
 
b/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
index b6c3d324ad8..e0792724df3 100644
--- 
a/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
+++ 
b/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
@@ -44,7 +44,6 @@ import org.apache.solr.common.util.ContentStreamBase;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 /** Tests that we can skip serialization of the documents when embedding Solr. 
*/
@@ -121,17 +120,6 @@ public class EmbeddedSolrNoSerializeTest extends 
SolrTestCaseJ4 {
     doTestAssertTagStreaming(SolrTaggerRequest::new);
   }
 
-  @Test
-  @Ignore("As of Solr 7, stream.body is disabled by default for security ") // 
DWS: dubious, IMO
-  // and it can't be enabled with EmbeddedSolrServer until SOLR-12126
-  public void testAssertTagStreamingWithStreamBodyParam() throws Exception {
-    doTestAssertTagStreaming(
-        (params, input) -> {
-          params.set("stream.body", input);
-          return new QueryRequest(params);
-        });
-  }
-
   public void doTestAssertTagStreaming(
       BiFunction<ModifiableSolrParams, String, QueryRequest> newQueryRequest)
       throws IOException, SolrServerException {
diff --git 
a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java 
b/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
deleted file mode 100644
index 3ff6d04d5ee..00000000000
--- a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.request;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
-import java.net.URI;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
-import org.apache.lucene.tests.util.LuceneTestCase;
-import org.apache.solr.SolrJettyTestBase;
-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.request.SolrQuery;
-import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.SolrException.ErrorCode;
-import org.apache.solr.common.SolrInputDocument;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/** See SOLR-2854. */
-@SuppressSSL // does not yet work with ssl yet - uses raw java.net.URL API 
rather than HttpClient
-public class TestRemoteStreaming extends SolrJettyTestBase {
-
-  @BeforeClass
-  public static void beforeTest() throws Exception {
-    System.setProperty("solr.requests.streaming.remote.enabled", "true");
-    System.setProperty("solr.requests.streaming.body.enabled", "true");
-    Path solrHomeDirectory = 
createTempDir(LuceneTestCase.getTestClass().getSimpleName());
-    setupJettyTestHome(solrHomeDirectory, "collection1");
-    createAndStartJetty(solrHomeDirectory.toAbsolutePath());
-  }
-
-  @Before
-  public void doBefore() throws IOException, SolrServerException {
-    // add document and commit, and ensure it's there
-    SolrClient client = getSolrClient();
-    SolrInputDocument doc = new SolrInputDocument();
-    doc.addField("id", "1234");
-    client.add(doc);
-    client.commit();
-    assertTrue(searchFindsIt());
-  }
-
-  @Test
-  public void testMakeDeleteAllUrl() throws Exception {
-    assertTrue(searchFindsIt());
-    attemptHttpGet(makeDeleteAllUrl());
-    assertFalse(searchFindsIt());
-  }
-
-  @Test
-  public void testStreamUrl() throws Exception {
-    String streamUrl = getCoreUrl() + "/select?q=*:*&fl=id&wt=csv";
-
-    String getUrl =
-        getCoreUrl()
-            + "/debug/dump?wt=xml&stream.url="
-            + URLEncoder.encode(streamUrl, StandardCharsets.UTF_8);
-    String content = attemptHttpGet(getUrl);
-    assertTrue(content.contains("1234"));
-  }
-
-  private String attemptHttpGet(String getUrl) throws IOException {
-    Object obj = URI.create(getUrl).toURL().getContent();
-    if (obj instanceof InputStream) {
-      try (InputStream inputStream = (InputStream) obj) {
-        StringWriter strWriter = new StringWriter();
-        new InputStreamReader(inputStream, 
StandardCharsets.UTF_8).transferTo(strWriter);
-        return strWriter.toString();
-      }
-    }
-    return null;
-  }
-
-  /** Do a select query with the stream.url. Solr should fail */
-  @Test
-  public void testNoUrlAccess() throws Exception {
-    SolrQuery query = new SolrQuery();
-    query.setQuery("*:*"); // for anything
-    query.add("stream.url", makeDeleteAllUrl());
-    SolrException se = expectThrows(SolrException.class, () -> 
getSolrClient().query(query));
-    assertSame(ErrorCode.BAD_REQUEST, ErrorCode.getErrorCode(se.code()));
-  }
-
-  /** Compose an HTTP GET url that will delete all the data. */
-  private String makeDeleteAllUrl() {
-    String deleteQuery = "<delete><query>*:*</query></delete>";
-    return getCoreUrl()
-        + "/update?commit=true&stream.body="
-        + URLEncoder.encode(deleteQuery, StandardCharsets.UTF_8);
-  }
-
-  private boolean searchFindsIt() throws SolrServerException, IOException {
-    SolrQuery query = new SolrQuery();
-    query.setQuery("id:1234");
-    QueryResponse rsp = getSolrClient().query(query);
-    return rsp.getResults().getNumFound() != 0;
-  }
-}
diff --git a/solr/core/src/test/org/apache/solr/request/TestStreamBody.java 
b/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
deleted file mode 100644
index ec0c6b6c77c..00000000000
--- a/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.request;
-
-import java.lang.invoke.MethodHandles;
-import java.nio.file.Path;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import org.apache.commons.io.file.PathUtils;
-import org.apache.solr.client.solrj.request.QueryRequest;
-import org.apache.solr.client.solrj.request.SolrQuery;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.util.RestTestBase;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
-import org.junit.After;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TestStreamBody extends RestTestBase {
-  private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
-  private static final String collection = "collection1";
-
-  public void startSolr() throws Exception {
-    Path tmpSolrHome = createTempDir();
-    PathUtils.copyDirectory(TEST_HOME(), tmpSolrHome);
-
-    final SortedMap<ServletHolder, String> extraServlets = new TreeMap<>();
-
-    System.setProperty("managed.schema.mutable", "true");
-    System.setProperty("solr.index.updatelog.enabled", "false");
-
-    createJettyAndHarness(
-        tmpSolrHome, "solrconfig-minimal.xml", "schema-rest.xml", "/solr", 
true, extraServlets);
-    if (random().nextBoolean()) {
-      log.info("These tests are run with V2 API");
-      restTestHarness.setServerProvider(
-          () -> getBaseUrl() + "/____v2/cores/" + DEFAULT_TEST_CORENAME);
-    }
-  }
-
-  @After
-  public void after() throws Exception {
-    solrClientTestRule.reset();
-
-    if (restTestHarness != null) {
-      restTestHarness.close();
-      restTestHarness = null;
-    }
-  }
-
-  // SOLR-3161
-  @Test
-  public void testQtUpdateFails() throws Exception {
-    System.setProperty("solr.requests.streaming.body.enabled", "true");
-    startSolr();
-
-    SolrQuery query = new SolrQuery();
-    query.setQuery("*:*"); // for anything
-    query.add("echoHandler", "true");
-    // sneaky sneaky
-    query.add("qt", "/update");
-    query.add(CommonParams.STREAM_BODY, "<delete><query>*:*</query></delete>");
-
-    QueryRequest queryRequest =
-        new QueryRequest(query) {
-          @Override
-          public String getPath() { // don't let superclass substitute qt for 
the path
-            return "/select";
-          }
-        };
-    try {
-      queryRequest.process(getSolrClient());
-      fail();
-    } catch (SolrException se) {
-      assertTrue(
-          se.getMessage(),
-          se.getMessage().contains("Bad contentType for search handler 
:text/xml"));
-    }
-  }
-
-  // Tests that stream.body is disabled by default
-  @Test
-  public void testStreamBodyDefault() throws Exception {
-    startSolr();
-    SolrQuery query = new SolrQuery();
-    query.add(CommonParams.STREAM_BODY, "<delete><query>*:*</query></delete>");
-    query.add("commit", "true");
-
-    QueryRequest queryRequest =
-        new QueryRequest(query) {
-          @Override
-          public String getPath() { // don't let superclass substitute qt for 
the path
-            return "/update";
-          }
-        };
-    SolrException se =
-        expectThrows(SolrException.class, () -> 
queryRequest.process(getSolrClient()));
-    assertTrue(se.getMessage(), se.getMessage().contains("Stream Body is 
disabled"));
-  }
-}
diff --git 
a/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java 
b/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
index dd7f3c9d856..628dd73766c 100644
--- a/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
+++ b/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
@@ -50,7 +50,6 @@ public class TestJsonRequest extends SolrTestCaseHS {
   @BeforeClass
   public static void beforeTests() throws Exception {
     systemSetPropertyEnableUrlAllowList(false);
-    System.setProperty("solr.requests.streaming.body.enabled", "true");
     JSONTestUtil.failRepeatedKeys = true;
     initCore("solrconfig-tlog.xml", "schema_latest.xml");
   }
@@ -319,63 +318,34 @@ public class TestJsonRequest extends SolrTestCaseHS {
     //
     // with body
     //
-    client.testJQ(
-        params(
-            CommonParams.STREAM_BODY,
-            "{query:'cat_s:A'}",
-            "stream.contentType",
-            "application/json"),
-        "response/numFound==2");
+    client.testJQ(params(CommonParams.JSON, "{query:'cat_s:A'}"), 
"response/numFound==2");
 
-    // test body in conjunction with query params
+    // test json in conjunction with query params
     client.testJQ(
-        params(
-            CommonParams.STREAM_BODY,
-            "{query:'cat_s:A'}",
-            "stream.contentType",
-            "application/json",
-            "json.filter",
-            "'where_s:NY'"),
+        params(CommonParams.JSON, "{query:'cat_s:A'}", "json.filter", 
"'where_s:NY'"),
         "response/numFound==1");
 
-    // test that json body in params come "after" (will overwrite)
+    // test that json listed twice in params come "after" (will overwrite)
     client.testJQ(
         params(
-            CommonParams.STREAM_BODY,
-            "{query:'*:*', filter:'where_s:NY'}",
-            "stream.contentType",
-            "application/json",
-            "json",
-            "{query:'cat_s:A'}"),
+            CommonParams.JSON, "{query:'*:*', filter:'where_s:NY'}", "json", 
"{query:'cat_s:A'}"),
         "response/numFound==1");
 
-    // test that json.x params come after body
+    // test that json.x params come after json param
     client.testJQ(
-        params(
-            CommonParams.STREAM_BODY,
-            "{query:'*:*', filter:'where_s:NY'}",
-            "stream.contentType",
-            "application/json",
-            "json.query",
-            "'cat_s:A'"),
+        params(CommonParams.JSON, "{query:'*:*', filter:'where_s:NY'}", 
"json.query", "'cat_s:A'"),
         "response/numFound==1");
 
     // test facet with json body
     client.testJQ(
-        params(
-            CommonParams.STREAM_BODY,
-            "{query:'*:*', facet:{x:'unique(where_s)'}}",
-            "stream.contentType",
-            "application/json"),
+        params(CommonParams.JSON, "{query:'*:*', 
facet:{x:'unique(where_s)'}}"),
         "facets=={count:6,x:2}");
 
     // test facet with json body, insert additional facets via query parameter
     client.testJQ(
         params(
-            CommonParams.STREAM_BODY,
+            CommonParams.JSON,
             "{query:'*:*', facet:{x:'unique(where_s)'}}",
-            "stream.contentType",
-            "application/json",
             "json.facet.y",
             "{terms:{field:where_s}}",
             "json.facet.z",
diff --git a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java 
b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
index aecee86eed7..ea57cec5bf2 100644
--- a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
@@ -17,7 +17,6 @@
 package org.apache.solr.servlet;
 
 import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
@@ -26,7 +25,6 @@ import org.apache.http.Header;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.http.impl.cookie.DateUtils;
-import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.util.SuppressForbidden;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -44,24 +42,6 @@ public class CacheHeaderTest extends CacheHeaderTestBase {
     createAndStartJetty(solrHomeDirectory);
   }
 
-  protected static final String CONTENTS = "id\n100\n101\n102";
-
-  @Test
-  public void testCacheVetoHandler() throws Exception {
-    Path f = makeFile(CacheHeaderTest.CONTENTS, StandardCharsets.UTF_8.name());
-    HttpRequestBase m =
-        getUpdateMethod(
-            "GET",
-            CommonParams.STREAM_FILE,
-            f.toRealPath().toString(),
-            CommonParams.STREAM_CONTENTTYPE,
-            "text/csv");
-    HttpResponse response = getHttpClient().execute(m);
-    assertEquals(200, response.getStatusLine().getStatusCode());
-    checkVetoHeaders(response, true);
-    Files.delete(f);
-  }
-
   @Test
   public void testCacheVetoException() throws Exception {
     HttpRequestBase m = getSelectMethod("GET", "q", 
"xyz_ignore_exception:solr", "qt", "standard");
diff --git 
a/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java 
b/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
index fbacd904ae0..9d6c5c8f916 100644
--- a/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
@@ -16,10 +16,7 @@
  */
 package org.apache.solr.servlet;
 
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.params.CommonParams;
 import org.junit.BeforeClass;
 
 @Deprecated
@@ -27,7 +24,6 @@ public class DirectSolrConnectionTest extends SolrTestCaseJ4 {
 
   @BeforeClass
   public static void beforeClass() throws Exception {
-    System.setProperty("solr.requests.streaming.body.enabled", "true");
     initCore("solr/crazy-path-to-config.xml", "solr/crazy-path-to-schema.xml");
   }
 
@@ -64,23 +60,11 @@ public class DirectSolrConnectionTest extends 
SolrTestCaseJ4 {
         };
     String getIt = "/select?wt=xml&q=id:42";
 
-    // Test using the Stream body parameter
-    for (String cmd : cmds) {
-      direct.request(
-          "/update?"
-              + CommonParams.STREAM_BODY
-              + "="
-              + URLEncoder.encode(cmd, StandardCharsets.UTF_8),
-          null);
-    }
-    String got = direct.request(getIt, null);
-    assertTrue(got.indexOf(value) > 0);
-
-    // Same thing using the posted body
+    // Test using by posting in the body
     for (String cmd : cmds) {
       direct.request("/update", cmd);
     }
-    got = direct.request(getIt, null);
+    String got = direct.request(getIt, null);
     assertTrue(got.indexOf(value) > 0);
   }
 }
diff --git 
a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java 
b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
index 3a2c1ce6d76..93ec52df840 100644
--- a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
@@ -26,25 +26,14 @@ import jakarta.servlet.http.HttpServletRequest;
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
-import java.net.URL;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.params.MultiMapSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.common.util.StrUtils;
-import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.servlet.SolrRequestParsers.FormDataRequestParser;
 import org.apache.solr.servlet.SolrRequestParsers.MultipartRequestParser;
@@ -76,112 +65,6 @@ public class SolrRequestParserTest extends SolrTestCaseJ4 {
     parser = null;
   }
 
-  @Test
-  public void testStreamBody() throws Exception {
-    String body1 = "AMANAPLANPANAMA";
-    String body2 = "qwertasdfgzxcvb";
-    String body3 = "1234567890";
-
-    SolrCore core = h.getCore();
-
-    Map<String, String[]> args = new HashMap<>();
-    args.put(CommonParams.STREAM_BODY, new String[] {body1});
-
-    // Make sure it got a single stream in and out ok
-    List<ContentStream> streams = new ArrayList<>();
-    try (SolrQueryRequest req =
-        parser.buildRequestFrom(core, new MultiMapSolrParams(args), streams)) {
-      assertNotNull(req);
-      assertEquals(1, streams.size());
-      assertEquals(body1, 
StrUtils.stringFromReader(streams.get(0).getReader()));
-    }
-
-    // Now add three and make sure they come out ok
-    streams = new ArrayList<>();
-    args.put(CommonParams.STREAM_BODY, new String[] {body1, body2, body3});
-    try (SolrQueryRequest req =
-        parser.buildRequestFrom(core, new MultiMapSolrParams(args), streams)) {
-      assertNotNull(req);
-      assertEquals(3, streams.size());
-      ArrayList<String> input = new ArrayList<>();
-      ArrayList<String> output = new ArrayList<>();
-      input.add(body1);
-      input.add(body2);
-      input.add(body3);
-      for (ContentStream cs : streams) {
-        output.add(StrUtils.stringFromReader(cs.getReader()));
-      }
-      // sort them so the output is consistent
-      Collections.sort(input);
-      Collections.sort(output);
-      assertEquals(input.toString(), output.toString());
-    }
-
-    // set the contentType and make sure that it gets set
-    String ctype = "text/xxx";
-    streams = new ArrayList<>();
-    args.put(CommonParams.STREAM_CONTENTTYPE, new String[] {ctype});
-    try (SolrQueryRequest req =
-        parser.buildRequestFrom(core, new MultiMapSolrParams(args), streams)) {
-      assertNotNull(req);
-      for (ContentStream s : streams) {
-        assertEquals(ctype, s.getContentType());
-      }
-    }
-  }
-
-  @Test
-  @SuppressWarnings({"try"})
-  public void testStreamURL() throws Exception {
-    URL url = getClass().getResource("/README");
-    assertNotNull("Missing file 'README' in test-resources root folder.", url);
-
-    final byte[] bytes;
-    try (InputStream inputStream = url.openStream()) {
-      bytes = inputStream.readAllBytes();
-    }
-
-    SolrCore core = h.getCore();
-
-    Map<String, String[]> args = new HashMap<>();
-    args.put(CommonParams.STREAM_URL, new String[] {url.toExternalForm()});
-
-    // Make sure it got a single stream in and out ok
-    List<ContentStream> streams = new ArrayList<>();
-    try (SolrQueryRequest req =
-        parser.buildRequestFrom(core, new MultiMapSolrParams(args), streams)) {
-      assertNotNull(req);
-      assertEquals(1, streams.size());
-      try (InputStream in = streams.get(0).getStream()) {
-        assertArrayEquals(bytes, in.readAllBytes());
-      }
-    }
-  }
-
-  @Test
-  @SuppressWarnings({"try"})
-  public void testStreamFile() throws Exception {
-    Path file = getFile("README");
-
-    byte[] bytes = Files.readAllBytes(file);
-
-    SolrCore core = h.getCore();
-
-    Map<String, String[]> args = new HashMap<>();
-    args.put(CommonParams.STREAM_FILE, new String[] 
{file.toAbsolutePath().toString()});
-
-    // Make sure it got a single stream in and out ok
-    List<ContentStream> streams = new ArrayList<>();
-    try (SolrQueryRequest req =
-        parser.buildRequestFrom(core, new MultiMapSolrParams(args), streams)) {
-      assertNotNull(req);
-      assertEquals(1, streams.size());
-      try (InputStream in = streams.get(0).getStream()) {
-        assertArrayEquals(bytes, in.readAllBytes());
-      }
-    }
-  }
-
   @Test
   public void testUrlParamParsing() {
     final String[][] teststr =
diff --git 
a/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTestAbstract.java
 
b/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTestAbstract.java
index e5a50c55e79..7861db5a54a 100644
--- 
a/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTestAbstract.java
+++ 
b/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTestAbstract.java
@@ -1047,8 +1047,6 @@ public abstract class 
ExtractingRequestHandlerTestAbstract extends SolrTestCaseJ
       throws Exception {
 
     try (LocalSolrQueryRequest req = (LocalSolrQueryRequest) req(args)) {
-      // TODO: stop using locally defined streams once stream.file and
-      // stream.body work everywhere
       List<ContentStream> cs = new ArrayList<>();
       cs.add(new ContentStreamBase.FileStream(getFile(filename)));
       req.setContentStreams(cs);
diff --git 
a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml 
b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
index ebfe158959b..65c367dda67 100644
--- 
a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
+++ 
b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
@@ -655,13 +655,13 @@
   <!-- The following are some of the implicit Update Request Handlers
   <requestHandler name="/update/json" class="solr.UpdateRequestHandler">
         <lst name="invariants">
-         <str name="stream.contentType">application/json</str>
-       </lst>
+          <str name="update.contentType">application/json</str>
+        </lst>
   </requestHandler>
   <requestHandler name="/update/csv" class="solr.UpdateRequestHandler">
         <lst name="invariants">
-         <str name="stream.contentType">application/csv</str>
-       </lst>
+          <str name="update.contentType">application/csv</str>
+        </lst>
   </requestHandler>
   -->
 
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
 
b/solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
index b3824068369..03030588e54 100644
--- 
a/solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
+++ 
b/solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
@@ -122,8 +122,21 @@ To try out scripting, enable the 
`<updateRequestProcessorChain name="script">` c
 file 
`./server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml`. 
Then start Solr via
 `bin/solr start -e techproducts -Dsolr.modules=scripting`.
 
-This URL demonstrates specifying the "script" update chain: 
`http://localhost:8983/solr/techproducts/update?commit=true&stream.contentType=text/csv&fieldnames=id,description&stream.body=1,foo&update.chain=script`
 which logs the following:
+This URL demonstrates specifying the "script" update chain:
 
+[source,bash]
+----
+http://localhost:8983/solr/techproducts/update?update.chain=script -H 
"Content-Type: text/xml" --data-binary '
+<add>
+  <doc>
+    <field name="id">1</field>
+    <field name="description">foo</field>
+  </doc>
+</add>'
+----
+
+Which logs the following:
+ 
 [source,text]
 ----
 INFO: update-script#processAdd: id=1
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc 
b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
index 1af78c0ba31..1c180319e8f 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
@@ -86,10 +86,6 @@ NOTE: Properties marked with "!" indicate inverted meaning 
between pre Solr 10 a
 
 |solr.requests.allow.urls|solr.disable.allowUrls||Specifies URLs that are 
allowed for streaming. See also solr.requests.streaming.remote.enabled.
 
-|solr.requests.streaming.body.enabled|solr.enableStreamBody|false|Controls 
whether streaming request bodies are enabled.
-
-|solr.requests.streaming.remote.enabled|solr.enableRemoteStreaming|false|Controls
 whether remote streaming is enabled for requests.
-
 
|solr.resourceloading.restricted.enabled|!solr.allow.unsafe.resourceloading|true|Controls
 whether resource loading restrictions are enabled. When set to `true`, 
resource loading restrictions are enabled.
 
 |solr.responses.hidden.sys.props|solr.hiddenSysProps||Defines system 
properties that are hidden in responses.
diff --git 
a/solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc 
b/solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc
index c5c53a8209a..06748842c86 100644
--- a/solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc
@@ -23,38 +23,15 @@ When Solr RequestHandlers are accessed using path based 
URLs, the `SolrQueryRequ
 
 == Content Stream Sources
 
-Currently request handlers can get content streams in a variety of ways:
+Currently request handlers can get content streams in two ways:
 
 * For multipart file uploads, each file is passed as a stream.
 * For POST requests where the content-type is not 
`application/x-www-form-urlencoded`, the raw POST body is passed as a stream.
 The full POST body is parsed as parameters and included in the Solr parameters.
-* The contents of parameter `stream.body` is passed as a stream.
-Requires `SOLR_ENABLE_STREAM_BODY=true`.
-* Each `stream.url` and `stream.file` parameters is resolved / fetched and 
passed as a stream.
-Requires `SOLR_ENABLE_REMOTE_STREAMING=true`.
 
 By default, curl sends a `contentType="application/x-www-form-urlencoded"` 
header.
 If you need to test a SolrContentHeader content stream, you will need to set 
the content type with curl's `-H` flag.
 
-== Remote Streaming
-
-Remote streaming lets you send the contents of a URL as a stream to a given 
Solr RequestHandler.
-You could use remote streaming to send a remote or local file to an update 
plugin.
-
-Remote streaming is disabled by default.
-Enabling it is not recommended in a production situation without additional 
security between you and untrusted remote clients.
-
-[IMPORTANT]
-====
-If remote streaming is used, be aware that this allows _anyone_ to send a 
request to any URL or local file.
-And with the <<Debugging Requests,DumpRequestHandler>> anyone can view what 
Solr has access to.
-====
-
-Enable it with this environment variable: `SOLR_ENABLE_REMOTE_STREAMING=true`
-
-The source of the data can be compressed using gzip, and Solr will generally 
detect this.
-The detection is based on either the presence of a `Content-Encoding: gzip` 
HTTP header or the file ending with .gz or .gzip.
-Gzip doesn't apply to `stream.body`.
 
 == Debugging Requests
 
diff --git 
a/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
 
b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
index 44aa38a85a7..68a5ede4935 100644
--- 
a/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
+++ 
b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
@@ -250,14 +250,6 @@ This alternative `curl` command performs equivalent 
operations but with minimal
 curl http://localhost:8983/solr/my_collection/update -H "Content-Type: 
text/xml" -T "myfile.xml" -X POST
 ----
 
-Short requests can also be sent using a HTTP GET command, if enabled in 
xref:configuration-guide:requestdispatcher.adoc#requestparsers-element[`requestParsers`]
 element of `solrconfig.xml`, URL-encoding the request, as in the following.
-Note the escaping of "<" and ">":
-
-[source,bash]
-----
-curl 
http://localhost:8983/solr/my_collection/update?stream.body=%3Ccommit/%3E&wt=xml
-----
-
 Responses from Solr take the form shown here:
 
 [source,xml]
@@ -493,7 +485,7 @@ In addition to the `/update` handler, there are a few 
additional JSON specific r
 [width="100%",options="header",]
 |===
 |Path |Default Parameters
-|`/update/json` |`stream.contentType=application/json`
+|`/update/json` |`update.contentType=application/json`
 |`/update/json/docs` a|
 `stream.contentType=application/json`
 
@@ -753,7 +745,7 @@ In addition to the `/update` handler, there is an 
additional CSV specific reques
 [cols=",",options="header",]
 |===
 |Path |Default Parameters
-|`/update/csv` |`stream.contentType=application/csv`
+|`/update/csv` |`update.contentType=application/csv`
 |===
 
 The `/update/csv` path may be useful for clients sending in CSV formatted 
update commands from applications where setting the Content-Type proves 
difficult.
diff --git 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index 4a53180323e..977b54989cd 100644
--- 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++ 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -217,6 +217,8 @@ Nowadays, the HTTP request is available via internal APIs: 
`SolrQueryRequest.get
 
 * There is no longer a distinction between trusted and untrusted configSets; 
all configSets are now considered trusted. To ensure security, Solr should be 
properly protected using authentication and authorization mechanisms, allowing 
only authorized users with administrative privileges to publish them.
 
+* Use of `stream.file`, `stream.url`, and `stream.body` params in http 
requests have been removed.
+
 === Upgrade to Jetty 12.x and Jakarta namespace
 
 Solr upgraded to Jetty 12.x from 10.x as Jetty 10 and 11 have reached 
end-of-life support. Jetty 12.x requires Java 17 or newer and is fully 
compatible with Solr's new minimum requirement of Java 21. This upgrade brings 
support for modern HTTP protocols and adopts the Jakarta EE 10 namespace. For 
more details, see https://webtide.com/jetty-12-has-arrived/.
diff --git 
a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java 
b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
index e42dc929822..0387038aa84 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
@@ -138,21 +138,6 @@ public interface CommonParams {
   /** another query to explain against */
   String EXPLAIN_OTHER = "explainOther";
 
-  /** If the content stream should come from a URL (using URLConnection) */
-  String STREAM_URL = "stream.url";
-
-  /** If the content stream should come from a File (using FileReader) */
-  String STREAM_FILE = "stream.file";
-
-  /** If the content stream should come directly from a field */
-  String STREAM_BODY = "stream.body";
-
-  /**
-   * Explicitly set the content type for the input stream If multiple streams 
are specified, the
-   * explicit contentType will be used for all of them.
-   */
-  String STREAM_CONTENTTYPE = "stream.contentType";
-
   /** Whether the search may be terminated early within a segment. */
   String SEGMENT_TERMINATE_EARLY = "segmentTerminateEarly";
 
diff --git 
a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties 
b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
index eabb2459df1..f8d84642505 100644
--- a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
+++ b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
@@ -45,9 +45,6 @@ 
solr.metrics.fieldcache.entries.jmx.enabled=!disable.solr.field.cache.m.bean.ent
 solr.packages.enabled=enable.packages
 solr.port.listen=jetty.port
 
-solr.requests.streaming.body.enabled=solr.enable.stream.body
-solr.requests.streaming.remote.enabled=solr.enable.remote.streaming
-
 solr.resourceloading.restricted.enabled=!solr.allow.unsafe.resourceloading
 
 solr.responses.hidden.sys.props=solr.hidden.sys.props
diff --git 
a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java 
b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
index fe04cd2aac3..9a3b152cf72 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
@@ -30,7 +30,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrResourceLoader;
 
-/** Tests {@link ContentStream} such as "stream.file". */
+/** Tests {@link ContentStream}. */
 public class ContentStreamTest extends SolrTestCaseJ4 {
 
   public void testStringStream() throws IOException {


Reply via email to