From 4d87445049860e553564cebb31ff2b95a26ba6fc Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sat, 31 Jan 2026 10:24:54 -0500 Subject: [PATCH 01/11] lint fix --- .../java/org/apache/solr/handler/NotFoundRequestHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java index 50e2fa1f27ca..35c438c91e7b 100644 --- a/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java @@ -28,7 +28,7 @@ public class NotFoundRequestHandler extends RequestHandlerBase { @Override public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { throw new SolrException( - SolrException.ErrorCode.NOT_FOUND, "" + req.getContext().get(PATH) + " is not found"); + SolrException.ErrorCode.NOT_FOUND, req.getContext().get(PATH) + " is not found"); } @Override From b3935a9aed4313dbb9810ba2f2bd96d73cf223cb Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sat, 31 Jan 2026 10:28:09 -0500 Subject: [PATCH 02/11] Add back in the NoOpResponseWriter --- .../solr/response/NoOpResponseWriter.java | 19 ++++++++++++ .../solr/response/NoOpResponseWriterTest.java | 30 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java create mode 100644 solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java diff --git a/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java new file mode 100644 index 000000000000..477f0ec56641 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java @@ -0,0 +1,19 @@ +package org.apache.solr.response; + +import java.io.IOException; +import java.io.Writer; +import org.apache.solr.request.SolrQueryRequest; + +public class NoOpResponseWriter implements TextQueryResponseWriter { + static String MESSAGE = "no operation response writer"; + + @Override + public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) throws IOException { + writer.write(MESSAGE); + } + + @Override + public String getContentType(SolrQueryRequest request, SolrQueryResponse response) { + return QueryResponseWriter.CONTENT_TYPE_TEXT_UTF8; + } +} diff --git a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java new file mode 100644 index 000000000000..780961bea395 --- /dev/null +++ b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java @@ -0,0 +1,30 @@ +package org.apache.solr.response; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import org.junit.Test; + +public class NoOpResponseWriterTest { + + @Test + public void testWrite() throws IOException { + NoOpResponseWriter writer = new NoOpResponseWriter(); + + Writer stringWriter = new StringWriter(); + + writer.write(stringWriter, null, null); + + assertEquals(NoOpResponseWriter.MESSAGE, stringWriter.toString()); + } + + @Test + public void testGetContentType() { + NoOpResponseWriter writer = new NoOpResponseWriter(); + + String contentType = writer.getContentType(null, null); + assertEquals(QueryResponseWriter.CONTENT_TYPE_TEXT_UTF8, contentType); + } +} From f83cf3e9baf5f817449e2a4d0ca831cbd56a7bd1 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sat, 31 Jan 2026 10:28:44 -0500 Subject: [PATCH 03/11] Add NoOpRequestHandler and some docs.. --- .../solr/handler/NoOpRequestHandler.java | 43 +++++++++++++++++++ .../pages/implicit-requesthandlers.adoc | 12 ++++++ 2 files changed, 55 insertions(+) create mode 100644 solr/core/src/java/org/apache/solr/handler/NoOpRequestHandler.java diff --git a/solr/core/src/java/org/apache/solr/handler/NoOpRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/NoOpRequestHandler.java new file mode 100644 index 000000000000..6ce2e82d8778 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/handler/NoOpRequestHandler.java @@ -0,0 +1,43 @@ +/* + * 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.handler; + +import static org.apache.solr.common.params.CommonParams.PATH; + +import org.apache.solr.common.SolrException; +import org.apache.solr.request.SolrQueryRequest; +import org.apache.solr.response.SolrQueryResponse; +import org.apache.solr.security.AuthorizationContext; + +/** Does nothing other than showing a 403 message */ +public class NoOpRequestHandler extends RequestHandlerBase { + @Override + public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { + throw new SolrException( + SolrException.ErrorCode.FORBIDDEN, req.getContext().get(PATH) + " has been disabled"); + } + + @Override + public String getDescription() { + return "No Operation"; + } + + @Override + public Name getPermissionName(AuthorizationContext request) { + return Name.ALL; + } +} diff --git a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc index 85f25610a0ac..0b82acf0902d 100644 --- a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc +++ b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc @@ -367,3 +367,15 @@ The response will look similar to: Because implicit request handlers are not present in `solrconfig.xml`, configuration of their associated `default`, `invariant` and `appends` parameters may be edited via the xref:request-parameters-api.adoc[] using the paramset listed in the above table. However, other parameters, including SearchHandler components, may not be modified. The invariants and appends specified in the implicit configuration cannot be overridden. + +== How to Disable an Implicit Handler + +You may want to disable the loading of an implicit handler. +This is supported by remapping the name of the handler to the `NoOpRequestHandler` in `solrconfig.xml`, which will return a 403 FORBIDDEN status code. + +For example, to disable the `/update/csv` handler you would re-define it in `solrconfig.xml` as: + +[source,xml] +---- + +---- From 2a66fe89f4c3742b4f1135eb9dc71280a3ee1f93 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:00:56 -0500 Subject: [PATCH 04/11] Fix lint --- .../apache/solr/response/NoOpResponseWriter.java | 16 ++++++++++++++++ .../solr/response/NoOpResponseWriterTest.java | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java index 477f0ec56641..5a110d8263f6 100644 --- a/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java @@ -1,3 +1,19 @@ +/* + * 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.response; import java.io.IOException; diff --git a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java index 780961bea395..0734e617add6 100644 --- a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java +++ b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java @@ -1,3 +1,19 @@ +/* + * 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.response; import static org.junit.Assert.assertEquals; From bf77971ca338b12d24ed6e44b298045c9e99bece Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:21:00 -0500 Subject: [PATCH 05/11] Add in tests for NoOp versions. --- .../solr/collection1/conf/solrconfig-noop.xml | 68 +++++++++++++ .../solr/handler/NoOpRequestHandlerTest.java | 97 +++++++++++++++++++ .../solr/response/NoOpResponseWriterTest.java | 29 +++++- 3 files changed, 191 insertions(+), 3 deletions(-) create mode 100644 solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml create mode 100644 solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml new file mode 100644 index 000000000000..10312bcba3cc --- /dev/null +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml @@ -0,0 +1,68 @@ + + + + + + + + + ${solr.data.dir:} + + + 1000000 + 2000000 + 3000000 + 4000000 + + + + + ${tests.luceneMatchVersion:LATEST} + + + + ${solr.ulog.dir:} + + + + + ${solr.max.booleanClauses:1024} + + + + + + + + + explicit + true + text + + + + + + + \ No newline at end of file diff --git a/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java new file mode 100644 index 000000000000..ce9dc8d291ae --- /dev/null +++ b/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java @@ -0,0 +1,97 @@ +/* + * 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.handler; + +import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.common.SolrException; +import org.apache.solr.request.SolrQueryRequest; +import org.apache.solr.response.SolrQueryResponse; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test that demonstrates NoOpRequestHandler can be used to disable implicit handlers like + * SchemaHandler that are loaded via ImplicitPlugins.json. + */ +public class NoOpRequestHandlerTest extends SolrTestCaseJ4 { + + @BeforeClass + public static void beforeClass() throws Exception { + initCore("solrconfig-noopxml", "schema.xml"); + } + + @Test + public void testSchemaHandlerDisabled() { + // Test that /schema endpoint is disabled and returns 403 FORBIDDEN + SolrException exception = + expectThrows( + SolrException.class, + () -> { + try (SolrQueryRequest req = req("qt", "/schema")) { + SolrQueryResponse rsp = new SolrQueryResponse(); + h.getCore().execute(h.getCore().getRequestHandler("/schema"), req, rsp); + if (rsp.getException() != null) { + throw rsp.getException(); + } + } + }); + + assertEquals( + "Should return FORBIDDEN status code", + SolrException.ErrorCode.FORBIDDEN.code, + exception.code()); + assertTrue( + "Error message should indicate endpoint has been disabled", + exception.getMessage().contains("has been disabled")); + } + + @Test + public void testSchemaHandlerSubPathDisabled() { + // Test that /schema/fields endpoint is also disabled + SolrException exception = + expectThrows( + SolrException.class, + () -> { + try (SolrQueryRequest req = req("qt", "/schema/fields")) { + SolrQueryResponse rsp = new SolrQueryResponse(); + h.getCore().execute(h.getCore().getRequestHandler("/schema"), req, rsp); + if (rsp.getException() != null) { + throw rsp.getException(); + } + } + }); + + assertEquals( + "Should return FORBIDDEN status code", + SolrException.ErrorCode.FORBIDDEN.code, + exception.code()); + } + + @Test + public void testNoOpHandlerRegistered() { + // Verify that the NoOpRequestHandler is actually registered at /schema + assertNotNull("Schema handler should be registered", h.getCore().getRequestHandler("/schema")); + assertTrue( + "Handler at /schema should be NoOpRequestHandler", + h.getCore().getRequestHandler("/schema") instanceof NoOpRequestHandler); + } + + @Test + public void testOtherHandlersStillWork() { + assertQ("Standard query handler should still work", req("q", "*:*"), "//result[@numFound='0']"); + } +} diff --git a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java index 0734e617add6..a02a9ff1066f 100644 --- a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java +++ b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java @@ -16,14 +16,21 @@ */ package org.apache.solr.response; -import static org.junit.Assert.assertEquals; - +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; +import java.nio.charset.StandardCharsets; +import org.apache.solr.SolrTestCaseJ4; +import org.junit.BeforeClass; import org.junit.Test; -public class NoOpResponseWriterTest { +public class NoOpResponseWriterTest extends SolrTestCaseJ4 { + + @BeforeClass + public static void beforeClass() throws Exception { + initCore("solrconfig-noop.xml", "schema.xml"); + } @Test public void testWrite() throws IOException { @@ -43,4 +50,20 @@ public void testGetContentType() { String contentType = writer.getContentType(null, null); assertEquals(QueryResponseWriter.CONTENT_TYPE_TEXT_UTF8, contentType); } + + @Test + public void testCsvResponseWriterDisabled() throws Exception { + QueryResponseWriter csvWriter = h.getCore().getQueryResponseWriter("csv"); + + assertNotNull("CSV response writer should be registered", csvWriter); + assertTrue( + "CSV response writer should be NoOpResponseWriter, not the implicit CSVResponseWriter", + csvWriter instanceof NoOpResponseWriter); + + // Verify it returns the NoOp message when used + ByteArrayOutputStream out = new ByteArrayOutputStream(); + csvWriter.write(out, null, null); + String output = out.toString(StandardCharsets.UTF_8); + assertEquals("CSV writer should return NoOp message", NoOpResponseWriter.MESSAGE, output); + } } From 33bb98233dc2548c0808bb0977925658763c8289 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:41:13 -0500 Subject: [PATCH 06/11] shorter resposne --- .../src/java/org/apache/solr/response/NoOpResponseWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java index 5a110d8263f6..125f3338f20e 100644 --- a/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/NoOpResponseWriter.java @@ -21,7 +21,7 @@ import org.apache.solr.request.SolrQueryRequest; public class NoOpResponseWriter implements TextQueryResponseWriter { - static String MESSAGE = "no operation response writer"; + static String MESSAGE = "noop response writer"; @Override public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) throws IOException { From 9bc87a089c7a0e150a7c9dd548e3d7a97cd45f8d Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:41:19 -0500 Subject: [PATCH 07/11] Add docs --- .../modules/query-guide/pages/response-writers.adoc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc b/solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc index b4f29b8e6815..0aff169b739a 100644 --- a/solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc +++ b/solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc @@ -32,6 +32,7 @@ The list below describe shows the most common settings for the `wt` parameter, w * <> * <> * <> +* <> == JSON Response Writer @@ -386,3 +387,15 @@ else: == Smile Response Writer The Smile format is a JSON-compatible binary format, described in detail here: https://en.wikipedia.org/wiki/Smile_%28data_interchange_format%29[https://en.wikipedia.org/wiki/Smile_(data_interchange_format)] + +== NoOp Response Writer + +You may want to disable a specific response writer. +This is supported by remapping the name of the response writer to the `NoOpResponseWriter` in `solrconfig.xml`, which will return a 200 OK status code with the plain text message `noop response writer`. + +For example, to disable the `csv` handler you would re-define it in `solrconfig.xml` as: + +[source,xml] +---- + +---- From 8b0aa14fb566f7e645b323752eb6469537a38251 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:48:58 -0500 Subject: [PATCH 08/11] Unused handler! --- .../solr/handler/NotFoundRequestHandler.java | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java diff --git a/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java deleted file mode 100644 index 35c438c91e7b..000000000000 --- a/solr/core/src/java/org/apache/solr/handler/NotFoundRequestHandler.java +++ /dev/null @@ -1,43 +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.handler; - -import static org.apache.solr.common.params.CommonParams.PATH; - -import org.apache.solr.common.SolrException; -import org.apache.solr.request.SolrQueryRequest; -import org.apache.solr.response.SolrQueryResponse; -import org.apache.solr.security.AuthorizationContext; - -/** Does nothing other than showing a 404 message */ -public class NotFoundRequestHandler extends RequestHandlerBase { - @Override - public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { - throw new SolrException( - SolrException.ErrorCode.NOT_FOUND, req.getContext().get(PATH) + " is not found"); - } - - @Override - public String getDescription() { - return "No Operation"; - } - - @Override - public Name getPermissionName(AuthorizationContext request) { - return Name.ALL; - } -} From b500e61f064a50aff3fec8373c53005d946e3fae Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 13:57:10 -0500 Subject: [PATCH 09/11] Bit o polish and back out fat finger error. --- .../src/test-files/solr/collection1/conf/solrconfig-noop.xml | 2 +- .../test/org/apache/solr/handler/NoOpRequestHandlerTest.java | 2 +- .../test/org/apache/solr/response/NoOpResponseWriterTest.java | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml index 10312bcba3cc..cb3e8bfb783e 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml @@ -65,4 +65,4 @@ --> - \ No newline at end of file + diff --git a/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java index ce9dc8d291ae..4193a7829bd3 100644 --- a/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/NoOpRequestHandlerTest.java @@ -31,7 +31,7 @@ public class NoOpRequestHandlerTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { - initCore("solrconfig-noopxml", "schema.xml"); + initCore("solrconfig-noop.xml", "schema.xml"); } @Test diff --git a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java index a02a9ff1066f..fc8888eda829 100644 --- a/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java +++ b/solr/core/src/test/org/apache/solr/response/NoOpResponseWriterTest.java @@ -25,6 +25,10 @@ import org.junit.BeforeClass; import org.junit.Test; +/** + * Test that demonstrates NoOpResponseWriter can be used to disable implicit response writers that + * are loaded via ImplicitPlugins.json. + */ public class NoOpResponseWriterTest extends SolrTestCaseJ4 { @BeforeClass From 8fd9e49466b6b34d5c32bed1b1200436a77d29d3 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 15:49:13 -0500 Subject: [PATCH 10/11] add chnagelog --- changelog/unreleased/SOLR-18095.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 changelog/unreleased/SOLR-18095.yml diff --git a/changelog/unreleased/SOLR-18095.yml b/changelog/unreleased/SOLR-18095.yml new file mode 100644 index 000000000000..8884ef9ab2de --- /dev/null +++ b/changelog/unreleased/SOLR-18095.yml @@ -0,0 +1,8 @@ +# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc +title: Provide NoOpRequestWriter and NoOpRequestHandler that can be used to disable implicitly configured equivalents. +type: added # added, changed, fixed, deprecated, removed, dependency_update, security, other +authors: + - name: Eric Pugh +links: + - name: SOLR-18095 + url: https://issues.apache.org/jira/browse/SOLR-18095 From 553dcc42818907fe95f4de50a3b359a4f9b31517 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 10 Feb 2026 15:52:40 -0500 Subject: [PATCH 11/11] strip down what we configure --- .../solr/collection1/conf/solrconfig-noop.xml | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml index cb3e8bfb783e..2e9a5e463d02 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-noop.xml @@ -23,13 +23,6 @@ ${solr.data.dir:} - - 1000000 - 2000000 - 3000000 - 4000000 - - ${tests.luceneMatchVersion:LATEST} @@ -40,12 +33,8 @@ - - ${solr.max.booleanClauses:1024} - - - @@ -59,7 +48,7 @@ -