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

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


The following commit(s) were added to refs/heads/main by this push:
     new 50808cdcdb9 SOLR-17069 SOLR-17503: Don't include 
jetty-jakarta-servlet-api JAR (EE9) (#3838)
50808cdcdb9 is described below

commit 50808cdcdb9c2985aff5995f9ff3f5c8782f1be0
Author: David Smiley <[email protected]>
AuthorDate: Fri Nov 7 17:38:00 2025 -0500

    SOLR-17069 SOLR-17503: Don't include jetty-jakarta-servlet-api JAR (EE9) 
(#3838)
    
    We should not have this JAR 
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api as it is for Jakarta EE 
9, and it contains javax XSD definitions.  It also contains servlet classes for 
v5 that compete with jakarta servlet-api v6 that we already depend on in some 
places.
    
    * Use mocking instead of implementing the entire HttpServletRequest and 
response interfaces.
    * toml: remove unused jetty lib references
    * NOTICE: the servlet references were obsolete.  The servlet JAR has it's 
own license file, and isn't CDDL either.
---
 gradle/libs.versions.toml                          |   6 +-
 solr/api/gradle.lockfile                           |   1 -
 solr/benchmark/gradle.lockfile                     |   1 -
 solr/core/build.gradle                             |   5 +-
 solr/core/gradle.lockfile                          |   3 +-
 .../apache/solr/servlet/HttpSolrCallCloudTest.java | 581 ++-------------------
 .../solr/servlet/TestRequestRateLimiter.java       | 386 +-------------
 solr/cross-dc-manager/gradle.lockfile              |   1 -
 .../jetty-jakarta-servlet-api-5.0.2.jar.sha1       |   1 -
 solr/modules/analysis-extras/gradle.lockfile       |   3 +-
 solr/modules/clustering/gradle.lockfile            |   3 +-
 solr/modules/cross-dc/gradle.lockfile              |   3 +-
 solr/modules/cuvs/gradle.lockfile                  |   3 +-
 solr/modules/extraction/gradle.lockfile            |   3 +-
 solr/modules/gcs-repository/gradle.lockfile        |   3 +-
 solr/modules/jwt-auth/build.gradle                 |   2 +-
 solr/modules/jwt-auth/gradle.lockfile              |   3 +-
 solr/modules/langid/gradle.lockfile                |   3 +-
 solr/modules/llm/gradle.lockfile                   |   3 +-
 solr/modules/ltr/gradle.lockfile                   |   3 +-
 solr/modules/opentelemetry/gradle.lockfile         |   3 +-
 solr/modules/s3-repository/gradle.lockfile         |   3 +-
 solr/modules/scripting/gradle.lockfile             |   3 +-
 solr/modules/sql/gradle.lockfile                   |   3 +-
 solr/server/build.gradle                           |   3 +-
 solr/server/gradle.lockfile                        |   3 +-
 solr/solr-ref-guide/gradle.lockfile                |   1 -
 .../pages/major-changes-in-solr-10.adoc            |   3 +-
 solr/solrj-streaming/gradle.lockfile               |   1 -
 solr/solrj-zookeeper/gradle.lockfile               |   1 -
 solr/solrj/gradle.lockfile                         |   1 -
 .../client/solrj/impl/BasicHttpSolrClientTest.java |   1 +
 solr/test-framework/gradle.lockfile                |   1 -
 solr/webapp/gradle.lockfile                        |   3 +-
 34 files changed, 73 insertions(+), 974 deletions(-)

diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 43bfc4bb5f0..86f6a33a61d 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -83,7 +83,6 @@ dockerfile-baseimage-java = "25"
 dropwizard-metrics = "4.2.26"
 eclipse-ecj = "3.39.0"
 eclipse-jetty = "12.0.27"
-eclipse-jettytoolchain = "5.0.2"
 # @keep jgit version used by git-status.gradle
 eclipse-jgit = "7.3.0.202506031305-r"
 essenty = "2.5.0"
@@ -122,6 +121,7 @@ hsqldb = "2.7.4"
 ibm-icu = "77.1"
 immutables-valueannotations = "2.10.1"
 j256-simplemagic = "1.17"
+# Keep these Jakarta versions aligned with EE 10
 jakarta-annotation = "2.1.1"
 jakarta-inject = "2.0.1"
 jakarta-servlet = "6.0.0"
@@ -332,7 +332,6 @@ eclipse-jetty-alpnjavaserver = { module = 
"org.eclipse.jetty:jetty-alpn-java-ser
 eclipse-jetty-alpnserver = { module = "org.eclipse.jetty:jetty-alpn-server", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-client = { module = "org.eclipse.jetty:jetty-client", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-deploy = { module = "org.eclipse.jetty:jetty-deploy", 
version.ref = "eclipse-jetty" }
-eclipse-jetty-ee = { module = "org.eclipse.jetty:jetty-ee", version.ref = 
"eclipse-jetty" }
 eclipse-jetty-ee10-servlet = { module = 
"org.eclipse.jetty.ee10:jetty-ee10-servlet", version.ref = "eclipse-jetty" }
 eclipse-jetty-ee10-servlets = { module = 
"org.eclipse.jetty.ee10:jetty-ee10-servlets", version.ref = "eclipse-jetty" }
 eclipse-jetty-ee10-webapp = { module = 
"org.eclipse.jetty.ee10:jetty-ee10-webapp", version.ref = "eclipse-jetty" }
@@ -344,14 +343,11 @@ eclipse-jetty-http2-httpclienttransport = { module = 
"org.eclipse.jetty.http2:je
 eclipse-jetty-http2-server = { module = 
"org.eclipse.jetty.http2:jetty-http2-server", version.ref = "eclipse-jetty" }
 eclipse-jetty-io = { module = "org.eclipse.jetty:jetty-io", version.ref = 
"eclipse-jetty" }
 eclipse-jetty-jmx = { module = "org.eclipse.jetty:jetty-jmx", version.ref = 
"eclipse-jetty" }
-eclipse-jetty-jndi = { module = "org.eclipse.jetty:jetty-jndi", version.ref = 
"eclipse-jetty" }
-eclipse-jetty-plus = { module = "org.eclipse.jetty:jetty-plus", version.ref = 
"eclipse-jetty" }
 eclipse-jetty-rewrite = { module = "org.eclipse.jetty:jetty-rewrite", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-security = { module = "org.eclipse.jetty:jetty-security", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-server = { module = "org.eclipse.jetty:jetty-server", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-session = { module = "org.eclipse.jetty:jetty-session", 
version.ref = "eclipse-jetty" }
 eclipse-jetty-start = { module = "org.eclipse.jetty:jetty-start", version.ref 
= "eclipse-jetty" }
-eclipse-jetty-toolchain-servletapi = { module = 
"org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api", version.ref = 
"eclipse-jettytoolchain" }
 eclipse-jetty-util = { module = "org.eclipse.jetty:jetty-util", version.ref = 
"eclipse-jetty" }
 eclipse-jetty-xml = { module = "org.eclipse.jetty:jetty-xml", version.ref = 
"eclipse-jetty" }
 eclipse-jgit-jgit = { module = "org.eclipse.jgit:org.eclipse.jgit", 
version.ref = "eclipse-jgit" }
diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile
index f0f31acca93..80e1151820b 100644
--- a/solr/api/gradle.lockfile
+++ b/solr/api/gradle.lockfile
@@ -130,7 +130,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,testCompileClas
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile
index bedee55d6b8..c69eb9ea37a 100644
--- a/solr/benchmark/gradle.lockfile
+++ b/solr/benchmark/gradle.lockfile
@@ -121,7 +121,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,runtimeClasspath,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,runtimeClasspath,testRuntimeClasspath
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index bbe9b292141..1737714ab2f 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -67,11 +67,11 @@ dependencies {
   implementation libs.jersey.core.common
   implementation libs.jersey.core.server
   implementation libs.hk2.api
+
   implementation libs.jakarta.inject.api
   implementation libs.jakarta.ws.rsapi
   implementation libs.jakarta.annotation.api
-
-  // Non-API below; although there are exceptions
+  implementation libs.jakarta.servlet.api
 
   runtimeOnly libs.apache.lucene.analysis.kuromoji
   runtimeOnly libs.apache.lucene.analysis.nori
@@ -116,7 +116,6 @@ dependencies {
   implementation libs.eclipse.jetty.client
   implementation libs.eclipse.jetty.http
   implementation libs.eclipse.jetty.io
-  implementation libs.eclipse.jetty.toolchain.servletapi
   implementation libs.eclipse.jetty.util
 
   // ZooKeeper
diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile
index 453b1f64320..ccc40fb7f4f 100644
--- a/solr/core/gradle.lockfile
+++ b/solr/core/gradle.lockfile
@@ -78,7 +78,7 @@ 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath
 jakarta.activation:jakarta.activation-api:2.1.3=permitUnusedDeclared
 
jakarta.annotation:jakarta.annotation-api:2.1.1=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=permitUnusedDeclared
@@ -140,7 +140,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git 
a/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java 
b/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
index 7e6fbf8bd07..447ce487506 100644
--- a/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
@@ -17,45 +17,25 @@
 
 package org.apache.solr.servlet;
 
-import jakarta.servlet.AsyncContext;
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.ReadListener;
-import jakarta.servlet.RequestDispatcher;
-import jakarta.servlet.ServletContext;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletInputStream;
-import jakarta.servlet.ServletOutputStream;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
 import jakarta.servlet.UnavailableException;
-import jakarta.servlet.WriteListener;
-import jakarta.servlet.http.Cookie;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import jakarta.servlet.http.HttpSession;
-import jakarta.servlet.http.HttpUpgradeHandler;
-import jakarta.servlet.http.Part;
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
 import java.net.HttpURLConnection;
 import java.net.URI;
-import java.security.Principal;
-import java.util.Collection;
-import java.util.Enumeration;
+import java.nio.charset.StandardCharsets;
 import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
 import java.util.Set;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
 import org.apache.solr.cloud.AbstractDistribZkTestBase;
 import org.apache.solr.cloud.SolrCloudTestCase;
+import org.apache.solr.common.util.SuppressForbidden;
 import org.apache.solr.embedded.JettySolrRunner;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 @SolrTestCaseJ4.SuppressSSL
 public class HttpSolrCallCloudTest extends SolrCloudTestCase {
@@ -65,6 +45,7 @@ public class HttpSolrCallCloudTest extends SolrCloudTestCase {
 
   @BeforeClass
   public static void setupCluster() throws Exception {
+    SolrTestCaseJ4.assumeWorkingMockito();
     configureCluster(1)
         .addConfig(
             "config", 
TEST_PATH().resolve("configsets").resolve("cloud-minimal").resolve("conf"))
@@ -78,9 +59,9 @@ public class HttpSolrCallCloudTest extends SolrCloudTestCase {
 
   @Test
   public void testCoreChosen() throws Exception {
-    assertCoreChosen(NUM_SHARD, new TestRequest("/collection1/update"));
-    assertCoreChosen(NUM_SHARD, new TestRequest("/collection1/update/json"));
-    assertCoreChosen(NUM_SHARD * REPLICA_FACTOR, new 
TestRequest("/collection1/select"));
+    assertCoreChosen(NUM_SHARD, newRequest("/collection1/update"));
+    assertCoreChosen(NUM_SHARD, newRequest("/collection1/update/json"));
+    assertCoreChosen(NUM_SHARD * REPLICA_FACTOR, 
newRequest("/collection1/select"));
   }
 
   // https://issues.apache.org/jira/browse/SOLR-16019
@@ -94,7 +75,8 @@ public class HttpSolrCallCloudTest extends SolrCloudTestCase {
     assertEquals(400, connection.getResponseCode());
   }
 
-  private void assertCoreChosen(int numCores, TestRequest testRequest) throws 
UnavailableException {
+  private void assertCoreChosen(int numCores, HttpServletRequest testRequest)
+      throws UnavailableException {
     JettySolrRunner jettySolrRunner = cluster.getJettySolrRunner(0);
     Set<String> coreNames = new HashSet<>();
     SolrDispatchFilter dispatchFilter = 
jettySolrRunner.getSolrDispatchFilter();
@@ -102,7 +84,7 @@ public class HttpSolrCallCloudTest extends SolrCloudTestCase 
{
       if (coreNames.size() == numCores) return;
       HttpSolrCall httpSolrCall =
           new HttpSolrCall(
-              dispatchFilter, dispatchFilter.getCores(), testRequest, new 
TestResponse(), false);
+              dispatchFilter, dispatchFilter.getCores(), testRequest, 
newResponse(), false);
       try {
         httpSolrCall.init();
       } catch (Exception e) {
@@ -114,523 +96,34 @@ public class HttpSolrCallCloudTest extends 
SolrCloudTestCase {
     assertEquals(numCores, coreNames.size());
   }
 
-  public static class TestRequest implements HttpServletRequest {
-    private final String path;
-
-    public TestRequest(String path) {
-      this.path = path;
-    }
-
-    @Override
-    public String getAuthType() {
-      return "";
-    }
-
-    @Override
-    public Cookie[] getCookies() {
-      return new Cookie[0];
-    }
-
-    @Override
-    public long getDateHeader(String name) {
-      return 0;
-    }
-
-    @Override
-    public String getHeader(String name) {
-      return "";
-    }
-
-    @Override
-    public Enumeration<String> getHeaders(String name) {
-      return null;
-    }
-
-    @Override
-    public Enumeration<String> getHeaderNames() {
-      return null;
-    }
-
-    @Override
-    public int getIntHeader(String name) {
-      return 0;
-    }
-
-    @Override
-    public String getMethod() {
-      return "";
-    }
-
-    @Override
-    public String getPathInfo() {
-      return "";
-    }
-
-    @Override
-    public String getPathTranslated() {
-      return "";
-    }
-
-    @Override
-    public String getContextPath() {
-      return "";
-    }
-
-    @Override
-    public String getQueryString() {
-      return "version=2";
-    }
-
-    @Override
-    public String getRemoteUser() {
-      return "";
-    }
-
-    @Override
-    public boolean isUserInRole(String role) {
-      return false;
-    }
-
-    @Override
-    public Principal getUserPrincipal() {
-      return null;
-    }
-
-    @Override
-    public String getRequestedSessionId() {
-      return "";
-    }
-
-    @Override
-    public String getRequestURI() {
-      return path;
-    }
-
-    @Override
-    public StringBuffer getRequestURL() {
-      return null;
-    }
-
-    @Override
-    public String getServletPath() {
-      return path;
-    }
-
-    @Override
-    public HttpSession getSession(boolean create) {
-      return null;
-    }
-
-    @Override
-    public HttpSession getSession() {
-      return null;
-    }
-
-    @Override
-    public String changeSessionId() {
-      return "";
-    }
-
-    @Override
-    public boolean isRequestedSessionIdValid() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromCookie() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromURL() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromUrl() {
-      return false;
-    }
-
-    @Override
-    public boolean authenticate(HttpServletResponse response) throws 
IOException, ServletException {
-      return false;
-    }
-
-    @Override
-    public void login(String username, String password) throws 
ServletException {}
-
-    @Override
-    public void logout() throws ServletException {}
-
-    @Override
-    public Collection<Part> getParts() throws IOException, ServletException {
-      return List.of();
-    }
-
-    @Override
-    public Part getPart(String name) throws IOException, ServletException {
-      return null;
-    }
-
-    @Override
-    public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass)
-        throws IOException, ServletException {
-      return null;
-    }
-
-    @Override
-    public Object getAttribute(String name) {
-      return null;
-    }
-
-    @Override
-    public Enumeration<String> getAttributeNames() {
-      return null;
-    }
-
-    @Override
-    public String getCharacterEncoding() {
-      return "";
-    }
-
-    @Override
-    public void setCharacterEncoding(String env) throws 
UnsupportedEncodingException {}
-
-    @Override
-    public int getContentLength() {
-      return 0;
-    }
-
-    @Override
-    public long getContentLengthLong() {
-      return 0;
-    }
-
-    @Override
-    public String getContentType() {
-      return "application/json";
-    }
-
-    @Override
-    public ServletInputStream getInputStream() throws IOException {
-      return new ServletInputStream() {
-        @Override
-        public boolean isFinished() {
-          return true;
-        }
-
-        @Override
-        public boolean isReady() {
-          return true;
-        }
-
-        @Override
-        public void setReadListener(ReadListener readListener) {}
-
-        @Override
-        public int read() {
-          return 0;
-        }
-      };
-    }
-
-    @Override
-    public String getParameter(String name) {
-      return "";
-    }
-
-    @Override
-    public Enumeration<String> getParameterNames() {
-      return null;
-    }
-
-    @Override
-    public String[] getParameterValues(String name) {
-      return new String[0];
-    }
-
-    @Override
-    public Map<String, String[]> getParameterMap() {
-      return Map.of();
-    }
-
-    @Override
-    public String getProtocol() {
-      return "";
-    }
-
-    @Override
-    public String getScheme() {
-      return "";
-    }
-
-    @Override
-    public String getServerName() {
-      return "";
-    }
-
-    @Override
-    public int getServerPort() {
-      return 0;
-    }
-
-    @Override
-    public BufferedReader getReader() throws IOException {
-      return null;
-    }
-
-    @Override
-    public String getRemoteAddr() {
-      return "";
-    }
-
-    @Override
-    public String getRemoteHost() {
-      return "";
-    }
-
-    @Override
-    public void setAttribute(String name, Object o) {}
-
-    @Override
-    public void removeAttribute(String name) {}
-
-    @Override
-    public Locale getLocale() {
-      return null;
-    }
-
-    @Override
-    public Enumeration<Locale> getLocales() {
-      return null;
-    }
-
-    @Override
-    public boolean isSecure() {
-      return false;
-    }
-
-    @Override
-    public RequestDispatcher getRequestDispatcher(String path) {
-      return null;
-    }
-
-    @Override
-    public String getRealPath(String path) {
-      return "";
-    }
-
-    @Override
-    public int getRemotePort() {
-      return 0;
-    }
-
-    @Override
-    public String getLocalName() {
-      return "";
-    }
-
-    @Override
-    public String getLocalAddr() {
-      return "";
-    }
-
-    @Override
-    public int getLocalPort() {
-      return 0;
-    }
-
-    @Override
-    public ServletContext getServletContext() {
-      return null;
-    }
-
-    @Override
-    public AsyncContext startAsync() throws IllegalStateException {
-      return null;
-    }
-
-    @Override
-    public AsyncContext startAsync(ServletRequest servletRequest, 
ServletResponse servletResponse)
-        throws IllegalStateException {
-      return null;
-    }
-
-    @Override
-    public boolean isAsyncStarted() {
-      return false;
-    }
-
-    @Override
-    public boolean isAsyncSupported() {
-      return false;
-    }
-
-    @Override
-    public AsyncContext getAsyncContext() {
-      return null;
-    }
-
-    @Override
-    public DispatcherType getDispatcherType() {
-      return null;
-    }
+  private static HttpServletRequest newRequest(String path) {
+    HttpServletRequest req = Mockito.mock(HttpServletRequest.class);
+    Mockito.when(req.getMethod()).thenReturn("GET");
+    Mockito.when(req.getRequestURI()).thenReturn(path);
+    Mockito.when(req.getServletPath()).thenReturn(path);
+    Mockito.when(req.getQueryString()).thenReturn("version=2");
+    Mockito.when(req.getContentType()).thenReturn("application/json");
+    Mockito.when(req.getHeader("Content-Type")).thenReturn("application/json");
+    try {
+      Mockito.when(req.getInputStream())
+          
.thenReturn(ServletUtils.ClosedServletInputStream.CLOSED_SERVLET_INPUT_STREAM);
+    } catch (IOException e) { // impossible; only required because we mock 
methods that throw
+      throw new RuntimeException(e);
+    }
+    return req;
   }
 
-  public static class TestResponse implements HttpServletResponse {
-
-    @Override
-    public void addCookie(Cookie cookie) {}
-
-    @Override
-    public boolean containsHeader(String name) {
-      return false;
-    }
-
-    @Override
-    public String encodeURL(String url) {
-      return "";
-    }
-
-    @Override
-    public String encodeRedirectURL(String url) {
-      return "";
-    }
-
-    @Override
-    public String encodeUrl(String url) {
-      return "";
-    }
-
-    @Override
-    public String encodeRedirectUrl(String url) {
-      return "";
-    }
-
-    @Override
-    public void sendError(int sc, String msg) throws IOException {}
-
-    @Override
-    public void sendError(int sc) throws IOException {}
-
-    @Override
-    public void sendRedirect(String location) throws IOException {}
-
-    @Override
-    public void setDateHeader(String name, long date) {}
-
-    @Override
-    public void addDateHeader(String name, long date) {}
-
-    @Override
-    public void setHeader(String name, String value) {}
-
-    @Override
-    public void addHeader(String name, String value) {}
-
-    @Override
-    public void setIntHeader(String name, int value) {}
-
-    @Override
-    public void addIntHeader(String name, int value) {}
-
-    @Override
-    public void setStatus(int sc) {}
-
-    @Override
-    public void setStatus(int sc, String sm) {}
-
-    @Override
-    public int getStatus() {
-      return 0;
-    }
-
-    @Override
-    public String getHeader(String name) {
-      return "";
-    }
-
-    @Override
-    public Collection<String> getHeaders(String name) {
-      return List.of();
-    }
-
-    @Override
-    public Collection<String> getHeaderNames() {
-      return List.of();
-    }
-
-    @Override
-    public String getCharacterEncoding() {
-      return "";
-    }
-
-    @Override
-    public String getContentType() {
-      return "";
-    }
-
-    @Override
-    public ServletOutputStream getOutputStream() throws IOException {
-      return new ServletOutputStream() {
-        @Override
-        public boolean isReady() {
-          return true;
-        }
-
-        @Override
-        public void setWriteListener(WriteListener writeListener) {}
-
-        @Override
-        public void write(int b) {}
-      };
-    }
-
-    @Override
-    public PrintWriter getWriter() throws IOException {
-      return null;
-    }
-
-    @Override
-    public void setCharacterEncoding(String charset) {}
-
-    @Override
-    public void setContentLength(int len) {}
-
-    @Override
-    public void setContentLengthLong(long len) {}
-
-    @Override
-    public void setContentType(String type) {}
-
-    @Override
-    public void setBufferSize(int size) {}
-
-    @Override
-    public int getBufferSize() {
-      return 0;
-    }
-
-    @Override
-    public void flushBuffer() throws IOException {}
-
-    @Override
-    public void resetBuffer() {}
-
-    @Override
-    public boolean isCommitted() {
-      return true;
-    }
-
-    @Override
-    public void reset() {}
-
-    @Override
-    public void setLocale(Locale loc) {}
-
-    @Override
-    public Locale getLocale() {
-      return null;
-    }
+  @SuppressForbidden(reason = "tests needn't comply")
+  private static HttpServletResponse newResponse() {
+    HttpServletResponse resp = Mockito.mock(HttpServletResponse.class);
+    try {
+      Mockito.when(resp.getOutputStream())
+          
.thenReturn(ServletUtils.ClosedServletOutputStream.CLOSED_SERVLET_OUTPUT_STREAM);
+      Mockito.when(resp.getWriter())
+          .thenReturn(new PrintWriter(System.out, false, 
StandardCharsets.UTF_8));
+    } catch (IOException e) { // impossible; only required because we mock 
methods that throw
+      throw new RuntimeException(e);
+    }
+    return resp;
   }
 }
diff --git 
a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java 
b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
index 53a65ad7f40..f563de91ebd 100644
--- a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
+++ b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
@@ -23,31 +23,11 @@ import static 
org.apache.solr.servlet.RateLimitManager.DEFAULT_SLOT_ACQUISITION_
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.instanceOf;
 
-import jakarta.servlet.AsyncContext;
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.RequestDispatcher;
-import jakarta.servlet.ServletContext;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletInputStream;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.Cookie;
 import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.servlet.http.HttpSession;
-import jakarta.servlet.http.HttpUpgradeHandler;
-import jakarta.servlet.http.Part;
-import java.io.BufferedReader;
 import java.io.Closeable;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.security.Principal;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
 import java.util.List;
-import java.util.Locale;
-import java.util.Map;
 import java.util.Random;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
@@ -58,6 +38,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.LongAdder;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrRequest;
@@ -72,6 +53,7 @@ import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.core.RateLimiterConfig;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 public class TestRequestRateLimiter extends SolrCloudTestCase {
   private static final String FIRST_COLLECTION = "c1";
@@ -79,6 +61,7 @@ public class TestRequestRateLimiter extends SolrCloudTestCase 
{
 
   @BeforeClass
   public static void setupCluster() throws Exception {
+    SolrTestCaseJ4.assumeWorkingMockito();
     configureCluster(1).addConfig(FIRST_COLLECTION, 
configset("cloud-minimal")).configure();
   }
 
@@ -293,363 +276,16 @@ public class TestRequestRateLimiter extends 
SolrCloudTestCase {
     
assertTrue(mgr.getRequestRateLimiter(SolrRequest.SolrRequestType.UPDATE).isEmpty());
   }
 
-  private static final HttpServletRequest QUERY_REQ = new DummyRequest(null, 
"QUERY");
-  private static final HttpServletRequest UPDATE_REQ = new DummyRequest(null, 
"UPDATE");
-
-  private static class DummyRequest implements HttpServletRequest {
-    private final String ctx;
-    private final String type;
-
-    public DummyRequest(String ctx, String type) {
-      this.ctx = ctx;
-      this.type = type;
-    }
-
-    @Override
-    public String getAuthType() {
-      return "";
-    }
-
-    @Override
-    public Cookie[] getCookies() {
-      return new Cookie[0];
-    }
-
-    @Override
-    public long getDateHeader(String name) {
-      return 0;
-    }
-
-    @Override
-    public String getHeader(String name) {
-      switch (name) {
-        case SOLR_REQUEST_CONTEXT_PARAM:
-          return ctx;
-        case SOLR_REQUEST_TYPE_PARAM:
-          return type;
-        default:
-          throw new IllegalArgumentException();
-      }
-    }
-
-    @Override
-    public Enumeration<String> getHeaders(String name) {
-      return null;
-    }
-
-    @Override
-    public Enumeration<String> getHeaderNames() {
-      return null;
-    }
-
-    @Override
-    public int getIntHeader(String name) {
-      return 0;
-    }
-
-    @Override
-    public String getMethod() {
-      return "";
-    }
-
-    @Override
-    public String getPathInfo() {
-      return "";
-    }
-
-    @Override
-    public String getPathTranslated() {
-      return "";
-    }
-
-    @Override
-    public String getContextPath() {
-      return "";
-    }
-
-    @Override
-    public String getQueryString() {
-      return "";
-    }
-
-    @Override
-    public String getRemoteUser() {
-      return "";
-    }
-
-    @Override
-    public boolean isUserInRole(String role) {
-      return false;
-    }
-
-    @Override
-    public Principal getUserPrincipal() {
-      return null;
-    }
-
-    @Override
-    public String getRequestedSessionId() {
-      return "";
-    }
-
-    @Override
-    public String getRequestURI() {
-      return "";
-    }
-
-    @Override
-    public StringBuffer getRequestURL() {
-      return null;
-    }
-
-    @Override
-    public String getServletPath() {
-      return "";
-    }
-
-    @Override
-    public HttpSession getSession(boolean create) {
-      return null;
-    }
-
-    @Override
-    public HttpSession getSession() {
-      return null;
-    }
-
-    @Override
-    public String changeSessionId() {
-      return "";
-    }
-
-    @Override
-    public boolean isRequestedSessionIdValid() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromCookie() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromURL() {
-      return false;
-    }
-
-    @Override
-    public boolean isRequestedSessionIdFromUrl() {
-      return false;
-    }
-
-    @Override
-    public boolean authenticate(HttpServletResponse response) throws 
IOException, ServletException {
-      return false;
-    }
-
-    @Override
-    public void login(String username, String password) throws 
ServletException {}
-
-    @Override
-    public void logout() throws ServletException {}
-
-    @Override
-    public Collection<Part> getParts() throws IOException, ServletException {
-      return List.of();
-    }
-
-    @Override
-    public Part getPart(String name) throws IOException, ServletException {
-      return null;
-    }
-
-    @Override
-    public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass)
-        throws IOException, ServletException {
-      return null;
-    }
-
-    @Override
-    public Object getAttribute(String name) {
-      return null;
-    }
-
-    @Override
-    public Enumeration<String> getAttributeNames() {
-      return null;
-    }
-
-    @Override
-    public String getCharacterEncoding() {
-      return "";
-    }
-
-    @Override
-    public void setCharacterEncoding(String env) throws 
UnsupportedEncodingException {}
-
-    @Override
-    public int getContentLength() {
-      return 0;
-    }
-
-    @Override
-    public long getContentLengthLong() {
-      return 0;
-    }
-
-    @Override
-    public String getContentType() {
-      return "";
-    }
-
-    @Override
-    public ServletInputStream getInputStream() throws IOException {
-      return null;
-    }
-
-    @Override
-    public String getParameter(String name) {
-      return "";
-    }
-
-    @Override
-    public Enumeration<String> getParameterNames() {
-      return null;
-    }
-
-    @Override
-    public String[] getParameterValues(String name) {
-      return new String[0];
-    }
-
-    @Override
-    public Map<String, String[]> getParameterMap() {
-      return Map.of();
-    }
-
-    @Override
-    public String getProtocol() {
-      return "";
-    }
-
-    @Override
-    public String getScheme() {
-      return "";
-    }
-
-    @Override
-    public String getServerName() {
-      return "";
-    }
-
-    @Override
-    public int getServerPort() {
-      return 0;
-    }
-
-    @Override
-    public BufferedReader getReader() throws IOException {
-      return null;
-    }
-
-    @Override
-    public String getRemoteAddr() {
-      return "";
-    }
-
-    @Override
-    public String getRemoteHost() {
-      return "";
-    }
-
-    @Override
-    public void setAttribute(String name, Object o) {}
-
-    @Override
-    public void removeAttribute(String name) {}
-
-    @Override
-    public Locale getLocale() {
-      return null;
-    }
-
-    @Override
-    public Enumeration<Locale> getLocales() {
-      return null;
-    }
-
-    @Override
-    public boolean isSecure() {
-      return false;
-    }
-
-    @Override
-    public RequestDispatcher getRequestDispatcher(String path) {
-      return null;
-    }
-
-    @Override
-    public String getRealPath(String path) {
-      return "";
-    }
-
-    @Override
-    public int getRemotePort() {
-      return 0;
-    }
-
-    @Override
-    public String getLocalName() {
-      return "";
-    }
-
-    @Override
-    public String getLocalAddr() {
-      return "";
-    }
-
-    @Override
-    public int getLocalPort() {
-      return 0;
-    }
-
-    @Override
-    public ServletContext getServletContext() {
-      return null;
-    }
-
-    @Override
-    public AsyncContext startAsync() throws IllegalStateException {
-      return null;
-    }
-
-    @Override
-    public AsyncContext startAsync(ServletRequest servletRequest, 
ServletResponse servletResponse)
-        throws IllegalStateException {
-      return null;
-    }
-
-    @Override
-    public boolean isAsyncStarted() {
-      return false;
-    }
-
-    @Override
-    public boolean isAsyncSupported() {
-      return false;
-    }
-
-    @Override
-    public AsyncContext getAsyncContext() {
-      return null;
-    }
-
-    @Override
-    public DispatcherType getDispatcherType() {
-      return null;
-    }
+  private static HttpServletRequest newRequest(String type, String ctx) {
+    HttpServletRequest req = Mockito.mock(HttpServletRequest.class);
+    Mockito.when(req.getHeader(SOLR_REQUEST_TYPE_PARAM)).thenReturn(type);
+    Mockito.when(req.getHeader(SOLR_REQUEST_CONTEXT_PARAM)).thenReturn(ctx);
+    return req;
   }
 
+  private static final HttpServletRequest QUERY_REQ = newRequest("QUERY", 
null);
+  private static final HttpServletRequest UPDATE_REQ = newRequest("UPDATE", 
null);
+
   @Nightly
   public void testSlotBorrowing() throws Exception {
     try (CloudSolrClient client =
diff --git a/solr/cross-dc-manager/gradle.lockfile 
b/solr/cross-dc-manager/gradle.lockfile
index 89f6c3c7584..c5725676656 100644
--- a/solr/cross-dc-manager/gradle.lockfile
+++ b/solr/cross-dc-manager/gradle.lockfile
@@ -161,7 +161,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,solrPlatformLibs,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/licenses/jetty-jakarta-servlet-api-5.0.2.jar.sha1 
b/solr/licenses/jetty-jakarta-servlet-api-5.0.2.jar.sha1
deleted file mode 100644
index 24ce91c7556..00000000000
--- a/solr/licenses/jetty-jakarta-servlet-api-5.0.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-027fce6d666a203526236d33d00e202a4136230f
diff --git a/solr/modules/analysis-extras/gradle.lockfile 
b/solr/modules/analysis-extras/gradle.lockfile
index 0755383e6c4..3e404fed263 100644
--- a/solr/modules/analysis-extras/gradle.lockfile
+++ b/solr/modules/analysis-extras/gradle.lockfile
@@ -72,7 +72,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,r
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -136,7 +136,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/clustering/gradle.lockfile 
b/solr/modules/clustering/gradle.lockfile
index 3956d4fc49a..7f1c903c5f0 100644
--- a/solr/modules/clustering/gradle.lockfile
+++ b/solr/modules/clustering/gradle.lockfile
@@ -70,7 +70,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -124,7 +124,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/cross-dc/gradle.lockfile 
b/solr/modules/cross-dc/gradle.lockfile
index 691dd1cb522..88655f6183f 100644
--- a/solr/modules/cross-dc/gradle.lockfile
+++ b/solr/modules/cross-dc/gradle.lockfile
@@ -71,7 +71,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,r
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -127,7 +127,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/cuvs/gradle.lockfile 
b/solr/modules/cuvs/gradle.lockfile
index 54a1741381c..984f1ff276b 100644
--- a/solr/modules/cuvs/gradle.lockfile
+++ b/solr/modules/cuvs/gradle.lockfile
@@ -72,7 +72,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -125,7 +125,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/extraction/gradle.lockfile 
b/solr/modules/extraction/gradle.lockfile
index 0ff229b9282..a8c49ad423c 100644
--- a/solr/modules/extraction/gradle.lockfile
+++ b/solr/modules/extraction/gradle.lockfile
@@ -73,7 +73,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -129,7 +129,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/gcs-repository/gradle.lockfile 
b/solr/modules/gcs-repository/gradle.lockfile
index 5c9b3c36d4b..5b039ec1577 100644
--- a/solr/modules/gcs-repository/gradle.lockfile
+++ b/solr/modules/gcs-repository/gradle.lockfile
@@ -121,7 +121,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,r
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
@@ -176,7 +176,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/jwt-auth/build.gradle 
b/solr/modules/jwt-auth/build.gradle
index 8cb1d237bc0..7cc4afb007e 100644
--- a/solr/modules/jwt-auth/build.gradle
+++ b/solr/modules/jwt-auth/build.gradle
@@ -38,9 +38,9 @@ dependencies {
 
   implementation libs.eclipse.jetty.client
   implementation libs.eclipse.jetty.http
-  implementation libs.eclipse.jetty.toolchain.servletapi
   implementation libs.google.guava
   implementation libs.slf4j.api
+  implementation libs.jakarta.servlet.api
 
   testImplementation project(':solr:test-framework')
   testImplementation libs.apache.lucene.testframework
diff --git a/solr/modules/jwt-auth/gradle.lockfile 
b/solr/modules/jwt-auth/gradle.lockfile
index 53ce9aa43ca..1cb162af3de 100644
--- a/solr/modules/jwt-auth/gradle.lockfile
+++ b/solr/modules/jwt-auth/gradle.lockfile
@@ -84,7 +84,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -148,7 +148,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/langid/gradle.lockfile 
b/solr/modules/langid/gradle.lockfile
index bef5adb997e..f0f9e63cbe9 100644
--- a/solr/modules/langid/gradle.lockfile
+++ b/solr/modules/langid/gradle.lockfile
@@ -71,7 +71,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -126,7 +126,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile
index febb1155d26..9e0f104cb20 100644
--- a/solr/modules/llm/gradle.lockfile
+++ b/solr/modules/llm/gradle.lockfile
@@ -85,7 +85,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -138,7 +138,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile
index 44debb42806..c3ae6edc2b3 100644
--- a/solr/modules/ltr/gradle.lockfile
+++ b/solr/modules/ltr/gradle.lockfile
@@ -70,7 +70,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -124,7 +124,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/opentelemetry/gradle.lockfile 
b/solr/modules/opentelemetry/gradle.lockfile
index f794d05b31c..e2134951102 100644
--- a/solr/modules/opentelemetry/gradle.lockfile
+++ b/solr/modules/opentelemetry/gradle.lockfile
@@ -102,7 +102,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -156,7 +156,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/s3-repository/gradle.lockfile 
b/solr/modules/s3-repository/gradle.lockfile
index 3d1b670cedc..0e5a2d0e222 100644
--- a/solr/modules/s3-repository/gradle.lockfile
+++ b/solr/modules/s3-repository/gradle.lockfile
@@ -91,7 +91,7 @@ 
jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1=jarValidation,testCompileCla
 
jakarta.enterprise:jakarta.enterprise.lang-model:4.0.1=jarValidation,testCompileClasspath,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.interceptor:jakarta.interceptor-api:2.1.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.transaction:jakarta.transaction-api:2.0.1=jarValidation,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.websocket:jakarta.websocket-api:2.1.1=jarValidation,testCompileClasspath,testRuntimeClasspath
@@ -161,7 +161,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty.websocket:jetty-websocket-core-client:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.websocket:jetty-websocket-core-common:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.websocket:jetty-websocket-core-server:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/scripting/gradle.lockfile 
b/solr/modules/scripting/gradle.lockfile
index 5c53df53d4f..aee3663cffc 100644
--- a/solr/modules/scripting/gradle.lockfile
+++ b/solr/modules/scripting/gradle.lockfile
@@ -70,7 +70,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -123,7 +123,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile
index 890237bbc88..e4e28c6495f 100644
--- a/solr/modules/sql/gradle.lockfile
+++ b/solr/modules/sql/gradle.lockfile
@@ -73,7 +73,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -147,7 +147,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/server/build.gradle b/solr/server/build.gradle
index 5c4025543a8..132f92ec0f8 100644
--- a/solr/server/build.gradle
+++ b/solr/server/build.gradle
@@ -60,8 +60,7 @@ dependencies {
   serverLib libs.eclipse.jetty.http2.server
   serverLib libs.eclipse.jetty.http2.common
   serverLib libs.eclipse.jetty.http2.hpack
-
-  serverLib libs.eclipse.jetty.toolchain.servletapi
+  serverLib libs.jakarta.servlet.api
 
   libExt libs.lmax.disruptor
   libExt libs.slf4j.jcloverslf4j
diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile
index 64790086950..beebf53ddef 100644
--- a/solr/server/gradle.lockfile
+++ b/solr/server/gradle.lockfile
@@ -66,7 +66,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,solrCore
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=jarValidation,runtimeClasspath,solrCore
 
jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,runtimeClasspath,solrCore
 jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,runtimeClasspath,solrCore
-jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,serverLib
+jakarta.servlet:jakarta.servlet-api:6.0.0=jarValidation,runtimeClasspath,serverLib,solrCore
 
jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,runtimeClasspath,solrCore
 jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,solrCore
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -114,7 +114,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspat
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,serverLib,solrCore
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,serverLib,solrCore
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,runtimeClasspath,serverLib
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,runtimeClasspath,serverLib,solrCore
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,solrCore
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,solrCore
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,runtimeClasspath,serverLib
diff --git a/solr/solr-ref-guide/gradle.lockfile 
b/solr/solr-ref-guide/gradle.lockfile
index 4d08f6c81a0..872894e8834 100644
--- a/solr/solr-ref-guide/gradle.lockfile
+++ b/solr/solr-ref-guide/gradle.lockfile
@@ -120,7 +120,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=testCompileClasspath,testRunt
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=testCompileClasspath,testRuntimeClasspath
 org.eclipse.jetty.http2:jetty-http2-server:12.0.27=testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=testCompileClasspath,testRuntimeClasspath
 org.eclipse.jetty:jetty-alpn-java-client:12.0.27=testRuntimeClasspath
 org.eclipse.jetty:jetty-alpn-java-server:12.0.27=testRuntimeClasspath
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 9fb7c15b653..c283d0c03b6 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
@@ -196,9 +196,10 @@ 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.
 
-=== Upgrade to Jetty 12.x
+=== 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/.
+This migration marks the point at which Solr no longer includes _any_ JAR with 
"javax" in it -- the Jakarta migration is complete.
 
 === OpenTelemetry
 
diff --git a/solr/solrj-streaming/gradle.lockfile 
b/solr/solrj-streaming/gradle.lockfile
index c304adabf04..443095a4cdc 100644
--- a/solr/solrj-streaming/gradle.lockfile
+++ b/solr/solrj-streaming/gradle.lockfile
@@ -142,7 +142,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,permitTestUsedUndeclared,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj-zookeeper/gradle.lockfile 
b/solr/solrj-zookeeper/gradle.lockfile
index 82db56eafe3..97ba198f165 100644
--- a/solr/solrj-zookeeper/gradle.lockfile
+++ b/solr/solrj-zookeeper/gradle.lockfile
@@ -136,7 +136,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidatio
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,permitTestUsedUndeclared,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile
index 876ad1344d1..996f16b3edc 100644
--- a/solr/solrj/gradle.lockfile
+++ b/solr/solrj/gradle.lockfile
@@ -140,7 +140,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=jarValidation,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/BasicHttpSolrClientTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/BasicHttpSolrClientTest.java
index 676c91e0bda..601c2442c10 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/BasicHttpSolrClientTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/BasicHttpSolrClientTest.java
@@ -110,6 +110,7 @@ public class BasicHttpSolrClientTest extends 
SolrJettyTestBase {
     public static final int PACKET_MS = 500;
 
     @Override
+    @SuppressForbidden(reason = "don't forbid in tests")
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws IOException {
       String countStr = req.getParameter("count");
       IntStream.range(0, countStr == null ? 10 : Integer.parseInt(countStr))
diff --git a/solr/test-framework/gradle.lockfile 
b/solr/test-framework/gradle.lockfile
index 450ac982fe6..9a2211b4c56 100644
--- a/solr/test-framework/gradle.lockfile
+++ b/solr/test-framework/gradle.lockfile
@@ -122,7 +122,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,ja
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty.http2:jetty-http2-server:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,runtimeClasspath,testRuntimeClasspath
diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile
index a1ee4d70349..5f98e420353 100644
--- a/solr/webapp/gradle.lockfile
+++ b/solr/webapp/gradle.lockfile
@@ -66,7 +66,7 @@ 
io.sgr:s2-geometry-library-java:1.0.0=permitUnusedDeclared,solrCore
 
io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=permitUnusedDeclared,solrCore
 jakarta.annotation:jakarta.annotation-api:2.1.1=permitUnusedDeclared,solrCore
 jakarta.inject:jakarta.inject-api:2.0.1=permitUnusedDeclared,solrCore
-jakarta.servlet:jakarta.servlet-api:6.0.0=serverLib
+jakarta.servlet:jakarta.servlet-api:6.0.0=permitUnusedDeclared,serverLib,solrCore
 jakarta.validation:jakarta.validation-api:3.0.2=permitUnusedDeclared,solrCore
 jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=permitUnusedDeclared,solrCore
 
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
@@ -114,7 +114,6 @@ 
org.eclipse.jetty.http2:jetty-http2-client:12.0.27=permitUnusedDeclared,solrCore
 
org.eclipse.jetty.http2:jetty-http2-common:12.0.27=permitUnusedDeclared,serverLib,solrCore
 
org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=permitUnusedDeclared,serverLib,solrCore
 org.eclipse.jetty.http2:jetty-http2-server:12.0.27=serverLib
-org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=permitUnusedDeclared,serverLib,solrCore
 org.eclipse.jetty:jetty-alpn-client:12.0.27=permitUnusedDeclared,solrCore
 org.eclipse.jetty:jetty-alpn-java-client:12.0.27=permitUnusedDeclared,solrCore
 org.eclipse.jetty:jetty-alpn-java-server:12.0.27=serverLib

Reply via email to