You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ge...@apache.org on 2024/01/25 19:57:35 UTC

(solr) branch branch_9_5 updated: SOLR-17089: Upgrade Jersey to 3.1.5 (#2178)

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

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


The following commit(s) were added to refs/heads/branch_9_5 by this push:
     new b0f5565e4c5 SOLR-17089: Upgrade Jersey to 3.1.5 (#2178)
b0f5565e4c5 is described below

commit b0f5565e4c520412b7bc3ce8749ae98a0338aa67
Author: Jason Gerlowski <ge...@apache.org>
AuthorDate: Mon Jan 22 09:30:42 2024 -0500

    SOLR-17089: Upgrade Jersey to 3.1.5 (#2178)
    
    Brings in a number of bug fixes and improvements, as well as fixing some
    irritating stacktraces that Jersey 2.x was logging in certain startup
    scenarios.
---
 solr/CHANGES.txt                                   |   2 +
 solr/api/build.gradle                              |   7 +-
 .../client/api/endpoint/AddReplicaPropertyApi.java |   6 +-
 .../client/api/endpoint/AliasPropertyApis.java     |  10 +-
 .../client/api/endpoint/BalanceReplicasApi.java    |   4 +-
 .../client/api/endpoint/BalanceShardUniqueApi.java |   6 +-
 .../client/api/endpoint/CollectionPropertyApi.java |   8 +-
 .../solr/client/api/endpoint/CoreSnapshotApi.java  |  12 +-
 .../client/api/endpoint/CreateCollectionApi.java   |   4 +-
 .../api/endpoint/CreateCollectionBackupApi.java    |   6 +-
 .../api/endpoint/CreateCollectionSnapshotApi.java  |   6 +-
 .../client/api/endpoint/CreateCoreBackupApi.java   |   6 +-
 .../solr/client/api/endpoint/CreateReplicaApi.java |   6 +-
 .../solr/client/api/endpoint/CreateShardApi.java   |   6 +-
 .../solr/client/api/endpoint/DeleteAliasApi.java   |   8 +-
 .../client/api/endpoint/DeleteCollectionApi.java   |   8 +-
 .../api/endpoint/DeleteCollectionBackupApi.java    |  10 +-
 .../api/endpoint/DeleteCollectionSnapshotApi.java  |  10 +-
 .../solr/client/api/endpoint/DeleteNodeApi.java    |   6 +-
 .../solr/client/api/endpoint/DeleteReplicaApi.java |  10 +-
 .../api/endpoint/DeleteReplicaPropertyApi.java     |   6 +-
 .../solr/client/api/endpoint/DeleteShardApi.java   |   8 +-
 .../solr/client/api/endpoint/ForceLeaderApi.java   |   6 +-
 .../api/endpoint/GetNodeCommandStatusApi.java      |   6 +-
 .../solr/client/api/endpoint/GetPublicKeyApi.java  |   4 +-
 .../solr/client/api/endpoint/GetSchemaApi.java     |   8 +-
 .../client/api/endpoint/InstallCoreDataApi.java    |   6 +-
 .../client/api/endpoint/InstallShardDataApi.java   |   6 +-
 .../solr/client/api/endpoint/ListAliasesApi.java   |   6 +-
 .../api/endpoint/ListCollectionBackupsApi.java     |   8 +-
 .../client/api/endpoint/ListCollectionsApi.java    |   4 +-
 .../client/api/endpoint/ListConfigsetsApi.java     |   4 +-
 .../solr/client/api/endpoint/MergeIndexesApi.java  |   6 +-
 .../client/api/endpoint/MigrateReplicasApi.java    |   4 +-
 .../client/api/endpoint/ReloadCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/ReloadCoreApi.java    |   6 +-
 .../client/api/endpoint/RenameCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/RenameCoreApi.java    |   6 +-
 .../solr/client/api/endpoint/ReplaceNodeApi.java   |   6 +-
 .../solr/client/api/endpoint/RestoreCoreApi.java   |   6 +-
 .../apache/solr/client/api/endpoint/SelectApi.java |   8 +-
 .../solr/client/api/endpoint/SwapCoresApi.java     |   6 +-
 .../solr/client/api/endpoint/SyncShardApi.java     |   6 +-
 .../solr/client/api/endpoint/UnloadCoreApi.java    |   6 +-
 solr/core/build.gradle                             |  14 +-
 .../java/org/apache/solr/api/JerseyResource.java   |   4 +-
 .../java/org/apache/solr/core/CoreContainer.java   |   2 +-
 .../solr/handler/admin/ZookeeperReadAPI.java       |  14 +-
 .../solr/handler/admin/api/AddReplicaProperty.java |   2 +-
 .../solr/handler/admin/api/AliasProperty.java      |   2 +-
 .../solr/handler/admin/api/BalanceReplicas.java    |   2 +-
 .../solr/handler/admin/api/BalanceShardUnique.java |   2 +-
 .../solr/handler/admin/api/CoreReplicationAPI.java |  12 +-
 .../solr/handler/admin/api/CoreSnapshot.java       |   2 +-
 .../solr/handler/admin/api/CreateAliasAPI.java     |  10 +-
 .../solr/handler/admin/api/CreateCollection.java   |   2 +-
 .../handler/admin/api/CreateCollectionBackup.java  |   2 +-
 .../admin/api/CreateCollectionSnapshot.java        |   2 +-
 .../solr/handler/admin/api/CreateCoreBackup.java   |   2 +-
 .../solr/handler/admin/api/CreateReplica.java      |   2 +-
 .../apache/solr/handler/admin/api/CreateShard.java |   2 +-
 .../apache/solr/handler/admin/api/DeleteAlias.java |   2 +-
 .../solr/handler/admin/api/DeleteCollection.java   |   2 +-
 .../handler/admin/api/DeleteCollectionBackup.java  |   2 +-
 .../admin/api/DeleteCollectionSnapshot.java        |   2 +-
 .../apache/solr/handler/admin/api/DeleteNode.java  |   2 +-
 .../solr/handler/admin/api/DeleteReplica.java      |   2 +-
 .../handler/admin/api/DeleteReplicaProperty.java   |   2 +-
 .../apache/solr/handler/admin/api/DeleteShard.java |   2 +-
 .../apache/solr/handler/admin/api/ForceLeader.java |   2 +-
 .../handler/admin/api/GetNodeCommandStatus.java    |   2 +-
 .../apache/solr/handler/admin/api/GetSchema.java   |   2 +-
 .../solr/handler/admin/api/GetSchemaFieldAPI.java  |  12 +-
 .../solr/handler/admin/api/InstallShardData.java   |   2 +-
 .../apache/solr/handler/admin/api/ListAliases.java |   2 +-
 .../handler/admin/api/ListCollectionBackups.java   |   2 +-
 .../admin/api/ListCollectionSnapshotsAPI.java      |  10 +-
 .../solr/handler/admin/api/ListCollections.java    |   2 +-
 .../solr/handler/admin/api/MergeIndexes.java       |   2 +-
 .../solr/handler/admin/api/MigrateReplicas.java    |   2 +-
 .../solr/handler/admin/api/NodeLoggingAPI.java     |  12 +-
 .../handler/admin/api/ReloadCollectionAPI.java     |   2 +-
 .../apache/solr/handler/admin/api/ReloadCore.java  |   2 +-
 .../solr/handler/admin/api/RenameCollection.java   |   2 +-
 .../apache/solr/handler/admin/api/RenameCore.java  |   2 +-
 .../apache/solr/handler/admin/api/ReplaceNode.java |   2 +-
 .../handler/admin/api/RestoreCollectionAPI.java    |  10 +-
 .../apache/solr/handler/admin/api/RestoreCore.java |   2 +-
 .../solr/handler/admin/api/SnapshotBackupAPI.java  |  10 +-
 .../apache/solr/handler/admin/api/SwapCores.java   |   2 +-
 .../apache/solr/handler/admin/api/SyncShard.java   |   2 +-
 .../apache/solr/handler/admin/api/UnloadCore.java  |   2 +-
 .../solr/handler/admin/api/V2NodeLoggingAPI.java   |  10 +-
 .../solr/handler/configsets/ListConfigSets.java    |   6 +-
 .../solr/jersey/APIConfigProviderBinder.java       |   2 +-
 .../solr/jersey/CatchAllExceptionMapper.java       |  14 +-
 .../org/apache/solr/jersey/InjectionFactories.java |   4 +-
 .../solr/jersey/MediaTypeOverridingFilter.java     |  15 +-
 .../org/apache/solr/jersey/MessageBodyReaders.java |  19 +-
 .../org/apache/solr/jersey/MessageBodyWriters.java |  16 +-
 .../solr/jersey/NotFoundExceptionMapper.java       |  12 +-
 .../solr/jersey/PostRequestDecorationFilter.java   |   8 +-
 .../solr/jersey/PostRequestLoggingFilter.java      |  16 +-
 .../org/apache/solr/jersey/RequestContextKeys.java |   4 +-
 .../apache/solr/jersey/RequestMetricHandling.java  |  12 +-
 .../org/apache/solr/jersey/SolrJacksonMapper.java  |   4 +-
 .../apache/solr/jersey/SolrRequestAuthorizer.java  |  12 +-
 .../jersey/container/ContainerRequestUtils.java    |   4 +-
 .../container/JettyBridgeResponseWriter.java       |   2 +-
 .../org/apache/solr/security/GetPublicKey.java     |   2 +-
 .../org/apache/solr/api/JerseyResourceTest.java    |   2 +-
 .../solr/handler/admin/api/NodeLoggingAPITest.java |  69 ++---
 .../handler/admin/api/SnapshotBackupAPITest.java   |  97 +++-----
 .../handler/configsets/ListConfigSetsAPITest.java  |  77 +-----
 .../solr/jersey/PostRequestLoggingFilterTest.java  |   6 +-
 .../licenses/aopalliance-repackaged-2.6.1.jar.sha1 |   1 -
 .../licenses/aopalliance-repackaged-3.0.5.jar.sha1 |   1 +
 solr/licenses/bcutil-jdk18on-NOTICE.txt            |   2 -
 solr/licenses/grizzly-framework-2.4.4.jar.sha1     |   1 -
 solr/licenses/grizzly-framework-LICENSE-EPL.txt    | 277 ---------------------
 solr/licenses/grizzly-http-2.4.4.jar.sha1          |   1 -
 solr/licenses/grizzly-http-LICENSE-EPL.txt         | 277 ---------------------
 solr/licenses/grizzly-http-server-2.4.4.jar.sha1   |   1 -
 solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1  |   1 -
 solr/licenses/hk2-api-2.6.1.jar.sha1               |   1 -
 solr/licenses/hk2-api-3.0.5.jar.sha1               |   1 +
 solr/licenses/hk2-locator-2.6.1.jar.sha1           |   1 -
 solr/licenses/hk2-locator-3.0.5.jar.sha1           |   1 +
 solr/licenses/hk2-utils-2.6.1.jar.sha1             |   1 -
 solr/licenses/hk2-utils-3.0.5.jar.sha1             |   1 +
 ...ule-jakarta-xmlbind-annotations-2.16.1.jar.sha1 |   1 +
 ...jackson-module-jaxb-annotations-2.16.1.jar.sha1 |   1 -
 .../licenses/jakarta.annotation-api-1.3.5.jar.sha1 |   1 -
 .../licenses/jakarta.annotation-api-2.1.1.jar.sha1 |   1 +
 solr/licenses/jakarta.inject-api-2.0.1.jar.sha1    |   1 +
 .../licenses/jakarta.validation-api-2.0.2.jar.sha1 |   1 -
 .../licenses/jakarta.validation-api-3.0.2.jar.sha1 |   1 +
 solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1     |   1 -
 solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1     |   1 +
 solr/licenses/javassist-3.29.0-GA.jar.sha1         |   1 -
 solr/licenses/javassist-3.29.2-GA.jar.sha1         |   1 +
 solr/licenses/jersey-client-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-client-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-common-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-common-3.1.5.jar.sha1         |   1 +
 .../jersey-container-grizzly2-http-2.39.1.jar.sha1 |   1 -
 ...rsey-container-grizzly2-servlet-2.39.1.jar.sha1 |   1 -
 .../jersey-container-servlet-2.39.1.jar.sha1       |   1 -
 .../jersey-container-servlet-core-2.39.1.jar.sha1  |   1 -
 .../jersey-entity-filtering-2.39.1.jar.sha1        |   1 -
 .../jersey-entity-filtering-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-hk2-2.39.1.jar.sha1           |   1 -
 solr/licenses/jersey-hk2-3.1.5.jar.sha1            |   1 +
 solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1    |   1 -
 .../jersey-media-json-jackson-2.39.1.jar.sha1      |   1 -
 .../jersey-media-json-jackson-3.1.5.jar.sha1       |   1 +
 solr/licenses/jersey-server-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-server-3.1.5.jar.sha1         |   1 +
 .../jersey-test-framework-core-2.39.1.jar.sha1     |   1 -
 ...est-framework-provider-grizzly2-2.39.1.jar.sha1 |   1 -
 solr/licenses/junit-jupiter-5.9.1.jar.sha1         |   1 -
 solr/licenses/junit-jupiter-api-5.9.1.jar.sha1     |   1 -
 solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1  |   1 -
 solr/licenses/junit-jupiter-params-5.9.1.jar.sha1  |   1 -
 .../licenses/junit-platform-commons-1.9.1.jar.sha1 |   1 -
 solr/licenses/junit-platform-engine-1.9.1.jar.sha1 |   1 -
 solr/licenses/opentest4j-1.2.0.jar.sha1            |   1 -
 solr/licenses/opentest4j-LICENSE-ASL.txt           | 201 ---------------
 solr/licenses/opentest4j-NOTICE.txt                |  13 -
 solr/licenses/swagger-annotations-2.2.17.jar.sha1  |   1 -
 .../swagger-annotations-jakarta-2.2.17.jar.sha1    |   1 +
 versions.lock                                      |  69 ++---
 versions.props                                     |   8 +-
 173 files changed, 425 insertions(+), 1355 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 0c2813d973c..91e44d729ef 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -152,6 +152,8 @@ Dependency Upgrades
 
 * SOLR-17026: Upgrade to Gradle 8.4 (Kevin Risden)
 
+* SOLR-17089: Upgrade Jersey to 3.1.5 (Jason Gerlowski)
+
 Other Changes
 ---------------------
 * SOLR-17024: Remove support for the long-defunct "collectionDefaults" clusterprops key (Jason Gerlowski)
diff --git a/solr/api/build.gradle b/solr/api/build.gradle
index bbcf66170e1..1f8118116c6 100644
--- a/solr/api/build.gradle
+++ b/solr/api/build.gradle
@@ -44,10 +44,13 @@ configurations {
         canBeConsumed = true
         canBeResolved = false
     }
+
+    swaggerBuild.extendsFrom implementation
 }
 
 resolve {
   classpath = sourceSets.main.runtimeClasspath
+  buildClasspath = sourceSets.main.runtimeClasspath.plus(configurations.getByName("swaggerBuild"))
   resourcePackages = ["org.apache.solr.client.api.util", "org.apache.solr.client.api.endpoint"]
   outputDir = file(project.openApiSpecDir)
   outputFileName = "solr-openapi-${version}"
@@ -59,12 +62,14 @@ dependencies {
     
     implementation 'jakarta.ws.rs:jakarta.ws.rs-api'
     implementation 'com.fasterxml.jackson.core:jackson-annotations'
-    api 'io.swagger.core.v3:swagger-annotations'
+    api 'io.swagger.core.v3:swagger-annotations-jakarta'
     implementation 'org.semver4j:semver4j'
 
     testImplementation project(':solr:test-framework')
     testImplementation project(':solr:api')
     testImplementation 'org.apache.lucene:lucene-test-framework'
+
+    swaggerBuild 'io.swagger.core.v3:swagger-jaxrs2-jakarta'
 }
 
 // Non-Java client generation tasks below:
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/AddReplicaPropertyApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/AddReplicaPropertyApi.java
index 8dce6a28e54..8e4d53e521a 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/AddReplicaPropertyApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/AddReplicaPropertyApi.java
@@ -20,9 +20,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.AddReplicaPropertyRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/AliasPropertyApis.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/AliasPropertyApis.java
index 7bc167a2b36..2c1f2ae8267 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/AliasPropertyApis.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/AliasPropertyApis.java
@@ -19,11 +19,11 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.GetAliasPropertyResponse;
 import org.apache.solr.client.api.model.GetAllAliasPropertiesResponse;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceReplicasApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceReplicasApi.java
index d05719efea8..9cbfa5bf3a8 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceReplicasApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceReplicasApi.java
@@ -18,8 +18,8 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.BalanceReplicasRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceShardUniqueApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceShardUniqueApi.java
index 5c10d957640..3c5493e9438 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceShardUniqueApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/BalanceShardUniqueApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.BalanceShardUniqueRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java
index ed26ea443cc..8c69aa3ce4c 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java
@@ -17,10 +17,10 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.UpdateCollectionPropertyRequestBody;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java
index 8d19211da16..e36e1e3c597 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java
@@ -18,12 +18,12 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.CreateCoreSnapshotResponse;
 import org.apache.solr.client.api.model.DeleteSnapshotResponse;
 import org.apache.solr.client.api.model.ListCoreSnapshotsResponse;
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java
index 748b27972e6..022242288c4 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java
@@ -17,8 +17,8 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.CreateCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionBackupApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionBackupApi.java
index 802b8df7db0..3e08bad6d45 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionBackupApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionBackupApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.CreateCollectionBackupRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionSnapshotApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionSnapshotApi.java
index 80440ee92c0..70240a02e65 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionSnapshotApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionSnapshotApi.java
@@ -19,9 +19,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.CreateCollectionSnapshotRequestBody;
 import org.apache.solr.client.api.model.CreateCollectionSnapshotResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCoreBackupApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCoreBackupApi.java
index 113ffb722ca..4c1112e78c0 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCoreBackupApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCoreBackupApi.java
@@ -19,9 +19,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.CreateCoreBackupRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java
index 21c26ea8f49..115d8b54088 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.CreateReplicaRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java
index 0bd30763811..ead155ea1c4 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.CreateShardRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteAliasApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteAliasApi.java
index 05d32068683..badaea3c117 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteAliasApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteAliasApi.java
@@ -19,10 +19,10 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
 @Path("/aliases/{aliasName}")
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionApi.java
index 8cf0010066e..114f3567849 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionApi.java
@@ -19,10 +19,10 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
 @Path("/collections/{collectionName}")
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionBackupApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionBackupApi.java
index e53f8ea96d7..650e462458a 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionBackupApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionBackupApi.java
@@ -23,11 +23,11 @@ import static org.apache.solr.client.api.model.Constants.BACKUP_REPOSITORY;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.BackupDeletionResponseBody;
 import org.apache.solr.client.api.model.PurgeUnusedFilesRequestBody;
 import org.apache.solr.client.api.model.PurgeUnusedResponse;
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionSnapshotApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionSnapshotApi.java
index c00ed95da8d..8fed7eb4ff9 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionSnapshotApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteCollectionSnapshotApi.java
@@ -19,11 +19,11 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.DeleteCollectionSnapshotResponse;
 
 @Path("/collections/{collName}/snapshots/{snapshotName}")
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteNodeApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteNodeApi.java
index 0495d298cb9..64b5978afd2 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteNodeApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteNodeApi.java
@@ -20,9 +20,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.DeleteNodeRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaApi.java
index f17abdfab26..928b0f6e19d 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaApi.java
@@ -26,11 +26,11 @@ import static org.apache.solr.client.api.model.Constants.FOLLOW_ALIASES;
 import static org.apache.solr.client.api.model.Constants.ONLY_IF_DOWN;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.ScaleCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaPropertyApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaPropertyApi.java
index 8e8f52fd33a..327ffefccd6 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaPropertyApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteReplicaPropertyApi.java
@@ -19,9 +19,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
 /**
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteShardApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteShardApi.java
index 935803f7ca7..d626f006743 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteShardApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/DeleteShardApi.java
@@ -19,10 +19,10 @@ package org.apache.solr.client.api.endpoint;
 import static org.apache.solr.client.api.model.Constants.ASYNC;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
 /** V2 API definition for deleting a particular shard from its collection. */
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ForceLeaderApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ForceLeaderApi.java
index 2a0336a2d3d..4e748f2afc8 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ForceLeaderApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ForceLeaderApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
 /** V2 API definition for triggering a leader election on a particular collection and shard. */
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetNodeCommandStatusApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetNodeCommandStatusApi.java
index 76b95556e6d..a2b5bcc5986 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetNodeCommandStatusApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetNodeCommandStatusApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.GetNodeCommandStatusResponse;
 
 /**
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetPublicKeyApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetPublicKeyApi.java
index 562a2945d9e..ef59999e1ca 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetPublicKeyApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetPublicKeyApi.java
@@ -17,8 +17,8 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.PublicKeyResponse;
 
 /** V2 API definition to fetch the public key of the receiving node. */
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetSchemaApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetSchemaApi.java
index d745ba59a05..8cec1d02f7a 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/GetSchemaApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/GetSchemaApi.java
@@ -19,10 +19,10 @@ package org.apache.solr.client.api.endpoint;
 import static org.apache.solr.client.api.util.Constants.INDEX_PATH_PREFIX;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.SchemaInfoResponse;
 import org.apache.solr.client.api.model.SchemaNameResponse;
 import org.apache.solr.client.api.model.SchemaSimilarityResponse;
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java
index 4ee95539571..36a30cdc373 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.InstallCoreDataRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java
index 65648ad9117..f38c2bd00ee 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.InstallShardDataRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListAliasesApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListAliasesApi.java
index 3f786b9d5e7..c0b9f393ced 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListAliasesApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListAliasesApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.GetAliasByNameResponse;
 import org.apache.solr.client.api.model.ListAliasesResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionBackupsApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionBackupsApi.java
index 59657085b95..1682dec75e1 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionBackupsApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionBackupsApi.java
@@ -20,11 +20,11 @@ import static org.apache.solr.client.api.model.Constants.BACKUP_LOCATION;
 import static org.apache.solr.client.api.model.Constants.BACKUP_REPOSITORY;
 
 import io.swagger.v3.oas.annotations.Operation;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.QueryParam;
 import java.io.IOException;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.ListCollectionBackupsResponse;
 
 /** V2 API definitions for collection-backup "listing". */
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionsApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionsApi.java
index bb8baa210f3..2f20f4b4366 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionsApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListCollectionsApi.java
@@ -17,8 +17,8 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.ListCollectionsResponse;
 
 @Path("/collections")
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListConfigsetsApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListConfigsetsApi.java
index b00a47cac19..7e0cf620b7f 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ListConfigsetsApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ListConfigsetsApi.java
@@ -17,8 +17,8 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.ListConfigsetsResponse;
 
 /** V2 API definition for listing configsets. */
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/MergeIndexesApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/MergeIndexesApi.java
index dbc913395de..a9110426d1c 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/MergeIndexesApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/MergeIndexesApi.java
@@ -19,9 +19,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.MergeIndexesRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java
index 82e8110b697..566be87b76b 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java
@@ -18,8 +18,8 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
 import org.apache.solr.client.api.model.MigrateReplicasRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCollectionApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCollectionApi.java
index 2bf85b90626..093ee44f225 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCollectionApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCollectionApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.ReloadCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java
index 8a7cced7aa1..4e1c356ff35 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java
@@ -20,9 +20,9 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.ReloadCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCollectionApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCollectionApi.java
index 6eee0d431f2..ca3206c64fa 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCollectionApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCollectionApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.RenameCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCoreApi.java
index 115505fd894..844ad7d5215 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCoreApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/RenameCoreApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.RenameCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReplaceNodeApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReplaceNodeApi.java
index 56762fa524d..cee4032a196 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReplaceNodeApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReplaceNodeApi.java
@@ -19,9 +19,9 @@ package org.apache.solr.client.api.endpoint;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.ReplaceNodeRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java
index 3f2264a6562..c65207cdd70 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.RestoreCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/SelectApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/SelectApi.java
index e04aa344c91..30736784758 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/SelectApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/SelectApi.java
@@ -24,12 +24,12 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.extensions.Extension;
 import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.QueryParam;
 import java.io.InputStream;
 import java.util.List;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
 import org.apache.solr.client.api.model.FlexibleSolrJerseyResponse;
 import org.apache.solr.client.api.util.StoreApiParameters;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/SwapCoresApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/SwapCoresApi.java
index 23e8b7f8f14..b8f5387d083 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/SwapCoresApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/SwapCoresApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.SwapCoresRequestBody;
 
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/SyncShardApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/SyncShardApi.java
index 1e9805be65a..10990f2ea67 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/SyncShardApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/SyncShardApi.java
@@ -17,9 +17,9 @@
 package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 
 /**
diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/UnloadCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/UnloadCoreApi.java
index c8239ac3d84..6876d852d9c 100644
--- a/solr/api/src/java/org/apache/solr/client/api/endpoint/UnloadCoreApi.java
+++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/UnloadCoreApi.java
@@ -18,9 +18,9 @@ package org.apache.solr.client.api.endpoint;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.UnloadCoreRequestBody;
 
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index bd50c886234..0102a9793ce 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -31,7 +31,7 @@ dependencies {
     exclude group: "com.github.spotbugs", module: "spotbugs-annotations"
   }
 
-  implementation 'io.swagger.core.v3:swagger-annotations'
+  implementation 'io.swagger.core.v3:swagger-annotations-jakarta'
 
   // Export these dependencies so that they're imported transitively by
   // other modules.
@@ -59,16 +59,19 @@ dependencies {
 
   implementation('org.glassfish.jersey.containers:jersey-container-jetty-http', {
     exclude group: "org.eclipse.jetty", module: "jetty-continuation"
+    exclude group: "org.glassfish.hk2.external", module: "jakarta.inject"
   })
   permitUnusedDeclared 'org.glassfish.jersey.containers:jersey-container-jetty-http'
   implementation 'org.glassfish.jersey.inject:jersey-hk2'
   permitUnusedDeclared 'org.glassfish.jersey.inject:jersey-hk2'
-  implementation 'org.glassfish.jersey.media:jersey-media-json-jackson'
+  implementation ('org.glassfish.jersey.media:jersey-media-json-jackson', {
+    exclude group: "jakarta.xml.bind", module: "jakarta.xml.bind-api"
+  })
   permitUnusedDeclared 'org.glassfish.jersey.media:jersey-media-json-jackson'
   implementation 'org.glassfish.jersey.core:jersey-common'
   implementation 'org.glassfish.jersey.core:jersey-server'
   implementation 'org.glassfish.hk2:hk2-api'
-  implementation 'org.glassfish.hk2.external:jakarta.inject'
+  implementation 'jakarta.inject:jakarta.inject-api'
   implementation 'jakarta.ws.rs:jakarta.ws.rs-api'
   implementation 'jakarta.annotation:jakarta.annotation-api'
 
@@ -183,11 +186,6 @@ dependencies {
   testImplementation 'junit:junit'
   testImplementation 'org.hamcrest:hamcrest'
 
-  testImplementation 'org.glassfish.jersey.test-framework:jersey-test-framework-core'
-  testImplementation 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2'
-  permitTestUnusedDeclared 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2'
-
-
   testImplementation('org.mockito:mockito-core', {
     exclude group: "net.bytebuddy", module: "byte-buddy-agent"
   })
diff --git a/solr/core/src/java/org/apache/solr/api/JerseyResource.java b/solr/core/src/java/org/apache/solr/api/JerseyResource.java
index b7ff482fd1c..5061adee53d 100644
--- a/solr/core/src/java/org/apache/solr/api/JerseyResource.java
+++ b/solr/core/src/java/org/apache/solr/api/JerseyResource.java
@@ -19,9 +19,9 @@ package org.apache.solr.api;
 
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_JERSEY_RESPONSE;
 
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.core.Context;
 import java.util.function.Supplier;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.core.Context;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.jersey.CatchAllExceptionMapper;
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index f1b82fe810a..3d7dff9ed13 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -33,6 +33,7 @@ import com.google.common.annotations.VisibleForTesting;
 import io.opentracing.Tracer;
 import io.opentracing.noop.NoopTracer;
 import io.opentracing.noop.NoopTracerFactory;
+import jakarta.inject.Singleton;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.Path;
@@ -55,7 +56,6 @@ import java.util.concurrent.TimeoutException;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
-import javax.inject.Singleton;
 import org.apache.http.auth.AuthSchemeProvider;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.config.Lookup;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperReadAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperReadAPI.java
index c2f244e93d8..c3e2c4c6a93 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperReadAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperReadAPI.java
@@ -25,17 +25,17 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter;
 import com.fasterxml.jackson.annotation.JsonAnySetter;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.solrj.impl.BinaryResponseParser;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/AddReplicaProperty.java b/solr/core/src/java/org/apache/solr/handler/admin/api/AddReplicaProperty.java
index c3f29f90b00..37f79fb9f87 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/AddReplicaProperty.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/AddReplicaProperty.java
@@ -27,10 +27,10 @@ import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_PREFI
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.AddReplicaPropertyApi;
 import org.apache.solr.client.api.model.AddReplicaPropertyRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java b/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java
index 1184751cb9a..9534bacd595 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java
@@ -23,9 +23,9 @@ import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTIO
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_READ_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.AliasPropertyApis;
 import org.apache.solr.client.api.model.GetAliasPropertyResponse;
 import org.apache.solr.client.api.model.GetAllAliasPropertiesResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceReplicas.java b/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceReplicas.java
index 6e163857296..6063074a235 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceReplicas.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceReplicas.java
@@ -23,9 +23,9 @@ import static org.apache.solr.common.params.CommonAdminParams.WAIT_FOR_FINAL_STA
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.BalanceReplicasApi;
 import org.apache.solr.client.api.model.BalanceReplicasRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceShardUnique.java b/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceShardUnique.java
index 149fa1f4105..ae54b0ab98d 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceShardUnique.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/BalanceShardUnique.java
@@ -25,10 +25,10 @@ import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_PREFI
 import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.BalanceShardUniqueApi;
 import org.apache.solr.client.api.model.BalanceShardUniqueRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreReplicationAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreReplicationAPI.java
index 9049a4adc7e..f6bf4f4c05d 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreReplicationAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreReplicationAPI.java
@@ -21,14 +21,14 @@ import static org.apache.solr.security.PermissionNameProvider.Name.CORE_READ_PER
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 import java.io.IOException;
 import java.util.List;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.jersey.JacksonReflectMapWriter;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java
index d043894d128..3760c1690b4 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java
@@ -19,11 +19,11 @@ package org.apache.solr.handler.admin.api;
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_READ_PERM;
 
+import jakarta.inject.Inject;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
-import javax.inject.Inject;
 import org.apache.lucene.index.IndexCommit;
 import org.apache.solr.client.api.endpoint.CoreSnapshotApi;
 import org.apache.solr.client.api.model.CreateCoreSnapshotResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java
index dfc09e917c1..8e8ecaf405f 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java
@@ -36,17 +36,17 @@ import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PER
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonSubTypes;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import javax.inject.Inject;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.client.api.model.CreateCollectionRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java
index 2de8917df6a..4042d303be1 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java
@@ -41,6 +41,7 @@ import static org.apache.solr.handler.admin.CollectionsHandler.waitForActiveColl
 import static org.apache.solr.handler.api.V2ApiUtils.flattenMapWithPrefix;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -52,7 +53,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateCollectionApi;
 import org.apache.solr.client.api.model.CreateCollectionRequestBody;
 import org.apache.solr.client.api.model.CreateCollectionRouterProperties;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackup.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackup.java
index b85e766c7f8..09729da6ea2 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackup.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackup.java
@@ -35,9 +35,9 @@ import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPro
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateCollectionBackupApi;
 import org.apache.solr.client.api.model.CreateCollectionBackupRequestBody;
 import org.apache.solr.client.api.model.CreateCollectionBackupResponseBody;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionSnapshot.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionSnapshot.java
index 52cc1ab0427..dd4a7a4033b 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionSnapshot.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionSnapshot.java
@@ -23,9 +23,9 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateCollectionSnapshotApi;
 import org.apache.solr.client.api.model.CreateCollectionSnapshotRequestBody;
 import org.apache.solr.client.api.model.CreateCollectionSnapshotResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCoreBackup.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCoreBackup.java
index 08cfb9e3f13..cab08b61e5c 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCoreBackup.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCoreBackup.java
@@ -18,10 +18,10 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.net.URI;
 import java.nio.file.Paths;
 import java.util.Optional;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateCoreBackupApi;
 import org.apache.solr.client.api.model.CreateCoreBackupRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java
index 180a0a335d4..72c8eb058b1 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java
@@ -40,10 +40,10 @@ import static org.apache.solr.common.params.ShardParams._ROUTE_;
 import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPropertiesWithoutPrefix;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateReplicaApi;
 import org.apache.solr.client.api.model.CreateReplicaRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java
index ffa2f55ef25..2912fbd8e07 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java
@@ -36,10 +36,10 @@ import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPropertiesWithoutPrefix;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.CreateShardApi;
 import org.apache.solr.client.api.model.CreateShardRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteAlias.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteAlias.java
index 1242375f5ba..de625ef830f 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteAlias.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteAlias.java
@@ -23,9 +23,9 @@ import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteAliasApi;
 import org.apache.solr.client.api.model.AsyncJerseyResponse;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollection.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollection.java
index 812f7255ad2..04b16435aeb 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollection.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollection.java
@@ -23,9 +23,9 @@ import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteCollectionApi;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 import org.apache.solr.client.solrj.SolrResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionBackup.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionBackup.java
index 88afdc1eb50..bb88c09853c 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionBackup.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionBackup.java
@@ -30,12 +30,12 @@ import static org.apache.solr.common.params.CoreAdminParams.NAME;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.inject.Inject;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteCollectionBackupApi;
 import org.apache.solr.client.api.model.BackupDeletionData;
 import org.apache.solr.client.api.model.BackupDeletionResponseBody;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionSnapshot.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionSnapshot.java
index 1ebf7944a08..5ead94e0432 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionSnapshot.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteCollectionSnapshot.java
@@ -23,9 +23,9 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteCollectionSnapshotApi;
 import org.apache.solr.client.api.model.DeleteCollectionSnapshotResponse;
 import org.apache.solr.client.solrj.SolrResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteNode.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteNode.java
index 76ace8384aa..a2459a7b68f 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteNode.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteNode.java
@@ -22,9 +22,9 @@ import static org.apache.solr.common.params.CoreAdminParams.NODE;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteNodeApi;
 import org.apache.solr.client.api.model.DeleteNodeRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplica.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplica.java
index 3f3f9d44b27..857624b4852 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplica.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplica.java
@@ -31,9 +31,9 @@ import static org.apache.solr.common.params.CoreAdminParams.DELETE_INSTANCE_DIR;
 import static org.apache.solr.common.params.CoreAdminParams.REPLICA;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteReplicaApi;
 import org.apache.solr.client.api.model.ScaleCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplicaProperty.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplicaProperty.java
index 30651f83b6c..1630bf575e6 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplicaProperty.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteReplicaProperty.java
@@ -25,8 +25,8 @@ import static org.apache.solr.common.cloud.ZkStateReader.SHARD_ID_PROP;
 import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_PREFIX;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 
+import jakarta.inject.Inject;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteReplicaPropertyApi;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.solrj.SolrResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteShard.java b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteShard.java
index 2d627162e7d..5b9b5407274 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteShard.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/DeleteShard.java
@@ -27,9 +27,9 @@ import static org.apache.solr.common.params.CoreAdminParams.DELETE_INDEX;
 import static org.apache.solr.common.params.CoreAdminParams.DELETE_INSTANCE_DIR;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.DeleteShardApi;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
 import org.apache.solr.common.cloud.ZkNodeProps;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ForceLeader.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ForceLeader.java
index c3080e3ef16..d7b2ab42eb1 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ForceLeader.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ForceLeader.java
@@ -21,11 +21,11 @@ import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP;
 import static org.apache.solr.common.cloud.ZkStateReader.SHARD_ID_PROP;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.lang.invoke.MethodHandles;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ForceLeaderApi;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.cloud.ZkController;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/GetNodeCommandStatus.java b/solr/core/src/java/org/apache/solr/handler/admin/api/GetNodeCommandStatus.java
index fa3435996ef..c6627d012e3 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/GetNodeCommandStatus.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/GetNodeCommandStatus.java
@@ -20,7 +20,7 @@ import static org.apache.solr.handler.admin.CoreAdminHandler.CoreAdminAsyncTrack
 import static org.apache.solr.handler.admin.CoreAdminHandler.CoreAdminAsyncTracker.FAILED;
 import static org.apache.solr.handler.admin.CoreAdminHandler.CoreAdminAsyncTracker.RUNNING;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.client.api.endpoint.GetNodeCommandStatusApi;
 import org.apache.solr.client.api.model.GetNodeCommandStatusResponse;
 import org.apache.solr.common.params.CoreAdminParams;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchema.java b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchema.java
index 3e12805e3cc..909d0cfe997 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchema.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchema.java
@@ -17,8 +17,8 @@
 
 package org.apache.solr.handler.admin.api;
 
+import jakarta.inject.Inject;
 import java.lang.invoke.MethodHandles;
-import javax.inject.Inject;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.endpoint.GetSchemaApi;
 import org.apache.solr.client.api.model.SchemaInfoResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
index d90512decc1..5050787429c 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
@@ -20,14 +20,14 @@ package org.apache.solr.handler.admin.api;
 import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.util.List;
 import java.util.Map;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.MapWriter;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java
index 05df6a2b15e..54d53d64f4a 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java
@@ -20,8 +20,8 @@ package org.apache.solr.handler.admin.api;
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.InstallShardDataApi;
 import org.apache.solr.client.api.model.InstallShardDataRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ListAliases.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ListAliases.java
index d8995ce16ae..69be9a59567 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ListAliases.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ListAliases.java
@@ -18,10 +18,10 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_READ_PERM;
 
+import jakarta.inject.Inject;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ListAliasesApi;
 import org.apache.solr.client.api.model.GetAliasByNameResponse;
 import org.apache.solr.client.api.model.ListAliasesResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionBackups.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionBackups.java
index 859e0e38941..c81e7c44246 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionBackups.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionBackups.java
@@ -24,12 +24,12 @@ import static org.apache.solr.common.params.CoreAdminParams.NAME;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.inject.Inject;
 import java.io.IOException;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ListCollectionBackupsApi;
 import org.apache.solr.client.api.model.CollectionBackupDetails;
 import org.apache.solr.client.api.model.ListCollectionBackupsResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionSnapshotsAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionSnapshotsAPI.java
index 47f9194b046..dec0f5998f6 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionSnapshotsAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollectionSnapshotsAPI.java
@@ -22,13 +22,13 @@ import static org.apache.solr.security.PermissionNameProvider.Name.COLL_READ_PER
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
 import java.util.Collection;
 import java.util.Map;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
 import org.apache.solr.client.api.model.AsyncJerseyResponse;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.util.CollectionUtil;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollections.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollections.java
index 2f08a7323ac..4b54b86ae81 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollections.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ListCollections.java
@@ -19,11 +19,11 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_READ_PERM;
 
+import jakarta.inject.Inject;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ListCollectionsApi;
 import org.apache.solr.client.api.model.ListCollectionsResponse;
 import org.apache.solr.common.cloud.DocCollection;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexes.java b/solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexes.java
index ff93b3a2b23..66c919f9648 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexes.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexes.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.handler.admin.api;
 
+import jakarta.inject.Inject;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.Paths;
@@ -25,7 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import javax.inject.Inject;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.IOUtils;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java b/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java
index 4a1e3b657b8..7b4e0a934b4 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java
@@ -24,9 +24,9 @@ import static org.apache.solr.common.params.CommonAdminParams.WAIT_FOR_FINAL_STA
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.MigrateReplicasApi;
 import org.apache.solr.client.api.model.MigrateReplicasRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/NodeLoggingAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/NodeLoggingAPI.java
index a6ffbdd2f4b..bbcd4cc8de4 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/NodeLoggingAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/NodeLoggingAPI.java
@@ -23,17 +23,17 @@ import static org.apache.solr.security.PermissionNameProvider.Name.CONFIG_EDIT_P
 import static org.apache.solr.security.PermissionNameProvider.Name.CONFIG_READ_PERM;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.SolrDocumentList;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCollectionAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCollectionAPI.java
index be80062d87a..b620dd430a7 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCollectionAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCollectionAPI.java
@@ -22,10 +22,10 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.lang.invoke.MethodHandles;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ReloadCollectionApi;
 import org.apache.solr.client.api.model.ReloadCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java
index 2210d43add1..88d8ecaf7ab 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java
@@ -19,7 +19,7 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.client.api.endpoint.ReloadCoreApi;
 import org.apache.solr.client.api.model.ReloadCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCollection.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCollection.java
index 8cec8535a7f..1a6ed3a3946 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCollection.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCollection.java
@@ -24,9 +24,9 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
 import static org.apache.solr.common.params.CommonParams.NAME;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.RenameCollectionApi;
 import org.apache.solr.client.api.model.RenameCollectionRequestBody;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCore.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCore.java
index 03b96b57659..e94e02890e4 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RenameCore.java
@@ -18,7 +18,7 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.client.api.endpoint.RenameCoreApi;
 import org.apache.solr.client.api.model.RenameCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ReplaceNode.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ReplaceNode.java
index ab597b54038..0e4b98138e7 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/ReplaceNode.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ReplaceNode.java
@@ -24,9 +24,9 @@ import static org.apache.solr.common.params.CommonAdminParams.WAIT_FOR_FINAL_STA
 import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.util.HashMap;
 import java.util.Map;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.ReplaceNodeApi;
 import org.apache.solr.client.api.model.ReplaceNodeRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java
index b603d8d13f7..5c0dfaf5c27 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java
@@ -38,14 +38,14 @@ import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTIO
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
-import javax.inject.Inject;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
 import org.apache.solr.client.api.model.CreateCollectionRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java
index 858e42da9f6..3997b1971b4 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java
@@ -18,8 +18,8 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.net.URI;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.RestoreCoreApi;
 import org.apache.solr.client.api.model.RestoreCoreRequestBody;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/SnapshotBackupAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/SnapshotBackupAPI.java
index 4002db925c0..e4024b119c5 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/SnapshotBackupAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/SnapshotBackupAPI.java
@@ -23,14 +23,14 @@ import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PER
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.parameters.RequestBody;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.function.Consumer;
-import javax.inject.Inject;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.SolrException;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/SwapCores.java b/solr/core/src/java/org/apache/solr/handler/admin/api/SwapCores.java
index eff87bc3f86..e5a6ea9826e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/SwapCores.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/SwapCores.java
@@ -18,7 +18,7 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.client.api.endpoint.SwapCoresApi;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.SwapCoresRequestBody;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/SyncShard.java b/solr/core/src/java/org/apache/solr/handler/admin/api/SyncShard.java
index b506f585673..17f63fa739e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/SyncShard.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/SyncShard.java
@@ -21,9 +21,9 @@ import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP;
 import static org.apache.solr.common.cloud.ZkStateReader.SHARD_ID_PROP;
 import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM;
 
+import jakarta.inject.Inject;
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
-import javax.inject.Inject;
 import org.apache.solr.client.api.endpoint.SyncShardApi;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.solrj.SolrClient;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/UnloadCore.java b/solr/core/src/java/org/apache/solr/handler/admin/api/UnloadCore.java
index 63fd49a21d3..e9a9db8d05e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/UnloadCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/UnloadCore.java
@@ -19,7 +19,7 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.client.api.endpoint.UnloadCoreApi;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.client.api.model.UnloadCoreRequestBody;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/V2NodeLoggingAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/V2NodeLoggingAPI.java
index e89ad6d5a31..a2b97609d0a 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/V2NodeLoggingAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/V2NodeLoggingAPI.java
@@ -19,12 +19,12 @@ package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CONFIG_EDIT_PERM;
 
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.util.List;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
 import org.apache.solr.jersey.PermissionName;
 import org.apache.solr.logging.LogWatcher;
 
diff --git a/solr/core/src/java/org/apache/solr/handler/configsets/ListConfigSets.java b/solr/core/src/java/org/apache/solr/handler/configsets/ListConfigSets.java
index c3403eb3af8..5f5d28adcfc 100644
--- a/solr/core/src/java/org/apache/solr/handler/configsets/ListConfigSets.java
+++ b/solr/core/src/java/org/apache/solr/handler/configsets/ListConfigSets.java
@@ -18,9 +18,9 @@ package org.apache.solr.handler.configsets;
 
 import static org.apache.solr.security.PermissionNameProvider.Name.CONFIG_READ_PERM;
 
-import javax.inject.Inject;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.HttpHeaders;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.endpoint.ListConfigsetsApi;
 import org.apache.solr.client.api.model.ListConfigsetsResponse;
diff --git a/solr/core/src/java/org/apache/solr/jersey/APIConfigProviderBinder.java b/solr/core/src/java/org/apache/solr/jersey/APIConfigProviderBinder.java
index d17ea7ded13..be77a56cf4a 100644
--- a/solr/core/src/java/org/apache/solr/jersey/APIConfigProviderBinder.java
+++ b/solr/core/src/java/org/apache/solr/jersey/APIConfigProviderBinder.java
@@ -16,7 +16,7 @@
  */
 package org.apache.solr.jersey;
 
-import javax.inject.Singleton;
+import jakarta.inject.Singleton;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 
 /** Jersey binder for APIConfigProvider */
diff --git a/solr/core/src/java/org/apache/solr/jersey/CatchAllExceptionMapper.java b/solr/core/src/java/org/apache/solr/jersey/CatchAllExceptionMapper.java
index 12e3b5ef017..1b5e0be51a3 100644
--- a/solr/core/src/java/org/apache/solr/jersey/CatchAllExceptionMapper.java
+++ b/solr/core/src/java/org/apache/solr/jersey/CatchAllExceptionMapper.java
@@ -23,14 +23,14 @@ import static org.apache.solr.jersey.RequestContextKeys.SOLR_JERSEY_RESPONSE;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_RESPONSE;
 
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ResourceContext;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.ExceptionMapper;
 import java.lang.invoke.MethodHandles;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ResourceContext;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.handler.RequestHandlerBase;
diff --git a/solr/core/src/java/org/apache/solr/jersey/InjectionFactories.java b/solr/core/src/java/org/apache/solr/jersey/InjectionFactories.java
index 8ba5c45b788..a3d6aa7daba 100644
--- a/solr/core/src/java/org/apache/solr/jersey/InjectionFactories.java
+++ b/solr/core/src/java/org/apache/solr/jersey/InjectionFactories.java
@@ -20,8 +20,8 @@ package org.apache.solr.jersey;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_CORE;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_PARAMS;
 
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.core.Context;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.core.Context;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
diff --git a/solr/core/src/java/org/apache/solr/jersey/MediaTypeOverridingFilter.java b/solr/core/src/java/org/apache/solr/jersey/MediaTypeOverridingFilter.java
index 00cda1f08a9..64e15645635 100644
--- a/solr/core/src/java/org/apache/solr/jersey/MediaTypeOverridingFilter.java
+++ b/solr/core/src/java/org/apache/solr/jersey/MediaTypeOverridingFilter.java
@@ -17,16 +17,16 @@
 
 package org.apache.solr.jersey;
 
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.Context;
 import java.io.IOException;
 import java.util.List;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.container.ResourceInfo;
-import javax.ws.rs.core.Context;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.handler.admin.ZookeeperReadAPI;
 import org.apache.solr.handler.api.V2ApiUtils;
@@ -55,7 +55,8 @@ public class MediaTypeOverridingFilter implements ContainerResponseFilter {
 
     // Some endpoints have their own media-type logic and opt out of the overriding behavior this
     // filter provides.
-    if (EXEMPTED_RESOURCES.contains(resourceInfo.getResourceClass())) {
+    if (resourceInfo.getResourceClass() == null
+        || EXEMPTED_RESOURCES.contains(resourceInfo.getResourceClass())) {
       return;
     }
 
diff --git a/solr/core/src/java/org/apache/solr/jersey/MessageBodyReaders.java b/solr/core/src/java/org/apache/solr/jersey/MessageBodyReaders.java
index d11708a9af7..3a8f60d84e7 100644
--- a/solr/core/src/java/org/apache/solr/jersey/MessageBodyReaders.java
+++ b/solr/core/src/java/org/apache/solr/jersey/MessageBodyReaders.java
@@ -17,18 +17,19 @@
 
 package org.apache.solr.jersey;
 
+import com.fasterxml.jackson.core.JsonParser;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyReader;
+import jakarta.ws.rs.ext.Provider;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyReader;
-import javax.ws.rs.ext.Provider;
 import org.glassfish.hk2.api.ServiceLocator;
 import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider;
 
@@ -47,7 +48,7 @@ public class MessageBodyReaders {
       implements MessageBodyReader<Object> {
     @Override
     public MessageBodyReader<Object> getDelegate() {
-      return new JacksonJsonProvider();
+      return new JacksonJsonProvider().configure(JsonParser.Feature.ALLOW_COMMENTS, true);
     }
   }
 
diff --git a/solr/core/src/java/org/apache/solr/jersey/MessageBodyWriters.java b/solr/core/src/java/org/apache/solr/jersey/MessageBodyWriters.java
index 49fd716d09f..d2020f4dc6a 100644
--- a/solr/core/src/java/org/apache/solr/jersey/MessageBodyWriters.java
+++ b/solr/core/src/java/org/apache/solr/jersey/MessageBodyWriters.java
@@ -22,18 +22,18 @@ import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_RESPONSE;
 import static org.apache.solr.response.QueryResponseWriter.CONTENT_TYPE_TEXT_UTF8;
 
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ResourceContext;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyWriter;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ResourceContext;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
 import org.apache.solr.handler.api.V2ApiUtils;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.BinaryResponseWriter;
diff --git a/solr/core/src/java/org/apache/solr/jersey/NotFoundExceptionMapper.java b/solr/core/src/java/org/apache/solr/jersey/NotFoundExceptionMapper.java
index 36e4ab0a407..56aa1684d54 100644
--- a/solr/core/src/java/org/apache/solr/jersey/NotFoundExceptionMapper.java
+++ b/solr/core/src/java/org/apache/solr/jersey/NotFoundExceptionMapper.java
@@ -21,12 +21,12 @@ import static org.apache.solr.jersey.CatchAllExceptionMapper.processAndRespondTo
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_RESPONSE;
 
-import javax.ws.rs.NotFoundException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ResourceContext;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
+import jakarta.ws.rs.NotFoundException;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ResourceContext;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.ExceptionMapper;
 import org.apache.solr.api.V2HttpCall;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
diff --git a/solr/core/src/java/org/apache/solr/jersey/PostRequestDecorationFilter.java b/solr/core/src/java/org/apache/solr/jersey/PostRequestDecorationFilter.java
index 43215fefa42..53f9e8b880b 100644
--- a/solr/core/src/java/org/apache/solr/jersey/PostRequestDecorationFilter.java
+++ b/solr/core/src/java/org/apache/solr/jersey/PostRequestDecorationFilter.java
@@ -20,12 +20,12 @@ package org.apache.solr.jersey;
 import static org.apache.solr.jersey.PostRequestDecorationFilter.PRIORITY;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 
+import jakarta.annotation.Priority;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
-import javax.annotation.Priority;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
diff --git a/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java b/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java
index a7a6632fa65..0840618bbe3 100644
--- a/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java
+++ b/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java
@@ -22,6 +22,14 @@ import static org.apache.solr.jersey.MessageBodyReaders.CachingDelegatingMessage
 import static org.apache.solr.jersey.PostRequestLoggingFilter.PRIORITY;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 
+import jakarta.annotation.Priority;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MultivaluedMap;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
@@ -30,14 +38,6 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.annotation.Priority;
-import javax.ws.rs.Path;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.container.ResourceInfo;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.util.CollectionUtil;
 import org.apache.solr.common.util.StrUtils;
diff --git a/solr/core/src/java/org/apache/solr/jersey/RequestContextKeys.java b/solr/core/src/java/org/apache/solr/jersey/RequestContextKeys.java
index bf28cc0db71..23defb0db0e 100644
--- a/solr/core/src/java/org/apache/solr/jersey/RequestContextKeys.java
+++ b/solr/core/src/java/org/apache/solr/jersey/RequestContextKeys.java
@@ -18,9 +18,9 @@
 package org.apache.solr.jersey;
 
 import com.codahale.metrics.Timer;
+import jakarta.ws.rs.container.ContainerRequestContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.container.ContainerRequestContext;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.CoreContainer;
@@ -35,7 +35,7 @@ import org.apache.solr.security.AuthorizationContext;
  * Keys used to store and retrieve values from the Jersey request context.
  *
  * <p>Properties are generally set in V2HttpCall's 'invokeJerseyRequest' and retrieved in individual
- * {@link javax.ws.rs.container.ContainerRequestFilter}s using {@link
+ * {@link jakarta.ws.rs.container.ContainerRequestFilter}s using {@link
  * ContainerRequestContext#getProperty(String)}
  */
 public interface RequestContextKeys {
diff --git a/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java b/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java
index c50bb53d37c..830c78d38b0 100644
--- a/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java
+++ b/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java
@@ -22,14 +22,14 @@ import static org.apache.solr.jersey.RequestContextKeys.SOLR_QUERY_REQUEST;
 import static org.apache.solr.jersey.RequestContextKeys.TIMER;
 
 import com.codahale.metrics.Timer;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.Context;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.container.ResourceInfo;
-import javax.ws.rs.core.Context;
 import org.apache.solr.client.api.model.SolrJerseyResponse;
 import org.apache.solr.core.PluginBag;
 import org.apache.solr.handler.RequestHandlerBase;
diff --git a/solr/core/src/java/org/apache/solr/jersey/SolrJacksonMapper.java b/solr/core/src/java/org/apache/solr/jersey/SolrJacksonMapper.java
index 77b4ca51105..b3444070701 100644
--- a/solr/core/src/java/org/apache/solr/jersey/SolrJacksonMapper.java
+++ b/solr/core/src/java/org/apache/solr/jersey/SolrJacksonMapper.java
@@ -23,9 +23,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.module.SimpleModule;
 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import jakarta.ws.rs.ext.ContextResolver;
+import jakarta.ws.rs.ext.Provider;
 import java.io.IOException;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
 import org.apache.solr.common.util.NamedList;
 
 /** Customizes the ObjectMapper settings used for serialization/deserialization in Jersey */
diff --git a/solr/core/src/java/org/apache/solr/jersey/SolrRequestAuthorizer.java b/solr/core/src/java/org/apache/solr/jersey/SolrRequestAuthorizer.java
index 362ad511057..06e62e4f463 100644
--- a/solr/core/src/java/org/apache/solr/jersey/SolrRequestAuthorizer.java
+++ b/solr/core/src/java/org/apache/solr/jersey/SolrRequestAuthorizer.java
@@ -17,17 +17,17 @@
 
 package org.apache.solr.jersey;
 
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.Provider;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ResourceInfo;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Provider;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.security.AuthorizationContext;
diff --git a/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java b/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
index 7f43820316d..a58795ed5ea 100644
--- a/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
+++ b/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
@@ -17,14 +17,14 @@
 
 package org.apache.solr.jersey.container;
 
+import jakarta.ws.rs.core.Configuration;
+import jakarta.ws.rs.core.SecurityContext;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.security.Principal;
 import java.util.Enumeration;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Configuration;
-import javax.ws.rs.core.SecurityContext;
 import org.glassfish.jersey.internal.MapPropertiesDelegate;
 import org.glassfish.jersey.server.ContainerRequest;
 import org.glassfish.jersey.server.internal.ContainerUtils;
diff --git a/solr/core/src/java/org/apache/solr/jersey/container/JettyBridgeResponseWriter.java b/solr/core/src/java/org/apache/solr/jersey/container/JettyBridgeResponseWriter.java
index d80e9623151..a93a2104dce 100644
--- a/solr/core/src/java/org/apache/solr/jersey/container/JettyBridgeResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/jersey/container/JettyBridgeResponseWriter.java
@@ -54,7 +54,7 @@ public class JettyBridgeResponseWriter implements ContainerResponseWriter {
   @Override
   public OutputStream writeResponseStatusAndHeaders(
       final long contentLength, final ContainerResponse context) throws ContainerException {
-    final javax.ws.rs.core.Response.StatusType statusInfo = context.getStatusInfo();
+    final jakarta.ws.rs.core.Response.StatusType statusInfo = context.getStatusInfo();
     httpServletResponse.setStatus(statusInfo.getStatusCode());
 
     if (contentLength != -1 && contentLength < Integer.MAX_VALUE) {
diff --git a/solr/core/src/java/org/apache/solr/security/GetPublicKey.java b/solr/core/src/java/org/apache/solr/security/GetPublicKey.java
index 1f7e991667d..91557b63f1b 100644
--- a/solr/core/src/java/org/apache/solr/security/GetPublicKey.java
+++ b/solr/core/src/java/org/apache/solr/security/GetPublicKey.java
@@ -17,7 +17,7 @@
 
 package org.apache.solr.security;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import org.apache.solr.api.JerseyResource;
 import org.apache.solr.client.api.endpoint.GetPublicKeyApi;
 import org.apache.solr.client.api.model.PublicKeyResponse;
diff --git a/solr/core/src/test/org/apache/solr/api/JerseyResourceTest.java b/solr/core/src/test/org/apache/solr/api/JerseyResourceTest.java
index 1d1110340e8..920c7784307 100644
--- a/solr/core/src/test/org/apache/solr/api/JerseyResourceTest.java
+++ b/solr/core/src/test/org/apache/solr/api/JerseyResourceTest.java
@@ -20,8 +20,8 @@ package org.apache.solr.api;
 import static org.apache.solr.jersey.RequestContextKeys.SOLR_JERSEY_RESPONSE;
 import static org.apache.solr.jersey.container.ContainerRequestUtils.DEFAULT_SECURITY_CONTEXT;
 
+import jakarta.ws.rs.container.ContainerRequestContext;
 import java.net.URI;
-import javax.ws.rs.container.ContainerRequestContext;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.api.model.SchemaNameResponse;
 import org.glassfish.jersey.internal.MapPropertiesDelegate;
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/NodeLoggingAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/NodeLoggingAPITest.java
index 77d5567703d..3a3e7c32707 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/NodeLoggingAPITest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/NodeLoggingAPITest.java
@@ -18,13 +18,7 @@
 package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
@@ -32,27 +26,20 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.util.List;
-import javax.inject.Singleton;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Response;
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.jersey.InjectionFactories;
-import org.apache.solr.jersey.SolrJacksonMapper;
 import org.apache.solr.logging.LogWatcher;
 import org.apache.solr.logging.LoggerInfo;
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.glassfish.jersey.test.TestProperties;
+import org.hamcrest.MatcherAssert;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 /** Unit tests for the functionality offered in {@link NodeLoggingAPI} */
 @SuppressWarnings({"unchecked", "rawtypes"})
-public class NodeLoggingAPITest extends JerseyTest {
+public class NodeLoggingAPITest extends SolrTestCase {
 
   private CoreContainer mockCoreContainer;
   private LogWatcher mockLogWatcher;
@@ -62,27 +49,8 @@ public class NodeLoggingAPITest extends JerseyTest {
     assumeWorkingMockito();
   }
 
-  @Override
-  protected Application configure() {
-    forceSet(TestProperties.CONTAINER_PORT, "0");
-    setUpMocks();
-    final ResourceConfig config = new ResourceConfig();
-    config.register(NodeLoggingAPI.class);
-    config.register(SolrJacksonMapper.class);
-    config.register(
-        new AbstractBinder() {
-          @Override
-          protected void configure() {
-            bindFactory(new InjectionFactories.SingletonFactory<>(mockCoreContainer))
-                .to(CoreContainer.class)
-                .in(Singleton.class);
-          }
-        });
-
-    return config;
-  }
-
-  private void setUpMocks() {
+  @Before
+  public void setUpMocks() {
     mockCoreContainer = mock(CoreContainer.class);
     mockLogWatcher = mock(LogWatcher.class);
     when(mockCoreContainer.getLogging()).thenReturn(mockLogWatcher);
@@ -94,11 +62,11 @@ public class NodeLoggingAPITest extends JerseyTest {
         .thenReturn(List.of("ERROR", "WARN", "INFO", "DEBUG", "TRACE"));
     when(mockLogWatcher.getAllLoggers())
         .thenReturn(List.of(logInfo("org.a.s.Foo", "WARN", true), logInfo("org", null, false)));
-    final Response response = target("/node/logging/levels").request().get();
-    final var responseBody = response.readEntity(NodeLoggingAPI.ListLevelsResponse.class);
+    final var responseBody = new NodeLoggingAPI(mockCoreContainer).listAllLoggersAndLevels();
 
     assertEquals(5, responseBody.levels.size());
-    assertThat(responseBody.levels, containsInAnyOrder("ERROR", "WARN", "INFO", "DEBUG", "TRACE"));
+    MatcherAssert.assertThat(
+        responseBody.levels, containsInAnyOrder("ERROR", "WARN", "INFO", "DEBUG", "TRACE"));
 
     assertEquals(2, responseBody.loggers.size());
     final var firstLogger = responseBody.loggers.get(0);
@@ -113,11 +81,9 @@ public class NodeLoggingAPITest extends JerseyTest {
 
   @Test
   public void testReliesOnLogWatcherToModifyLogLevels() {
-    final Response response =
-        target("/node/logging/levels")
-            .request()
-            .put(Entity.json("[{\"logger\": \"o.a.s.Foo\", \"level\": \"WARN\"}]"));
-    final var responseBody = response.readEntity(NodeLoggingAPI.LoggingResponse.class);
+    final var responseBody =
+        new NodeLoggingAPI(mockCoreContainer)
+            .modifyLocalLogLevel(List.of(new NodeLoggingAPI.LogLevelChange("o.a.s.Foo", "WARN")));
 
     assertNotNull(responseBody);
     assertNull("Expected error to be null but was " + responseBody.error, responseBody.error);
@@ -141,8 +107,7 @@ public class NodeLoggingAPITest extends JerseyTest {
     when(mockLogWatcher.getLastEvent()).thenReturn(123456L);
     when(mockLogWatcher.getHistorySize()).thenReturn(321);
 
-    final var response = target("/node/logging/messages").queryParam("since", 123L).request().get();
-    final var responseBody = response.readEntity(NodeLoggingAPI.LogMessagesResponse.class);
+    final var responseBody = new NodeLoggingAPI(mockCoreContainer).fetchLocalLogMessages(123L);
 
     assertNotNull(responseBody);
     assertNull("Expected error to be null but was " + responseBody.error, responseBody.error);
@@ -157,11 +122,9 @@ public class NodeLoggingAPITest extends JerseyTest {
 
   @Test
   public void testReliesOnLogWatcherToSetMessageThreshold() {
-    final var response =
-        target("/node/logging/messages/threshold")
-            .request()
-            .put(Entity.json("{\"level\": \"WARN\"}"));
-    final var responseBody = response.readEntity(NodeLoggingAPI.LoggingResponse.class);
+    final var responseBody =
+        new NodeLoggingAPI(mockCoreContainer)
+            .setMessageThreshold(new NodeLoggingAPI.SetThresholdRequestBody("WARN"));
 
     assertNotNull(responseBody);
     assertNull("Expected error to be null but was " + responseBody.error, responseBody.error);
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/SnapshotBackupAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/SnapshotBackupAPITest.java
index 84bba8148b0..dee50c1ebcb 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/SnapshotBackupAPITest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/SnapshotBackupAPITest.java
@@ -17,93 +17,64 @@
 package org.apache.solr.handler.admin.api;
 
 import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
-import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.io.IOException;
+import jakarta.inject.Inject;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
-import javax.inject.Inject;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.ReplicationHandler.ReplicationHandlerConfig;
-import org.apache.solr.jersey.InjectionFactories;
-import org.apache.solr.jersey.SolrJacksonMapper;
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.process.internal.RequestScoped;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 /** Unit tests for {@link SnapshotBackupAPI}. */
-public class SnapshotBackupAPITest extends JerseyTest {
+public class SnapshotBackupAPITest extends SolrTestCase {
 
   private SolrCore solrCore;
   private ReplicationHandlerConfig replicationHandlerConfig;
+  private SnapshotBackupAPI snapshotBackupApi;
 
   @BeforeClass
   public static void ensureWorkingMockito() {
     assumeWorkingMockito();
   }
 
-  @Override
-  protected Application configure() {
+  @Before
+  public void setupMocks() {
     resetMocks();
-    final ResourceConfig config = new ResourceConfig();
-    config.register(TestSnapshotBackupAPI.class);
-    config.register(SolrJacksonMapper.class);
-    config.register(SolrExceptionTestMapper.class);
-    config.register(
-        new AbstractBinder() {
-          @Override
-          protected void configure() {
-            bindFactory(new InjectionFactories.SingletonFactory<>(solrCore))
-                .to(SolrCore.class)
-                .in(RequestScoped.class);
-          }
-        });
-    config.register(
-        new AbstractBinder() {
-          @Override
-          protected void configure() {
-            bindFactory(new InjectionFactories.SingletonFactory<>(replicationHandlerConfig))
-                .to(ReplicationHandlerConfig.class)
-                .in(RequestScoped.class);
-          }
-        });
-    return config;
+    snapshotBackupApi = new SnapshotBackupAPI(solrCore, replicationHandlerConfig);
   }
 
   @Test
   public void testMissingBody() throws Exception {
-    final Response response = target("/cores/demo/replication/backups").request().post(null);
-    var status = response.getStatusInfo();
-    assertEquals(400, status.getStatusCode());
-    assertEquals("Required request-body is missing", status.getReasonPhrase());
+    final SolrException expected =
+        expectThrows(
+            SolrException.class,
+            () -> {
+              snapshotBackupApi.createBackup(null);
+            });
+    assertEquals(400, expected.code());
+    assertEquals("Required request-body is missing", expected.getMessage());
   }
 
   @Test
   public void testSuccessfulBackupCommand() throws Exception {
-    int numberToKeep = 7;
-    int numberBackupsToKeep = 11;
+    when(replicationHandlerConfig.getNumberBackupsToKeep()).thenReturn(11);
+    final var backupRequestBody = new SnapshotBackupAPI.BackupReplicationRequestBody();
+    backupRequestBody.name = "test";
+    backupRequestBody.numberToKeep = 7;
 
-    when(replicationHandlerConfig.getNumberBackupsToKeep()).thenReturn(numberBackupsToKeep);
-    final Response response =
-        target("/cores/demo/replication/backups")
-            .request()
-            .post(Entity.json("{\"name\": \"test\", \"numberToKeep\": " + numberToKeep + "}"));
-    System.err.println("RESP " + response);
+    final var responseBody =
+        new TrackingSnapshotBackupAPI(solrCore, replicationHandlerConfig)
+            .createBackup(backupRequestBody);
 
-    assertEquals(numberToKeep, TestSnapshotBackupAPI.numberToKeep.get());
-    assertEquals(numberBackupsToKeep, TestSnapshotBackupAPI.numberBackupsToKeep.get());
-    assertEquals(200, response.getStatus());
+    assertEquals(7, TrackingSnapshotBackupAPI.numberToKeep.get());
+    assertEquals(11, TrackingSnapshotBackupAPI.numberBackupsToKeep.get());
   }
 
   private void resetMocks() {
@@ -112,20 +83,13 @@ public class SnapshotBackupAPITest extends JerseyTest {
     when(replicationHandlerConfig.getNumberBackupsToKeep()).thenReturn(5);
   }
 
-  public static class SolrExceptionTestMapper implements ExceptionMapper<SolrException> {
-    @Override
-    public Response toResponse(SolrException e) {
-      return Response.status(e.code(), e.getMessage()).build();
-    }
-  }
-
-  private static class TestSnapshotBackupAPI extends SnapshotBackupAPI {
+  private static class TrackingSnapshotBackupAPI extends SnapshotBackupAPI {
 
     private static final AtomicInteger numberToKeep = new AtomicInteger();
     private static final AtomicInteger numberBackupsToKeep = new AtomicInteger();
 
     @Inject
-    public TestSnapshotBackupAPI(
+    public TrackingSnapshotBackupAPI(
         SolrCore solrCore, ReplicationHandlerConfig replicationHandlerConfig) {
       super(solrCore, replicationHandlerConfig);
     }
@@ -139,10 +103,9 @@ public class SnapshotBackupAPITest extends JerseyTest {
         String commitName,
         String name,
         SolrCore solrCore,
-        Consumer<NamedList<?>> resultConsumer)
-        throws IOException {
-      TestSnapshotBackupAPI.numberToKeep.set(numberToKeep);
-      TestSnapshotBackupAPI.numberBackupsToKeep.set(numberBackupsToKeep);
+        Consumer<NamedList<?>> resultConsumer) {
+      TrackingSnapshotBackupAPI.numberToKeep.set(numberToKeep);
+      TrackingSnapshotBackupAPI.numberBackupsToKeep.set(numberBackupsToKeep);
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/handler/configsets/ListConfigSetsAPITest.java b/solr/core/src/test/org/apache/solr/handler/configsets/ListConfigSetsAPITest.java
index a0cf41622cd..40100be48ac 100644
--- a/solr/core/src/test/org/apache/solr/handler/configsets/ListConfigSetsAPITest.java
+++ b/solr/core/src/test/org/apache/solr/handler/configsets/ListConfigSetsAPITest.java
@@ -18,39 +18,23 @@
 package org.apache.solr.handler.configsets;
 
 import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.List;
-import javax.inject.Singleton;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Response;
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.client.api.model.ListConfigsetsResponse;
 import org.apache.solr.client.solrj.response.ConfigSetAdminResponse;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.ConfigSetService;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.handler.api.V2ApiUtils;
-import org.apache.solr.jersey.InjectionFactories;
-import org.apache.solr.jersey.SolrJacksonMapper;
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.glassfish.jersey.test.TestProperties;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-/**
- * Unit tests for {@link ListConfigSets}.
- *
- * <p>Serves primarily as a model and example of how to write unit tests using Jersey's test
- * framework.
- */
-public class ListConfigSetsAPITest extends JerseyTest {
+/** Unit tests for {@link ListConfigSets}. */
+public class ListConfigSetsAPITest extends SolrTestCase {
 
   private CoreContainer mockCoreContainer;
 
@@ -59,60 +43,18 @@ public class ListConfigSetsAPITest extends JerseyTest {
     assumeWorkingMockito();
   }
 
-  @Override
-  protected Application configure() {
-    forceSet(TestProperties.CONTAINER_PORT, "0");
-    resetMocks();
-    final ResourceConfig config = new ResourceConfig();
-    config.register(ListConfigSets.class);
-    config.register(SolrJacksonMapper.class);
-    config.register(
-        new AbstractBinder() {
-          @Override
-          protected void configure() {
-            bindFactory(new InjectionFactories.SingletonFactory<>(mockCoreContainer))
-                .to(CoreContainer.class)
-                .in(Singleton.class);
-          }
-        });
-
-    return config;
-  }
-
-  private void resetMocks() {
+  @Before
+  public void clearMocks() {
     mockCoreContainer = mock(CoreContainer.class);
   }
 
   @Test
-  public void testSuccessfulListConfigsetsRaw() throws Exception {
-    final String expectedJson =
-        "{\"responseHeader\":{\"status\":0,\"QTime\":0},\"configSets\":[\"cs1\",\"cs2\"]}";
-    final ConfigSetService configSetService = mock(ConfigSetService.class);
-    when(mockCoreContainer.getConfigSetService()).thenReturn(configSetService);
-    when(configSetService.listConfigs()).thenReturn(List.of("cs1", "cs2"));
-
-    final Response response = target("/cluster/configs").request("application/json").get();
-    final String jsonBody = response.readEntity(String.class);
-
-    assertEquals(200, response.getStatus());
-    assertEquals("application/json", response.getHeaders().getFirst("Content-type"));
-    assertEquals(1, 1);
-    assertEquals(
-        expectedJson,
-        "{\"responseHeader\":{\"status\":0,\"QTime\":0},\"configSets\":[\"cs1\",\"cs2\"]}");
-  }
-
-  @Test
-  public void testSuccessfulListConfigsetsTyped() throws Exception {
+  public void testSuccessfulListConfigsets() throws Exception {
     final ConfigSetService configSetService = mock(ConfigSetService.class);
     when(mockCoreContainer.getConfigSetService()).thenReturn(configSetService);
     when(configSetService.listConfigs()).thenReturn(List.of("cs1", "cs2"));
 
-    final var response =
-        target("/cluster/configs").request("application/json").get(ListConfigsetsResponse.class);
-
-    assertNotNull(response.configSets);
-    assertNull(response.error);
+    final var response = new ListConfigSets(mockCoreContainer).listConfigSet();
     assertEquals(2, response.configSets.size());
     assertTrue(response.configSets.contains("cs1"));
     assertTrue(response.configSets.contains("cs2"));
@@ -133,8 +75,7 @@ public class ListConfigSetsAPITest extends JerseyTest {
     when(mockCoreContainer.getConfigSetService()).thenReturn(configSetService);
     when(configSetService.listConfigs()).thenReturn(List.of("cs1", "cs2"));
 
-    final var response =
-        target("/cluster/configs").request("application/json").get(ListConfigsetsResponse.class);
+    final var response = new ListConfigSets(mockCoreContainer).listConfigSet();
     final NamedList<Object> squashedResponse = new NamedList<>();
     V2ApiUtils.squashIntoNamedList(squashedResponse, response);
     final ConfigSetAdminResponse.List solrjResponse = new ConfigSetAdminResponse.List();
diff --git a/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java b/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java
index 985085b7829..54d44fd80be 100644
--- a/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java
+++ b/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java
@@ -21,10 +21,10 @@ import static org.apache.solr.jersey.MessageBodyReaders.CachingDelegatingMessage
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.UriInfo;
 import java.util.List;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.UriInfo;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.api.model.CreateReplicaRequestBody;
 import org.junit.BeforeClass;
diff --git a/solr/licenses/aopalliance-repackaged-2.6.1.jar.sha1 b/solr/licenses/aopalliance-repackaged-2.6.1.jar.sha1
deleted file mode 100644
index a8b67dd6e8f..00000000000
--- a/solr/licenses/aopalliance-repackaged-2.6.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b2eb0a83bcbb44cc5d25f8b18f23be116313a638
diff --git a/solr/licenses/aopalliance-repackaged-3.0.5.jar.sha1 b/solr/licenses/aopalliance-repackaged-3.0.5.jar.sha1
new file mode 100644
index 00000000000..4d0c1fa8b04
--- /dev/null
+++ b/solr/licenses/aopalliance-repackaged-3.0.5.jar.sha1
@@ -0,0 +1 @@
+6a77d3f22a1423322226bff412177addc936b38f
diff --git a/solr/licenses/bcutil-jdk18on-NOTICE.txt b/solr/licenses/bcutil-jdk18on-NOTICE.txt
deleted file mode 100644
index be0638a2ba8..00000000000
--- a/solr/licenses/bcutil-jdk18on-NOTICE.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Copyright (c) 2000-2006 The Legion Of The Bouncy Castle
-(http://www.bouncycastle.org)
diff --git a/solr/licenses/grizzly-framework-2.4.4.jar.sha1 b/solr/licenses/grizzly-framework-2.4.4.jar.sha1
deleted file mode 100644
index af5db46c48c..00000000000
--- a/solr/licenses/grizzly-framework-2.4.4.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-85ff29df39616972a074737948f116ef25addfee
diff --git a/solr/licenses/grizzly-framework-LICENSE-EPL.txt b/solr/licenses/grizzly-framework-LICENSE-EPL.txt
deleted file mode 100644
index bda7db00c56..00000000000
--- a/solr/licenses/grizzly-framework-LICENSE-EPL.txt
+++ /dev/null
@@ -1,277 +0,0 @@
-# Eclipse Public License - v 2.0
-
-        THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-        PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
-        OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-    1. DEFINITIONS
-
-    "Contribution" means:
-
-      a) in the case of the initial Contributor, the initial content
-         Distributed under this Agreement, and
-
-      b) in the case of each subsequent Contributor:
-         i) changes to the Program, and
-         ii) additions to the Program;
-      where such changes and/or additions to the Program originate from
-      and are Distributed by that particular Contributor. A Contribution
-      "originates" from a Contributor if it was added to the Program by
-      such Contributor itself or anyone acting on such Contributor's behalf.
-      Contributions do not include changes or additions to the Program that
-      are not Modified Works.
-
-    "Contributor" means any person or entity that Distributes the Program.
-
-    "Licensed Patents" mean patent claims licensable by a Contributor which
-    are necessarily infringed by the use or sale of its Contribution alone
-    or when combined with the Program.
-
-    "Program" means the Contributions Distributed in accordance with this
-    Agreement.
-
-    "Recipient" means anyone who receives the Program under this Agreement
-    or any Secondary License (as applicable), including Contributors.
-
-    "Derivative Works" shall mean any work, whether in Source Code or other
-    form, that is based on (or derived from) the Program and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship.
-
-    "Modified Works" shall mean any work in Source Code or other form that
-    results from an addition to, deletion from, or modification of the
-    contents of the Program, including, for purposes of clarity any new file
-    in Source Code form that contains any contents of the Program. Modified
-    Works shall not include works that contain only declarations,
-    interfaces, types, classes, structures, or files of the Program solely
-    in each case in order to link to, bind by name, or subclass the Program
-    or Modified Works thereof.
-
-    "Distribute" means the acts of a) distributing or b) making available
-    in any manner that enables the transfer of a copy.
-
-    "Source Code" means the form of a Program preferred for making
-    modifications, including but not limited to software source code,
-    documentation source, and configuration files.
-
-    "Secondary License" means either the GNU General Public License,
-    Version 2.0, or any later versions of that license, including any
-    exceptions or additional permissions as identified by the initial
-    Contributor.
-
-    2. GRANT OF RIGHTS
-
-      a) Subject to the terms of this Agreement, each Contributor hereby
-      grants Recipient a non-exclusive, worldwide, royalty-free copyright
-      license to reproduce, prepare Derivative Works of, publicly display,
-      publicly perform, Distribute and sublicense the Contribution of such
-      Contributor, if any, and such Derivative Works.
-
-      b) Subject to the terms of this Agreement, each Contributor hereby
-      grants Recipient a non-exclusive, worldwide, royalty-free patent
-      license under Licensed Patents to make, use, sell, offer to sell,
-      import and otherwise transfer the Contribution of such Contributor,
-      if any, in Source Code or other form. This patent license shall
-      apply to the combination of the Contribution and the Program if, at
-      the time the Contribution is added by the Contributor, such addition
-      of the Contribution causes such combination to be covered by the
-      Licensed Patents. The patent license shall not apply to any other
-      combinations which include the Contribution. No hardware per se is
-      licensed hereunder.
-
-      c) Recipient understands that although each Contributor grants the
-      licenses to its Contributions set forth herein, no assurances are
-      provided by any Contributor that the Program does not infringe the
-      patent or other intellectual property rights of any other entity.
-      Each Contributor disclaims any liability to Recipient for claims
-      brought by any other entity based on infringement of intellectual
-      property rights or otherwise. As a condition to exercising the
-      rights and licenses granted hereunder, each Recipient hereby
-      assumes sole responsibility to secure any other intellectual
-      property rights needed, if any. For example, if a third party
-      patent license is required to allow Recipient to Distribute the
-      Program, it is Recipient's responsibility to acquire that license
-      before distributing the Program.
-
-      d) Each Contributor represents that to its knowledge it has
-      sufficient copyright rights in its Contribution, if any, to grant
-      the copyright license set forth in this Agreement.
-
-      e) Notwithstanding the terms of any Secondary License, no
-      Contributor makes additional grants to any Recipient (other than
-      those set forth in this Agreement) as a result of such Recipient's
-      receipt of the Program under the terms of a Secondary License
-      (if permitted under the terms of Section 3).
-
-    3. REQUIREMENTS
-
-    3.1 If a Contributor Distributes the Program in any form, then:
-
-      a) the Program must also be made available as Source Code, in
-      accordance with section 3.2, and the Contributor must accompany
-      the Program with a statement that the Source Code for the Program
-      is available under this Agreement, and informs Recipients how to
-      obtain it in a reasonable manner on or through a medium customarily
-      used for software exchange; and
-
-      b) the Contributor may Distribute the Program under a license
-      different than this Agreement, provided that such license:
-         i) effectively disclaims on behalf of all other Contributors all
-         warranties and conditions, express and implied, including
-         warranties or conditions of title and non-infringement, and
-         implied warranties or conditions of merchantability and fitness
-         for a particular purpose;
-
-         ii) effectively excludes on behalf of all other Contributors all
-         liability for damages, including direct, indirect, special,
-         incidental and consequential damages, such as lost profits;
-
-         iii) does not attempt to limit or alter the recipients' rights
-         in the Source Code under section 3.2; and
-
-         iv) requires any subsequent distribution of the Program by any
-         party to be under a license that satisfies the requirements
-         of this section 3.
-
-    3.2 When the Program is Distributed as Source Code:
-
-      a) it must be made available under this Agreement, or if the
-      Program (i) is combined with other material in a separate file or
-      files made available under a Secondary License, and (ii) the initial
-      Contributor attached to the Source Code the notice described in
-      Exhibit A of this Agreement, then the Program may be made available
-      under the terms of such Secondary Licenses, and
-
-      b) a copy of this Agreement must be included with each copy of
-      the Program.
-
-    3.3 Contributors may not remove or alter any copyright, patent,
-    trademark, attribution notices, disclaimers of warranty, or limitations
-    of liability ("notices") contained within the Program from any copy of
-    the Program which they Distribute, provided that Contributors may add
-    their own appropriate notices.
-
-    4. COMMERCIAL DISTRIBUTION
-
-    Commercial distributors of software may accept certain responsibilities
-    with respect to end users, business partners and the like. While this
-    license is intended to facilitate the commercial use of the Program,
-    the Contributor who includes the Program in a commercial product
-    offering should do so in a manner which does not create potential
-    liability for other Contributors. Therefore, if a Contributor includes
-    the Program in a commercial product offering, such Contributor
-    ("Commercial Contributor") hereby agrees to defend and indemnify every
-    other Contributor ("Indemnified Contributor") against any losses,
-    damages and costs (collectively "Losses") arising from claims, lawsuits
-    and other legal actions brought by a third party against the Indemnified
-    Contributor to the extent caused by the acts or omissions of such
-    Commercial Contributor in connection with its distribution of the Program
-    in a commercial product offering. The obligations in this section do not
-    apply to any claims or Losses relating to any actual or alleged
-    intellectual property infringement. In order to qualify, an Indemnified
-    Contributor must: a) promptly notify the Commercial Contributor in
-    writing of such claim, and b) allow the Commercial Contributor to control,
-    and cooperate with the Commercial Contributor in, the defense and any
-    related settlement negotiations. The Indemnified Contributor may
-    participate in any such claim at its own expense.
-
-    For example, a Contributor might include the Program in a commercial
-    product offering, Product X. That Contributor is then a Commercial
-    Contributor. If that Commercial Contributor then makes performance
-    claims, or offers warranties related to Product X, those performance
-    claims and warranties are such Commercial Contributor's responsibility
-    alone. Under this section, the Commercial Contributor would have to
-    defend claims against the other Contributors related to those performance
-    claims and warranties, and if a court requires any other Contributor to
-    pay any damages as a result, the Commercial Contributor must pay
-    those damages.
-
-    5. NO WARRANTY
-
-    EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-    PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
-    BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-    IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
-    TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
-    PURPOSE. Each Recipient is solely responsible for determining the
-    appropriateness of using and distributing the Program and assumes all
-    risks associated with its exercise of rights under this Agreement,
-    including but not limited to the risks and costs of program errors,
-    compliance with applicable laws, damage to or loss of data, programs
-    or equipment, and unavailability or interruption of operations.
-
-    6. DISCLAIMER OF LIABILITY
-
-    EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-    PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
-    SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
-    PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-    ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
-    EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
-    POSSIBILITY OF SUCH DAMAGES.
-
-    7. GENERAL
-
-    If any provision of this Agreement is invalid or unenforceable under
-    applicable law, it shall not affect the validity or enforceability of
-    the remainder of the terms of this Agreement, and without further
-    action by the parties hereto, such provision shall be reformed to the
-    minimum extent necessary to make such provision valid and enforceable.
-
-    If Recipient institutes patent litigation against any entity
-    (including a cross-claim or counterclaim in a lawsuit) alleging that the
-    Program itself (excluding combinations of the Program with other software
-    or hardware) infringes such Recipient's patent(s), then such Recipient's
-    rights granted under Section 2(b) shall terminate as of the date such
-    litigation is filed.
-
-    All Recipient's rights under this Agreement shall terminate if it
-    fails to comply with any of the material terms or conditions of this
-    Agreement and does not cure such failure in a reasonable period of
-    time after becoming aware of such noncompliance. If all Recipient's
-    rights under this Agreement terminate, Recipient agrees to cease use
-    and distribution of the Program as soon as reasonably practicable.
-    However, Recipient's obligations under this Agreement and any licenses
-    granted by Recipient relating to the Program shall continue and survive.
-
-    Everyone is permitted to copy and distribute copies of this Agreement,
-    but in order to avoid inconsistency the Agreement is copyrighted and
-    may only be modified in the following manner. The Agreement Steward
-    reserves the right to publish new versions (including revisions) of
-    this Agreement from time to time. No one other than the Agreement
-    Steward has the right to modify this Agreement. The Eclipse Foundation
-    is the initial Agreement Steward. The Eclipse Foundation may assign the
-    responsibility to serve as the Agreement Steward to a suitable separate
-    entity. Each new version of the Agreement will be given a distinguishing
-    version number. The Program (including Contributions) may always be
-    Distributed subject to the version of the Agreement under which it was
-    received. In addition, after a new version of the Agreement is published,
-    Contributor may elect to Distribute the Program (including its
-    Contributions) under the new version.
-
-    Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-    receives no rights or licenses to the intellectual property of any
-    Contributor under this Agreement, whether expressly, by implication,
-    estoppel or otherwise. All rights in the Program not expressly granted
-    under this Agreement are reserved. Nothing in this Agreement is intended
-    to be enforceable by any entity that is not a Contributor or Recipient.
-    No third-party beneficiary rights are created under this Agreement.
-
-    Exhibit A - Form of Secondary Licenses Notice
-
-    "This Source Code may also be made available under the following
-    Secondary Licenses when the conditions for such availability set forth
-    in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    version(s), and exceptions or additional permissions here}."
-
-      Simply including a copy of this Agreement, including this Exhibit A
-      is not sufficient to license the Source Code under Secondary Licenses.
-
-      If it is not possible or desirable to put the notice in a particular
-      file, then You may include the notice in a location (such as a LICENSE
-      file in a relevant directory) where a recipient would be likely to
-      look for such a notice.
-
-      You may add additional accurate notices of copyright ownership.
diff --git a/solr/licenses/grizzly-http-2.4.4.jar.sha1 b/solr/licenses/grizzly-http-2.4.4.jar.sha1
deleted file mode 100644
index 0b7c126c5af..00000000000
--- a/solr/licenses/grizzly-http-2.4.4.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c789d449906458d4174126f6a4fefdd7a6008777
diff --git a/solr/licenses/grizzly-http-LICENSE-EPL.txt b/solr/licenses/grizzly-http-LICENSE-EPL.txt
deleted file mode 100644
index bda7db00c56..00000000000
--- a/solr/licenses/grizzly-http-LICENSE-EPL.txt
+++ /dev/null
@@ -1,277 +0,0 @@
-# Eclipse Public License - v 2.0
-
-        THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-        PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
-        OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-    1. DEFINITIONS
-
-    "Contribution" means:
-
-      a) in the case of the initial Contributor, the initial content
-         Distributed under this Agreement, and
-
-      b) in the case of each subsequent Contributor:
-         i) changes to the Program, and
-         ii) additions to the Program;
-      where such changes and/or additions to the Program originate from
-      and are Distributed by that particular Contributor. A Contribution
-      "originates" from a Contributor if it was added to the Program by
-      such Contributor itself or anyone acting on such Contributor's behalf.
-      Contributions do not include changes or additions to the Program that
-      are not Modified Works.
-
-    "Contributor" means any person or entity that Distributes the Program.
-
-    "Licensed Patents" mean patent claims licensable by a Contributor which
-    are necessarily infringed by the use or sale of its Contribution alone
-    or when combined with the Program.
-
-    "Program" means the Contributions Distributed in accordance with this
-    Agreement.
-
-    "Recipient" means anyone who receives the Program under this Agreement
-    or any Secondary License (as applicable), including Contributors.
-
-    "Derivative Works" shall mean any work, whether in Source Code or other
-    form, that is based on (or derived from) the Program and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship.
-
-    "Modified Works" shall mean any work in Source Code or other form that
-    results from an addition to, deletion from, or modification of the
-    contents of the Program, including, for purposes of clarity any new file
-    in Source Code form that contains any contents of the Program. Modified
-    Works shall not include works that contain only declarations,
-    interfaces, types, classes, structures, or files of the Program solely
-    in each case in order to link to, bind by name, or subclass the Program
-    or Modified Works thereof.
-
-    "Distribute" means the acts of a) distributing or b) making available
-    in any manner that enables the transfer of a copy.
-
-    "Source Code" means the form of a Program preferred for making
-    modifications, including but not limited to software source code,
-    documentation source, and configuration files.
-
-    "Secondary License" means either the GNU General Public License,
-    Version 2.0, or any later versions of that license, including any
-    exceptions or additional permissions as identified by the initial
-    Contributor.
-
-    2. GRANT OF RIGHTS
-
-      a) Subject to the terms of this Agreement, each Contributor hereby
-      grants Recipient a non-exclusive, worldwide, royalty-free copyright
-      license to reproduce, prepare Derivative Works of, publicly display,
-      publicly perform, Distribute and sublicense the Contribution of such
-      Contributor, if any, and such Derivative Works.
-
-      b) Subject to the terms of this Agreement, each Contributor hereby
-      grants Recipient a non-exclusive, worldwide, royalty-free patent
-      license under Licensed Patents to make, use, sell, offer to sell,
-      import and otherwise transfer the Contribution of such Contributor,
-      if any, in Source Code or other form. This patent license shall
-      apply to the combination of the Contribution and the Program if, at
-      the time the Contribution is added by the Contributor, such addition
-      of the Contribution causes such combination to be covered by the
-      Licensed Patents. The patent license shall not apply to any other
-      combinations which include the Contribution. No hardware per se is
-      licensed hereunder.
-
-      c) Recipient understands that although each Contributor grants the
-      licenses to its Contributions set forth herein, no assurances are
-      provided by any Contributor that the Program does not infringe the
-      patent or other intellectual property rights of any other entity.
-      Each Contributor disclaims any liability to Recipient for claims
-      brought by any other entity based on infringement of intellectual
-      property rights or otherwise. As a condition to exercising the
-      rights and licenses granted hereunder, each Recipient hereby
-      assumes sole responsibility to secure any other intellectual
-      property rights needed, if any. For example, if a third party
-      patent license is required to allow Recipient to Distribute the
-      Program, it is Recipient's responsibility to acquire that license
-      before distributing the Program.
-
-      d) Each Contributor represents that to its knowledge it has
-      sufficient copyright rights in its Contribution, if any, to grant
-      the copyright license set forth in this Agreement.
-
-      e) Notwithstanding the terms of any Secondary License, no
-      Contributor makes additional grants to any Recipient (other than
-      those set forth in this Agreement) as a result of such Recipient's
-      receipt of the Program under the terms of a Secondary License
-      (if permitted under the terms of Section 3).
-
-    3. REQUIREMENTS
-
-    3.1 If a Contributor Distributes the Program in any form, then:
-
-      a) the Program must also be made available as Source Code, in
-      accordance with section 3.2, and the Contributor must accompany
-      the Program with a statement that the Source Code for the Program
-      is available under this Agreement, and informs Recipients how to
-      obtain it in a reasonable manner on or through a medium customarily
-      used for software exchange; and
-
-      b) the Contributor may Distribute the Program under a license
-      different than this Agreement, provided that such license:
-         i) effectively disclaims on behalf of all other Contributors all
-         warranties and conditions, express and implied, including
-         warranties or conditions of title and non-infringement, and
-         implied warranties or conditions of merchantability and fitness
-         for a particular purpose;
-
-         ii) effectively excludes on behalf of all other Contributors all
-         liability for damages, including direct, indirect, special,
-         incidental and consequential damages, such as lost profits;
-
-         iii) does not attempt to limit or alter the recipients' rights
-         in the Source Code under section 3.2; and
-
-         iv) requires any subsequent distribution of the Program by any
-         party to be under a license that satisfies the requirements
-         of this section 3.
-
-    3.2 When the Program is Distributed as Source Code:
-
-      a) it must be made available under this Agreement, or if the
-      Program (i) is combined with other material in a separate file or
-      files made available under a Secondary License, and (ii) the initial
-      Contributor attached to the Source Code the notice described in
-      Exhibit A of this Agreement, then the Program may be made available
-      under the terms of such Secondary Licenses, and
-
-      b) a copy of this Agreement must be included with each copy of
-      the Program.
-
-    3.3 Contributors may not remove or alter any copyright, patent,
-    trademark, attribution notices, disclaimers of warranty, or limitations
-    of liability ("notices") contained within the Program from any copy of
-    the Program which they Distribute, provided that Contributors may add
-    their own appropriate notices.
-
-    4. COMMERCIAL DISTRIBUTION
-
-    Commercial distributors of software may accept certain responsibilities
-    with respect to end users, business partners and the like. While this
-    license is intended to facilitate the commercial use of the Program,
-    the Contributor who includes the Program in a commercial product
-    offering should do so in a manner which does not create potential
-    liability for other Contributors. Therefore, if a Contributor includes
-    the Program in a commercial product offering, such Contributor
-    ("Commercial Contributor") hereby agrees to defend and indemnify every
-    other Contributor ("Indemnified Contributor") against any losses,
-    damages and costs (collectively "Losses") arising from claims, lawsuits
-    and other legal actions brought by a third party against the Indemnified
-    Contributor to the extent caused by the acts or omissions of such
-    Commercial Contributor in connection with its distribution of the Program
-    in a commercial product offering. The obligations in this section do not
-    apply to any claims or Losses relating to any actual or alleged
-    intellectual property infringement. In order to qualify, an Indemnified
-    Contributor must: a) promptly notify the Commercial Contributor in
-    writing of such claim, and b) allow the Commercial Contributor to control,
-    and cooperate with the Commercial Contributor in, the defense and any
-    related settlement negotiations. The Indemnified Contributor may
-    participate in any such claim at its own expense.
-
-    For example, a Contributor might include the Program in a commercial
-    product offering, Product X. That Contributor is then a Commercial
-    Contributor. If that Commercial Contributor then makes performance
-    claims, or offers warranties related to Product X, those performance
-    claims and warranties are such Commercial Contributor's responsibility
-    alone. Under this section, the Commercial Contributor would have to
-    defend claims against the other Contributors related to those performance
-    claims and warranties, and if a court requires any other Contributor to
-    pay any damages as a result, the Commercial Contributor must pay
-    those damages.
-
-    5. NO WARRANTY
-
-    EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-    PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
-    BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-    IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
-    TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
-    PURPOSE. Each Recipient is solely responsible for determining the
-    appropriateness of using and distributing the Program and assumes all
-    risks associated with its exercise of rights under this Agreement,
-    including but not limited to the risks and costs of program errors,
-    compliance with applicable laws, damage to or loss of data, programs
-    or equipment, and unavailability or interruption of operations.
-
-    6. DISCLAIMER OF LIABILITY
-
-    EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-    PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
-    SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
-    PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-    ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
-    EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
-    POSSIBILITY OF SUCH DAMAGES.
-
-    7. GENERAL
-
-    If any provision of this Agreement is invalid or unenforceable under
-    applicable law, it shall not affect the validity or enforceability of
-    the remainder of the terms of this Agreement, and without further
-    action by the parties hereto, such provision shall be reformed to the
-    minimum extent necessary to make such provision valid and enforceable.
-
-    If Recipient institutes patent litigation against any entity
-    (including a cross-claim or counterclaim in a lawsuit) alleging that the
-    Program itself (excluding combinations of the Program with other software
-    or hardware) infringes such Recipient's patent(s), then such Recipient's
-    rights granted under Section 2(b) shall terminate as of the date such
-    litigation is filed.
-
-    All Recipient's rights under this Agreement shall terminate if it
-    fails to comply with any of the material terms or conditions of this
-    Agreement and does not cure such failure in a reasonable period of
-    time after becoming aware of such noncompliance. If all Recipient's
-    rights under this Agreement terminate, Recipient agrees to cease use
-    and distribution of the Program as soon as reasonably practicable.
-    However, Recipient's obligations under this Agreement and any licenses
-    granted by Recipient relating to the Program shall continue and survive.
-
-    Everyone is permitted to copy and distribute copies of this Agreement,
-    but in order to avoid inconsistency the Agreement is copyrighted and
-    may only be modified in the following manner. The Agreement Steward
-    reserves the right to publish new versions (including revisions) of
-    this Agreement from time to time. No one other than the Agreement
-    Steward has the right to modify this Agreement. The Eclipse Foundation
-    is the initial Agreement Steward. The Eclipse Foundation may assign the
-    responsibility to serve as the Agreement Steward to a suitable separate
-    entity. Each new version of the Agreement will be given a distinguishing
-    version number. The Program (including Contributions) may always be
-    Distributed subject to the version of the Agreement under which it was
-    received. In addition, after a new version of the Agreement is published,
-    Contributor may elect to Distribute the Program (including its
-    Contributions) under the new version.
-
-    Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-    receives no rights or licenses to the intellectual property of any
-    Contributor under this Agreement, whether expressly, by implication,
-    estoppel or otherwise. All rights in the Program not expressly granted
-    under this Agreement are reserved. Nothing in this Agreement is intended
-    to be enforceable by any entity that is not a Contributor or Recipient.
-    No third-party beneficiary rights are created under this Agreement.
-
-    Exhibit A - Form of Secondary Licenses Notice
-
-    "This Source Code may also be made available under the following
-    Secondary Licenses when the conditions for such availability set forth
-    in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    version(s), and exceptions or additional permissions here}."
-
-      Simply including a copy of this Agreement, including this Exhibit A
-      is not sufficient to license the Source Code under Secondary Licenses.
-
-      If it is not possible or desirable to put the notice in a particular
-      file, then You may include the notice in a location (such as a LICENSE
-      file in a relevant directory) where a recipient would be likely to
-      look for such a notice.
-
-      You may add additional accurate notices of copyright ownership.
diff --git a/solr/licenses/grizzly-http-server-2.4.4.jar.sha1 b/solr/licenses/grizzly-http-server-2.4.4.jar.sha1
deleted file mode 100644
index 476fd619312..00000000000
--- a/solr/licenses/grizzly-http-server-2.4.4.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f9a62c711eb51f351cc5ba48faf44d5a49faa0a7
diff --git a/solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1 b/solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1
deleted file mode 100644
index b4c9a6ea2c4..00000000000
--- a/solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-99aa6d3a5d36c724d9adfce7f1b56ef80b41d40a
diff --git a/solr/licenses/hk2-api-2.6.1.jar.sha1 b/solr/licenses/hk2-api-2.6.1.jar.sha1
deleted file mode 100644
index 454d293297e..00000000000
--- a/solr/licenses/hk2-api-2.6.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-114bd7afb4a1bd9993527f52a08a252b5d2acac5
diff --git a/solr/licenses/hk2-api-3.0.5.jar.sha1 b/solr/licenses/hk2-api-3.0.5.jar.sha1
new file mode 100644
index 00000000000..b6772427b1b
--- /dev/null
+++ b/solr/licenses/hk2-api-3.0.5.jar.sha1
@@ -0,0 +1 @@
+6774367a6780ea4fedc19425981f1b86762a3506
diff --git a/solr/licenses/hk2-locator-2.6.1.jar.sha1 b/solr/licenses/hk2-locator-2.6.1.jar.sha1
deleted file mode 100644
index c54453c5773..00000000000
--- a/solr/licenses/hk2-locator-2.6.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9dedf9d2022e38ec0743ed44c1ac94ad6149acdd
diff --git a/solr/licenses/hk2-locator-3.0.5.jar.sha1 b/solr/licenses/hk2-locator-3.0.5.jar.sha1
new file mode 100644
index 00000000000..56d82c21d36
--- /dev/null
+++ b/solr/licenses/hk2-locator-3.0.5.jar.sha1
@@ -0,0 +1 @@
+ea4a4d2c187dead10c998ebb3c3d6ce5133f5637
diff --git a/solr/licenses/hk2-utils-2.6.1.jar.sha1 b/solr/licenses/hk2-utils-2.6.1.jar.sha1
deleted file mode 100644
index 0e1e0b65338..00000000000
--- a/solr/licenses/hk2-utils-2.6.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-396513aa96c1d5a10aa4f75c4dcbf259a698d62d
diff --git a/solr/licenses/hk2-utils-3.0.5.jar.sha1 b/solr/licenses/hk2-utils-3.0.5.jar.sha1
new file mode 100644
index 00000000000..3af8b6c96b8
--- /dev/null
+++ b/solr/licenses/hk2-utils-3.0.5.jar.sha1
@@ -0,0 +1 @@
+4d65eff85bd778f66e448be1049be8b9530a028f
diff --git a/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.16.1.jar.sha1 b/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.16.1.jar.sha1
new file mode 100644
index 00000000000..d6cfadc2824
--- /dev/null
+++ b/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.16.1.jar.sha1
@@ -0,0 +1 @@
+314e009bc976d196b66e389068b27b89ccd5ec35
diff --git a/solr/licenses/jackson-module-jaxb-annotations-2.16.1.jar.sha1 b/solr/licenses/jackson-module-jaxb-annotations-2.16.1.jar.sha1
deleted file mode 100644
index 3d5b97bc09b..00000000000
--- a/solr/licenses/jackson-module-jaxb-annotations-2.16.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e9df364a2695e66eb8d2803d6725424842760125
diff --git a/solr/licenses/jakarta.annotation-api-1.3.5.jar.sha1 b/solr/licenses/jakarta.annotation-api-1.3.5.jar.sha1
deleted file mode 100644
index d3dd4d5f43c..00000000000
--- a/solr/licenses/jakarta.annotation-api-1.3.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-59eb84ee0d616332ff44aba065f3888cf002cd2d
diff --git a/solr/licenses/jakarta.annotation-api-2.1.1.jar.sha1 b/solr/licenses/jakarta.annotation-api-2.1.1.jar.sha1
new file mode 100644
index 00000000000..a3e6150253d
--- /dev/null
+++ b/solr/licenses/jakarta.annotation-api-2.1.1.jar.sha1
@@ -0,0 +1 @@
+48b9bda22b091b1f48b13af03fe36db3be6e1ae3
diff --git a/solr/licenses/jakarta.inject-api-2.0.1.jar.sha1 b/solr/licenses/jakarta.inject-api-2.0.1.jar.sha1
new file mode 100644
index 00000000000..295f96ab481
--- /dev/null
+++ b/solr/licenses/jakarta.inject-api-2.0.1.jar.sha1
@@ -0,0 +1 @@
+4c28afe1991a941d7702fe1362c365f0a8641d1e
diff --git a/solr/licenses/jakarta.validation-api-2.0.2.jar.sha1 b/solr/licenses/jakarta.validation-api-2.0.2.jar.sha1
deleted file mode 100644
index 02effb6d04d..00000000000
--- a/solr/licenses/jakarta.validation-api-2.0.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5eacc6522521f7eacb081f95cee1e231648461e7
diff --git a/solr/licenses/jakarta.validation-api-3.0.2.jar.sha1 b/solr/licenses/jakarta.validation-api-3.0.2.jar.sha1
new file mode 100644
index 00000000000..6d12fea0b16
--- /dev/null
+++ b/solr/licenses/jakarta.validation-api-3.0.2.jar.sha1
@@ -0,0 +1 @@
+92b6631659ba35ca09e44874d3eb936edfeee532
diff --git a/solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1 b/solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1
deleted file mode 100644
index 3ba0e5da867..00000000000
--- a/solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1dcb770bce80a490dff49729b99c7a60e9ecb122
diff --git a/solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1 b/solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1
new file mode 100644
index 00000000000..e6e150b95ce
--- /dev/null
+++ b/solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1
@@ -0,0 +1 @@
+15ce10d249a38865b58fc39521f10f29ab0e3363
diff --git a/solr/licenses/javassist-3.29.0-GA.jar.sha1 b/solr/licenses/javassist-3.29.0-GA.jar.sha1
deleted file mode 100644
index fc0df45f52f..00000000000
--- a/solr/licenses/javassist-3.29.0-GA.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d3959fa7e00bf04dbe519228a23213d2afb625d8
diff --git a/solr/licenses/javassist-3.29.2-GA.jar.sha1 b/solr/licenses/javassist-3.29.2-GA.jar.sha1
new file mode 100644
index 00000000000..899154003e6
--- /dev/null
+++ b/solr/licenses/javassist-3.29.2-GA.jar.sha1
@@ -0,0 +1 @@
+6c32028609e5dd4a1b78e10fbcd122b09b3928b1
diff --git a/solr/licenses/jersey-client-2.39.1.jar.sha1 b/solr/licenses/jersey-client-2.39.1.jar.sha1
deleted file mode 100644
index 00277c9f7d1..00000000000
--- a/solr/licenses/jersey-client-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2b1187bf77721c050bf68829918a1b3cd8be904e
diff --git a/solr/licenses/jersey-client-3.1.5.jar.sha1 b/solr/licenses/jersey-client-3.1.5.jar.sha1
new file mode 100644
index 00000000000..507195aaf7c
--- /dev/null
+++ b/solr/licenses/jersey-client-3.1.5.jar.sha1
@@ -0,0 +1 @@
+0015695e853b7583703aff98e543b95fa0ca4553
diff --git a/solr/licenses/jersey-common-2.39.1.jar.sha1 b/solr/licenses/jersey-common-2.39.1.jar.sha1
deleted file mode 100644
index 07ad665cf97..00000000000
--- a/solr/licenses/jersey-common-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-39198bdead74896267646795a7e4b1d86c10e039
diff --git a/solr/licenses/jersey-common-3.1.5.jar.sha1 b/solr/licenses/jersey-common-3.1.5.jar.sha1
new file mode 100644
index 00000000000..a38e8a683bb
--- /dev/null
+++ b/solr/licenses/jersey-common-3.1.5.jar.sha1
@@ -0,0 +1 @@
+7a9edf47631e6588cf24f777f3e7f183d285a9e1
diff --git a/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1 b/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1
deleted file mode 100644
index d8007f1b7e5..00000000000
--- a/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b6575a1bd698708332765c71d0c241823ec4fee0
diff --git a/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1 b/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1
deleted file mode 100644
index ad83808cf8a..00000000000
--- a/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a61d090ed1e7b0c93e905f0826c9eda40bab8717
diff --git a/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1 b/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1
deleted file mode 100644
index 228a887c300..00000000000
--- a/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-333caae8d3581430e6251e57182af1141a72df82
diff --git a/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1 b/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1
deleted file mode 100644
index 2ea9ba15fc0..00000000000
--- a/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2270e8c8b3553fb4b3ac132212642c58f16488f9
diff --git a/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1 b/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1
deleted file mode 100644
index f5517b54d3a..00000000000
--- a/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d6cabcbea3885de33e1b0c96ba02752d92884ea4
diff --git a/solr/licenses/jersey-entity-filtering-3.1.5.jar.sha1 b/solr/licenses/jersey-entity-filtering-3.1.5.jar.sha1
new file mode 100644
index 00000000000..c370f8904e8
--- /dev/null
+++ b/solr/licenses/jersey-entity-filtering-3.1.5.jar.sha1
@@ -0,0 +1 @@
+41db0cc4323314888205b71aaca96ec81d25e14e
diff --git a/solr/licenses/jersey-hk2-2.39.1.jar.sha1 b/solr/licenses/jersey-hk2-2.39.1.jar.sha1
deleted file mode 100644
index 238b6ba9232..00000000000
--- a/solr/licenses/jersey-hk2-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-992005ae2e8ec3b215b2daa788c09eb902ef814b
diff --git a/solr/licenses/jersey-hk2-3.1.5.jar.sha1 b/solr/licenses/jersey-hk2-3.1.5.jar.sha1
new file mode 100644
index 00000000000..234150c8b99
--- /dev/null
+++ b/solr/licenses/jersey-hk2-3.1.5.jar.sha1
@@ -0,0 +1 @@
+9ecb5339c3de02e5939c72657e74e2c5fdeb71c8
diff --git a/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1 b/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1
deleted file mode 100644
index 6c5eac2da7c..00000000000
--- a/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-8285a8c287866e22c06f42ba3ae4170ff931be18
diff --git a/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1 b/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1
deleted file mode 100644
index ec34674ec6d..00000000000
--- a/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3520363b7ac30d97ece9a6ae188c0d343cbad691
diff --git a/solr/licenses/jersey-media-json-jackson-3.1.5.jar.sha1 b/solr/licenses/jersey-media-json-jackson-3.1.5.jar.sha1
new file mode 100644
index 00000000000..a01b86a02b6
--- /dev/null
+++ b/solr/licenses/jersey-media-json-jackson-3.1.5.jar.sha1
@@ -0,0 +1 @@
+d6c428cac70dbc54a235d4b285fe21651e5f02a0
diff --git a/solr/licenses/jersey-server-2.39.1.jar.sha1 b/solr/licenses/jersey-server-2.39.1.jar.sha1
deleted file mode 100644
index ab9b47e3450..00000000000
--- a/solr/licenses/jersey-server-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-62324128215827bd646ddaac8f26cb2bdfe8e999
diff --git a/solr/licenses/jersey-server-3.1.5.jar.sha1 b/solr/licenses/jersey-server-3.1.5.jar.sha1
new file mode 100644
index 00000000000..5eb0c8fe943
--- /dev/null
+++ b/solr/licenses/jersey-server-3.1.5.jar.sha1
@@ -0,0 +1 @@
+30dd9ec9bdb832f7223e293e1f367c695506cad1
diff --git a/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1 b/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1
deleted file mode 100644
index ef71f9a1a63..00000000000
--- a/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f42fd388041b5afe9284fae7b368bf1ac0e30caf
diff --git a/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1 b/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1
deleted file mode 100644
index 968fbaf41e2..00000000000
--- a/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-fcf8d4c4be70ae6cfb5a95fe67686267f39de1de
diff --git a/solr/licenses/junit-jupiter-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-5.9.1.jar.sha1
deleted file mode 100644
index 08e99f5789e..00000000000
--- a/solr/licenses/junit-jupiter-5.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9274d3757e224bc02eae367bd481062a263c150b
diff --git a/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1
deleted file mode 100644
index 7735f632280..00000000000
--- a/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-7bb53fbc0173e9f6a9d21d58297af94b1f2f9ce1
diff --git a/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1
deleted file mode 100644
index f4d83b9a976..00000000000
--- a/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1bf771097bde296c3ab174861954e8aafaaf2e94
diff --git a/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1
deleted file mode 100644
index c2bcc47b3c9..00000000000
--- a/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ffcd1013edaeee112be11fcddeb38882d79238de
diff --git a/solr/licenses/junit-platform-commons-1.9.1.jar.sha1 b/solr/licenses/junit-platform-commons-1.9.1.jar.sha1
deleted file mode 100644
index b2c2116cf63..00000000000
--- a/solr/licenses/junit-platform-commons-1.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3145f821b5cd10abcdc5f925baa5fffa6f1b628f
diff --git a/solr/licenses/junit-platform-engine-1.9.1.jar.sha1 b/solr/licenses/junit-platform-engine-1.9.1.jar.sha1
deleted file mode 100644
index b927d3730e8..00000000000
--- a/solr/licenses/junit-platform-engine-1.9.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-83591e5089d6cea5f324aa3ecca9b19d5a275803
diff --git a/solr/licenses/opentest4j-1.2.0.jar.sha1 b/solr/licenses/opentest4j-1.2.0.jar.sha1
deleted file mode 100644
index 1d8cede8888..00000000000
--- a/solr/licenses/opentest4j-1.2.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-28c11eb91f9b6d8e200631d46e20a7f407f2a046
diff --git a/solr/licenses/opentest4j-LICENSE-ASL.txt b/solr/licenses/opentest4j-LICENSE-ASL.txt
deleted file mode 100644
index 8dada3edaf5..00000000000
--- a/solr/licenses/opentest4j-LICENSE-ASL.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed 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.
diff --git a/solr/licenses/opentest4j-NOTICE.txt b/solr/licenses/opentest4j-NOTICE.txt
deleted file mode 100644
index c84bc566aa3..00000000000
--- a/solr/licenses/opentest4j-NOTICE.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2015-2023 the original author or authors.
-
-Licensed 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.
\ No newline at end of file
diff --git a/solr/licenses/swagger-annotations-2.2.17.jar.sha1 b/solr/licenses/swagger-annotations-2.2.17.jar.sha1
deleted file mode 100644
index 4111ef52c0f..00000000000
--- a/solr/licenses/swagger-annotations-2.2.17.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ee67ccee6a9d84831f0fdd635021e7e00439fecd
diff --git a/solr/licenses/swagger-annotations-jakarta-2.2.17.jar.sha1 b/solr/licenses/swagger-annotations-jakarta-2.2.17.jar.sha1
new file mode 100644
index 00000000000..e66f1ffa15a
--- /dev/null
+++ b/solr/licenses/swagger-annotations-jakarta-2.2.17.jar.sha1
@@ -0,0 +1 @@
+f514290a1dc3ad3ba9f376cde9a6e8e85f5ab628
diff --git a/versions.lock b/versions.lock
index be3a4faf5b2..6faa27e5ec9 100644
--- a/versions.lock
+++ b/versions.lock
@@ -6,13 +6,13 @@ com.carrotsearch:hppc:0.9.1 (2 constraints: ad0fc9a6)
 com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.1 (2 constraints: cf1501e2)
 com.cybozu.labs:langdetect:1.1-20120112 (1 constraints: 5c066d5e)
 com.epam:parso:2.0.14 (1 constraints: 8e0c750e)
-com.fasterxml.jackson:jackson-bom:2.16.1 (12 constraints: 4ef8c555)
-com.fasterxml.jackson.core:jackson-annotations:2.16.1 (10 constraints: 9cbe7917)
-com.fasterxml.jackson.core:jackson-core:2.16.1 (13 constraints: 4302f528)
-com.fasterxml.jackson.core:jackson-databind:2.16.1 (18 constraints: 8d63998e)
+com.fasterxml.jackson:jackson-bom:2.16.1 (12 constraints: a2fcae61)
+com.fasterxml.jackson.core:jackson-annotations:2.16.1 (10 constraints: f3c2f2fe)
+com.fasterxml.jackson.core:jackson-core:2.16.1 (13 constraints: 97063bf8)
+com.fasterxml.jackson.core:jackson-databind:2.16.1 (18 constraints: e46762e8)
 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.16.1 (2 constraints: 631c9cf1)
 com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.16.1 (1 constraints: ba0ead66)
-com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.16.1 (2 constraints: a724cce0)
+com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.16.1 (2 constraints: aa24d1e0)
 com.fasterxml.woodstox:woodstox-core:6.5.1 (2 constraints: a0239c84)
 com.github.ben-manes.caffeine:caffeine:3.1.8 (1 constraints: 0e050536)
 com.github.jai-imageio:jai-imageio-core:1.4.0 (1 constraints: 5c0ced01)
@@ -155,12 +155,13 @@ io.prometheus:simpleclient:0.16.0 (3 constraints: 9d257513)
 io.prometheus:simpleclient_common:0.16.0 (1 constraints: 1a1139c0)
 io.prometheus:simpleclient_httpserver:0.16.0 (1 constraints: 3905353b)
 io.sgr:s2-geometry-library-java:1.0.0 (1 constraints: b0107fb9)
-io.swagger.core.v3:swagger-annotations:2.2.17 (1 constraints: 3e053a3b)
+io.swagger.core.v3:swagger-annotations-jakarta:2.2.17 (1 constraints: 3e053a3b)
 jakarta.activation:jakarta.activation-api:1.2.2 (1 constraints: 8e0f4791)
-jakarta.annotation:jakarta.annotation-api:1.3.5 (4 constraints: d740f9a9)
-jakarta.validation:jakarta.validation-api:2.0.2 (1 constraints: fd10b6c3)
-jakarta.ws.rs:jakarta.ws.rs-api:2.1.6 (10 constraints: c1cce3ec)
-jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 (5 constraints: c45d665e)
+jakarta.annotation:jakarta.annotation-api:2.1.1 (4 constraints: c94095a4)
+jakarta.inject:jakarta.inject-api:2.0.1 (5 constraints: 1d49b79e)
+jakarta.validation:jakarta.validation-api:3.0.2 (1 constraints: fe10bbc3)
+jakarta.ws.rs:jakarta.ws.rs-api:3.1.0 (6 constraints: 7365f954)
+jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 (3 constraints: 882a5cbd)
 javax.measure:unit-api:1.0 (5 constraints: 8e3e2cc5)
 joda-time:joda-time:2.8.1 (3 constraints: d61aef93)
 junit:junit:4.13.2 (7 constraints: 136d2cb8)
@@ -308,26 +309,25 @@ org.eclipse.jetty.http2:http2-server:10.0.19 (1 constraints: 6d059540)
 org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 (4 constraints: 883053bf)
 org.gagravarr:vorbis-java-core:0.8 (1 constraints: 010c57e9)
 org.gagravarr:vorbis-java-tika:0.8 (1 constraints: 010c57e9)
-org.glassfish.hk2:hk2-api:2.6.1 (2 constraints: 7811f501)
-org.glassfish.hk2:hk2-locator:2.6.1 (1 constraints: 4410e0ad)
-org.glassfish.hk2:hk2-utils:2.6.1 (2 constraints: 21173277)
-org.glassfish.hk2:osgi-resource-locator:1.0.3 (2 constraints: 7d23b265)
-org.glassfish.hk2.external:aopalliance-repackaged:2.6.1 (2 constraints: 21173277)
-org.glassfish.hk2.external:jakarta.inject:2.6.1 (11 constraints: 2cbae60f)
+org.glassfish.hk2:hk2-api:3.0.5 (2 constraints: 7611bd01)
+org.glassfish.hk2:hk2-locator:3.0.5 (1 constraints: 4310d7ad)
+org.glassfish.hk2:hk2-utils:3.0.5 (2 constraints: 1f17fa76)
+org.glassfish.hk2:osgi-resource-locator:1.0.3 (1 constraints: ef10e7c2)
+org.glassfish.hk2.external:aopalliance-repackaged:3.0.5 (2 constraints: 1f17fa76)
 org.glassfish.jaxb:jaxb-runtime:2.3.8 (2 constraints: 23175d5b)
 org.glassfish.jaxb:txw2:2.3.8 (1 constraints: c20dba35)
 org.glassfish.jersey.containers:jersey-container-jetty-http:2.39.1 (1 constraints: 4105533b)
-org.glassfish.jersey.core:jersey-client:2.39.1 (1 constraints: 381109d5)
-org.glassfish.jersey.core:jersey-common:2.39.1 (11 constraints: 14e24daa)
-org.glassfish.jersey.core:jersey-server:2.39.1 (7 constraints: cba0adfa)
-org.glassfish.jersey.ext:jersey-entity-filtering:2.39.1 (1 constraints: f5152ce9)
-org.glassfish.jersey.inject:jersey-hk2:2.39.1 (1 constraints: 4105533b)
-org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1 (1 constraints: 4105533b)
-org.hamcrest:hamcrest:2.2 (5 constraints: 125db3af)
+org.glassfish.jersey.core:jersey-client:3.1.5 (1 constraints: 0211c1c3)
+org.glassfish.jersey.core:jersey-common:3.1.5 (6 constraints: 306670c3)
+org.glassfish.jersey.core:jersey-server:3.1.5 (2 constraints: 451ee640)
+org.glassfish.jersey.ext:jersey-entity-filtering:3.1.5 (1 constraints: bf1527d3)
+org.glassfish.jersey.inject:jersey-hk2:3.1.5 (1 constraints: 0b050236)
+org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5 (1 constraints: 0b050236)
+org.hamcrest:hamcrest:2.2 (3 constraints: 7620ce25)
 org.hamcrest:hamcrest-core:2.2 (1 constraints: cc05fe3f)
 org.immutables:value-annotations:2.10.0 (1 constraints: 35052f3b)
 org.itadaki:bzip2:0.9.1 (2 constraints: bd0c4b2c)
-org.javassist:javassist:3.29.0-GA (1 constraints: 2e1126f1)
+org.javassist:javassist:3.29.2-GA (1 constraints: 30112ef1)
 org.jctools:jctools-core:4.0.1 (1 constraints: 07050036)
 org.jdom:jdom2:2.0.6.1 (1 constraints: be0c371b)
 org.jetbrains:annotations:13.0 (1 constraints: df0e795c)
@@ -409,7 +409,7 @@ io.github.microutils:kotlin-logging:3.0.5 (1 constraints: be0ea162)
 io.github.microutils:kotlin-logging-jvm:3.0.5 (1 constraints: 810f8b7c)
 io.micrometer:micrometer-core:1.9.12 (1 constraints: fe162919)
 io.opentracing:opentracing-mock:0.33.0 (1 constraints: 3805343b)
-jakarta.servlet:jakarta.servlet-api:4.0.4 (4 constraints: 5b6ed66b)
+jakarta.servlet:jakarta.servlet-api:4.0.4 (1 constraints: 961568b9)
 jakarta.websocket:jakarta.websocket-api:1.1.2 (1 constraints: 92155ab9)
 javax.inject:javax.inject:1 (1 constraints: 7a0df617)
 net.bytebuddy:byte-buddy:1.14.10 (1 constraints: 710bb0e9)
@@ -430,32 +430,13 @@ org.bouncycastle:bcpkix-jdk18on:1.77 (1 constraints: e3040431)
 org.bouncycastle:bcprov-jdk18on:1.77 (2 constraints: c51a825c)
 org.bouncycastle:bcutil-jdk18on:1.77 (1 constraints: 620d2d29)
 org.freemarker:freemarker:2.3.32 (1 constraints: f00e9371)
-org.glassfish.grizzly:grizzly-framework:2.4.4 (1 constraints: 670fe271)
-org.glassfish.grizzly:grizzly-http:2.4.4 (1 constraints: 2b127cf5)
-org.glassfish.grizzly:grizzly-http-server:2.4.4 (2 constraints: bb2c391b)
-org.glassfish.grizzly:grizzly-http-servlet:2.4.4 (1 constraints: 681bda3f)
-org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.39.1 (2 constraints: 283f089c)
-org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:2.39.1 (1 constraints: 8c230a01)
-org.glassfish.jersey.containers:jersey-container-servlet:2.39.1 (1 constraints: 9d1b845b)
-org.glassfish.jersey.containers:jersey-container-servlet-core:2.39.1 (2 constraints: 66329628)
-org.glassfish.jersey.media:jersey-media-jaxb:2.39.1 (1 constraints: 441ab3fe)
-org.glassfish.jersey.test-framework:jersey-test-framework-core:2.39.1 (2 constraints: cc283b2f)
-org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.39.1 (1 constraints: 4105533b)
 org.hdrhistogram:HdrHistogram:2.1.12 (1 constraints: 520d2029)
 org.hsqldb:hsqldb:2.7.2 (1 constraints: 0d050c36)
 org.jetbrains.kotlin:kotlin-reflect:1.8.22 (2 constraints: 6624c1e2)
-org.junit:junit-bom:5.9.1 (6 constraints: 526217ff)
-org.junit.jupiter:junit-jupiter:5.9.1 (3 constraints: 844699a3)
-org.junit.jupiter:junit-jupiter-api:5.9.1 (4 constraints: 8b386434)
-org.junit.jupiter:junit-jupiter-engine:5.9.1 (2 constraints: 2117d63c)
-org.junit.jupiter:junit-jupiter-params:5.9.1 (2 constraints: 2117d63c)
-org.junit.platform:junit-platform-commons:1.9.1 (3 constraints: ee29f32b)
-org.junit.platform:junit-platform-engine:1.9.1 (2 constraints: bc19e1f3)
 org.latencyutils:LatencyUtils:2.0.3 (1 constraints: 210dcd1b)
 org.mockito:mockito-core:5.8.0 (2 constraints: dc11f5fd)
 org.mockito:mockito-subclass:5.8.0 (1 constraints: 0f051c36)
 org.objenesis:objenesis:3.3 (1 constraints: b20a14bd)
-org.opentest4j:opentest4j:1.2.0 (2 constraints: cd205b49)
 org.springframework:spring-aop:5.3.28 (2 constraints: de1e8f9a)
 org.springframework:spring-beans:5.3.28 (4 constraints: b03ac3c9)
 org.springframework:spring-context:5.3.28 (2 constraints: 6f1fced2)
diff --git a/versions.props b/versions.props
index c1ce6e4d6ac..838649267fa 100644
--- a/versions.props
+++ b/versions.props
@@ -29,7 +29,7 @@ io.opentelemetry:opentelemetry-bom=1.31.0
 io.opentracing:*=0.33.0
 io.prometheus:*=0.16.0
 io.swagger.core.v3:*=2.2.17
-jakarta.ws.rs:jakarta.ws.rs-api=2.1.6
+jakarta.ws.rs:jakarta.ws.rs-api=3.1.0
 junit:junit=4.13.2
 net.sourceforge.argparse4j:argparse4j=0.9.0
 net.thisptr:jackson-jq=0.0.13
@@ -60,8 +60,10 @@ org.carrot2:carrot2-core=4.5.1
 org.codehaus.woodstox:stax2-api=4.2.2
 org.eclipse.jetty*:*=10.0.19
 org.eclipse.jetty.toolchain:jetty-servlet-api=4.0.6
-org.glassfish.hk2*:*=2.6.1
-org.glassfish.jersey*:*=2.39.1
+org.glassfish.hk2*:*=3.0.5
+org.glassfish.hk2.external:jakarta.inject=2.6.1
+org.glassfish.jersey*:*=3.1.5
+org.glassfish.jersey.containers:jersey-container-jetty-http=2.39.1
 org.hamcrest:*=2.2
 org.hsqldb:hsqldb=2.7.2
 org.immutables:value-annotations=2.10.0