This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 8e62c268688 SOLR-18234: Moved packagemanager CLI stuff to a CLI
package (#5018)
8e62c268688 is described below
commit 8e62c2686882aa704480ab13b6a60ee8f7b5c8af
Author: Jalaz Kumar <[email protected]>
AuthorDate: Fri Oct 9 20:30:55 2026 +0530
SOLR-18234: Moved packagemanager CLI stuff to a CLI package (#5018)
and stop test-framework from depending on CLI.
---
.../SOLR-18234-solr-cli-detangle-core.yml | 9 +++++++
.../org/apache/solr/cli/PackageSubCommand.java | 4 ++--
.../src/java/org/apache/solr/cli/PackageTool.java | 16 ++++++-------
.../src/java/org/apache/solr/cli/ZkCpTool.java | 2 +-
.../src/java/org/apache/solr/cli/ZkMkrootTool.java | 2 +-
.../src/java/org/apache/solr/cli/ZkMvTool.java | 2 +-
.../packagemanager/DefaultPackageRepository.java | 2 +-
.../{ => cli}/packagemanager/PackageManager.java | 10 ++++----
.../packagemanager/PackageRepository.java | 2 +-
.../{ => cli}/packagemanager/PackageUtils.java | 4 ++--
.../packagemanager/RepositoryManager.java | 8 +++----
.../solr/{ => cli}/packagemanager/SolrPackage.java | 2 +-
.../packagemanager/SolrPackageInstance.java | 6 ++---
.../{ => cli}/packagemanager/package-info.java | 2 +-
.../solr/{cloud => cli}/SolrCloudExampleTest.java | 11 ++-------
.../packagemanager/TestPackageManager.java | 2 +-
.../solr/filestore/TestDistribFileStore.java | 9 +++++--
.../solr/security/BasicAuthIntegrationTest.java | 13 +++++-----
solr/test-framework/build.gradle | 4 +---
solr/test-framework/gradle.lockfile | 4 ++--
.../solr/cloud/AbstractFullDistribZkTestBase.java | 28 +++++++++-------------
21 files changed, 71 insertions(+), 71 deletions(-)
diff --git a/changelog/unreleased/SOLR-18234-solr-cli-detangle-core.yml
b/changelog/unreleased/SOLR-18234-solr-cli-detangle-core.yml
new file mode 100644
index 00000000000..276cf5861ff
--- /dev/null
+++ b/changelog/unreleased/SOLR-18234-solr-cli-detangle-core.yml
@@ -0,0 +1,9 @@
+title:
+ Move packagemanager under CLI and stop test-framework from depending on CLI
+type: other
+authors:
+ - name: Jalaz Kumar
+ nick: jaykay12
+links:
+ - name: SOLR-18234
+ url: https://issues.apache.org/jira/browse/SOLR-18234
diff --git a/solr/core/src/java/org/apache/solr/cli/PackageSubCommand.java
b/solr/core/src/java/org/apache/solr/cli/PackageSubCommand.java
index 9b8130227af..0b4b35e7e07 100644
--- a/solr/core/src/java/org/apache/solr/cli/PackageSubCommand.java
+++ b/solr/core/src/java/org/apache/solr/cli/PackageSubCommand.java
@@ -18,8 +18,8 @@
package org.apache.solr.cli;
import org.apache.commons.cli.CommandLine;
-import org.apache.solr.packagemanager.PackageManager;
-import org.apache.solr.packagemanager.RepositoryManager;
+import org.apache.solr.cli.packagemanager.PackageManager;
+import org.apache.solr.cli.packagemanager.RepositoryManager;
/** Shared picocli wiring for {@code bin/solr package <subcommand> leaves} */
@SuppressWarnings("UnnecessarilyFullyQualified")
diff --git a/solr/core/src/java/org/apache/solr/cli/PackageTool.java
b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
index 5e7ebe39a9d..c1ef0a086d9 100644
--- a/solr/core/src/java/org/apache/solr/cli/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
@@ -18,8 +18,8 @@ package org.apache.solr.cli;
import static org.apache.solr.cli.SolrCLI.printGreen;
import static org.apache.solr.cli.SolrCLI.printRed;
-import static org.apache.solr.packagemanager.PackageUtils.format;
-import static org.apache.solr.packagemanager.PackageUtils.formatGreen;
+import static org.apache.solr.cli.packagemanager.PackageUtils.format;
+import static org.apache.solr.cli.packagemanager.PackageUtils.formatGreen;
import java.lang.invoke.MethodHandles;
import java.nio.file.Files;
@@ -33,16 +33,16 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.lucene.util.SuppressForbidden;
+import org.apache.solr.cli.packagemanager.PackageManager;
+import org.apache.solr.cli.packagemanager.PackageUtils;
+import org.apache.solr.cli.packagemanager.RepositoryManager;
+import org.apache.solr.cli.packagemanager.SolrPackage;
+import org.apache.solr.cli.packagemanager.SolrPackage.SolrPackageRelease;
+import org.apache.solr.cli.packagemanager.SolrPackageInstance;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.util.Pair;
-import org.apache.solr.packagemanager.PackageManager;
-import org.apache.solr.packagemanager.PackageUtils;
-import org.apache.solr.packagemanager.RepositoryManager;
-import org.apache.solr.packagemanager.SolrPackage;
-import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
-import org.apache.solr.packagemanager.SolrPackageInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java
b/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java
index 7d8959f8eec..0798a168245 100644
--- a/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java
@@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;
-import static org.apache.solr.packagemanager.PackageUtils.format;
+import static org.apache.solr.cli.packagemanager.PackageUtils.format;
import java.lang.invoke.MethodHandles;
import java.lang.reflect.InvocationTargetException;
diff --git a/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java
b/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java
index ee0225694fe..317bd7965b4 100644
--- a/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java
@@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;
-import static org.apache.solr.packagemanager.PackageUtils.format;
+import static org.apache.solr.cli.packagemanager.PackageUtils.format;
import java.lang.invoke.MethodHandles;
import java.util.concurrent.TimeUnit;
diff --git a/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java
b/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java
index 8a0db12b037..08eea82044c 100644
--- a/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java
@@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;
-import static org.apache.solr.packagemanager.PackageUtils.format;
+import static org.apache.solr.cli.packagemanager.PackageUtils.format;
import java.lang.invoke.MethodHandles;
import java.util.Locale;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/DefaultPackageRepository.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/DefaultPackageRepository.java
similarity index 98%
rename from
solr/core/src/java/org/apache/solr/packagemanager/DefaultPackageRepository.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/DefaultPackageRepository.java
index 8fbbfbbd347..2cf7416ae27 100644
---
a/solr/core/src/java/org/apache/solr/packagemanager/DefaultPackageRepository.java
+++
b/solr/core/src/java/org/apache/solr/cli/packagemanager/DefaultPackageRepository.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageManager.java
similarity index 99%
rename from
solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/PackageManager.java
index e344f8ec35d..7db659bbca1 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
+++ b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageManager.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
-import static org.apache.solr.packagemanager.PackageUtils.getMapper;
+import static org.apache.solr.cli.packagemanager.PackageUtils.getMapper;
import com.jayway.jsonpath.InvalidPathException;
import com.jayway.jsonpath.JsonPath;
@@ -41,6 +41,9 @@ import java.util.stream.Collectors;
import org.apache.solr.cli.CLIUtils;
import org.apache.solr.cli.SolrCLI;
import org.apache.solr.cli.ToolRuntime;
+import org.apache.solr.cli.packagemanager.SolrPackage.Command;
+import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
+import org.apache.solr.cli.packagemanager.SolrPackage.Plugin;
import org.apache.solr.client.api.util.SolrVersion;
import org.apache.solr.client.solrj.RemoteSolrException;
import org.apache.solr.client.solrj.SolrClient;
@@ -64,9 +67,6 @@ import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.filestore.DistribFileStore;
import org.apache.solr.handler.admin.ContainerPluginsApi;
-import org.apache.solr.packagemanager.SolrPackage.Command;
-import org.apache.solr.packagemanager.SolrPackage.Manifest;
-import org.apache.solr.packagemanager.SolrPackage.Plugin;
import org.apache.solr.pkg.SolrPackageLoader;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/PackageRepository.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageRepository.java
similarity index 97%
rename from
solr/core/src/java/org/apache/solr/packagemanager/PackageRepository.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/PackageRepository.java
index e791a49e542..2586ee600d6 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageRepository.java
+++
b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageRepository.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import java.io.IOException;
import java.nio.file.Path;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageUtils.java
similarity index 99%
rename from solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/PackageUtils.java
index c97bdab3123..35fdc24d97d 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
+++ b/solr/core/src/java/org/apache/solr/cli/packagemanager/PackageUtils.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import static
org.apache.solr.client.solrj.util.SolrIdentifierValidator.validateCollectionName;
@@ -35,6 +35,7 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.io.IOUtils;
import org.apache.solr.cli.CLIUtils;
+import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
import org.apache.solr.client.api.model.UploadToFileStoreResponse;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
@@ -50,7 +51,6 @@ import org.apache.solr.common.util.Utils;
import org.apache.solr.filestore.ClusterFileStore;
import org.apache.solr.filestore.DistribFileStore;
import org.apache.solr.filestore.FileStoreAPI;
-import org.apache.solr.packagemanager.SolrPackage.Manifest;
import org.apache.solr.util.SolrJacksonAnnotationInspector;
import org.apache.zookeeper.server.ByteBufferInputStream;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/RepositoryManager.java
similarity index 98%
rename from
solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/RepositoryManager.java
index 29a86c75e0a..64af782131f 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
+++
b/solr/core/src/java/org/apache/solr/cli/packagemanager/RepositoryManager.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
-import static org.apache.solr.packagemanager.PackageUtils.getMapper;
+import static org.apache.solr.cli.packagemanager.PackageUtils.getMapper;
import java.io.IOException;
import java.io.InputStream;
@@ -37,6 +37,8 @@ import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.solr.cli.ToolRuntime;
+import org.apache.solr.cli.packagemanager.SolrPackage.Artifact;
+import org.apache.solr.cli.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.client.api.util.SolrVersion;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
@@ -53,8 +55,6 @@ import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.Utils;
import org.apache.solr.filestore.ClusterFileStore;
-import org.apache.solr.packagemanager.SolrPackage.Artifact;
-import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.pkg.PackageAPI;
import org.apache.solr.pkg.SolrPackageLoader;
import org.apache.zookeeper.KeeperException;
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackage.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackage.java
similarity index 98%
rename from solr/core/src/java/org/apache/solr/packagemanager/SolrPackage.java
rename to solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackage.java
index 750a23d2162..f57c5713dd2 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackage.java
+++ b/solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackage.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import java.util.Date;
import java.util.List;
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageInstance.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackageInstance.java
similarity index 93%
rename from
solr/core/src/java/org/apache/solr/packagemanager/SolrPackageInstance.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackageInstance.java
index fd94bc8572f..040de2babc4 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageInstance.java
+++
b/solr/core/src/java/org/apache/solr/cli/packagemanager/SolrPackageInstance.java
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
+import org.apache.solr.cli.packagemanager.SolrPackage.Plugin;
import org.apache.solr.common.annotation.JsonProperty;
import org.apache.solr.common.util.ReflectMapWriter;
-import org.apache.solr.packagemanager.SolrPackage.Manifest;
-import org.apache.solr.packagemanager.SolrPackage.Plugin;
/** Describes one instance of a package as it exists in Solr when installed. */
public class SolrPackageInstance implements ReflectMapWriter {
diff --git
a/solr/core/src/java/org/apache/solr/packagemanager/package-info.java
b/solr/core/src/java/org/apache/solr/cli/packagemanager/package-info.java
similarity index 95%
rename from solr/core/src/java/org/apache/solr/packagemanager/package-info.java
rename to
solr/core/src/java/org/apache/solr/cli/packagemanager/package-info.java
index 1fa175dec4b..0a42a28f435 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/package-info.java
+++ b/solr/core/src/java/org/apache/solr/cli/packagemanager/package-info.java
@@ -16,4 +16,4 @@
*/
/** This package contains Package Manager (CLI) implementation */
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
b/solr/core/src/test/org/apache/solr/cli/SolrCloudExampleTest.java
similarity index 95%
rename from solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
rename to solr/core/src/test/org/apache/solr/cli/SolrCloudExampleTest.java
index c7a6e70ef29..a9b680c207f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/SolrCloudExampleTest.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.cloud;
+package org.apache.solr.cli;
import java.lang.invoke.MethodHandles;
import java.nio.file.Files;
@@ -23,16 +23,9 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.apache.commons.cli.CommandLine;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.cli.CLITestHelper;
-import org.apache.solr.cli.CLIUtils;
-import org.apache.solr.cli.CreateTool;
-import org.apache.solr.cli.DeleteTool;
-import org.apache.solr.cli.HealthcheckTool;
-import org.apache.solr.cli.PostTool;
-import org.apache.solr.cli.SolrCLI;
-import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.client.solrj.request.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.util.ExternalPaths;
import org.junit.Test;
diff --git
a/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java
b/solr/core/src/test/org/apache/solr/cli/packagemanager/TestPackageManager.java
similarity index 98%
rename from
solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java
rename to
solr/core/src/test/org/apache/solr/cli/packagemanager/TestPackageManager.java
index 4d6bedf078a..2793af1641d 100644
--- a/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java
+++
b/solr/core/src/test/org/apache/solr/cli/packagemanager/TestPackageManager.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.packagemanager;
+package org.apache.solr.cli.packagemanager;
import com.jayway.jsonpath.InvalidPathException;
import java.io.IOException;
diff --git
a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
index 133116e6908..7a6affe1b9e 100644
--- a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
+++ b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
@@ -50,7 +50,6 @@ import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.SuppressForbidden;
import org.apache.solr.common.util.Utils;
import org.apache.solr.embedded.JettySolrRunner;
-import org.apache.solr.packagemanager.PackageUtils;
import org.apache.solr.util.LogLevel;
import org.apache.zookeeper.server.ByteBufferInputStream;
import org.junit.Before;
@@ -330,7 +329,13 @@ public class TestDistribFileStore extends
SolrCloudTestCase {
public static void uploadKey(byte[] bytes, String path, MiniSolrCloudCluster
cluster)
throws Exception {
JettySolrRunner jetty = cluster.getRandomJetty(random());
- PackageUtils.uploadKey(bytes, path,
jetty.getCoreContainer().getSolrHome());
+
+ FileStoreAPI.MetaData metaData =
ClusterFileStore._createJsonMetaData(bytes, null);
+ DistribFileStore._persistToFile(
+ jetty.getCoreContainer().getSolrHome(),
+ path,
+ ByteBuffer.wrap(bytes),
+ ByteBuffer.wrap(Utils.toJSON(metaData)));
final var syncReq = new FileStoreApi.SyncFile(path);
final var syncRsp = syncReq.process(jetty.getSolrClient());
diff --git
a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
index 71c1da0c463..7ce0630de81 100644
--- a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
@@ -25,16 +25,16 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
-import org.apache.solr.cli.CLITestHelper;
-import org.apache.solr.cli.StatusTool;
import org.apache.solr.client.solrj.RemoteSolrException;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.jetty.HttpJettySolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.GenericSolrRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import
org.apache.solr.client.solrj.request.RequestWriter.StringPayloadContentWriter;
+import org.apache.solr.client.solrj.request.SystemInfoRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.request.V2Request;
import org.apache.solr.client.solrj.request.beans.PluginMeta;
@@ -283,10 +283,11 @@ public class BasicAuthIntegrationTest extends
SolrCloudAuthTestCase {
verifySecurityStatus(httpClient, baseUrl + "/admin/info/key", "key",
NOT_NULL_PREDICATE, 20);
assertAuthMetricsMinimums(17, 8, 8, 1, 0, 0);
- String[] toolArgs = new String[] {"status", "--solr-url", baseUrl};
- int res = CLITestHelper.runTool(toolArgs, StatusTool.class);
- if (res == 0) {
- fail("Request should have failed because of missing auth");
+ try (SolrClient unauthorizedClient = new
HttpJettySolrClient.Builder(baseUrl).build()) {
+ RemoteSolrException statusExp =
+ expectThrows(
+ RemoteSolrException.class, () -> new
SystemInfoRequest().process(unauthorizedClient));
+ assertEquals(401, statusExp.code());
}
SolrParams params = new MapSolrParams(Map.of("q", "*:*"));
diff --git a/solr/test-framework/build.gradle b/solr/test-framework/build.gradle
index aa4114f3c96..ff9e87339db 100644
--- a/solr/test-framework/build.gradle
+++ b/solr/test-framework/build.gradle
@@ -60,9 +60,7 @@ dependencies {
implementation libs.slf4j.api
implementation libs.apache.log4j.api
implementation libs.apache.log4j.core
- implementation libs.commonscli.commonscli
- // Needed on the compile classpath because this project compiles against
annotated org.apache.solr.cli types
- implementation libs.picocli
+
implementation libs.opentelemetry.api
implementation(libs.opentelemetry.exporter.prometheus) {
transitive = false // most things don't want or already have
diff --git a/solr/test-framework/gradle.lockfile
b/solr/test-framework/gradle.lockfile
index e980dd6d4e7..8802fb667e4 100644
--- a/solr/test-framework/gradle.lockfile
+++ b/solr/test-framework/gradle.lockfile
@@ -32,10 +32,10 @@
com.google.protobuf:protobuf-java:4.36.2=annotationProcessor,errorprone,testAnno
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,testRuntimeClasspath
com.jayway.jsonpath:json-path:3.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,testRuntimeClasspath
-commons-cli:commons-cli:1.11.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+commons-cli:commons-cli:1.11.0=jarValidation,runtimeClasspath,testRuntimeClasspath
commons-codec:commons-codec:1.22.1=jarValidation,runtimeClasspath,testRuntimeClasspath
commons-io:commons-io:2.22.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
-info.picocli:picocli:4.7.6=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+info.picocli:picocli:4.7.6=jarValidation,runtimeClasspath,testRuntimeClasspath
io.dropwizard.metrics:metrics-core:4.2.39=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.github.eisop:dataflow-errorprone:3.41.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor
io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
index 0b8e194abc7..d774bb92efd 100644
---
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
+++
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
@@ -49,10 +49,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import org.apache.solr.BaseDistributedSearchTestCase;
-import org.apache.solr.cli.ConfigSetUploadTool;
-import org.apache.solr.cli.DefaultToolRuntime;
-import org.apache.solr.cli.SolrCLI;
-import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrRequest.METHOD;
@@ -100,6 +96,7 @@ import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.TimeSource;
import org.apache.solr.common.util.Utils;
+import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.Diagnostics;
import org.apache.solr.core.MockDirectoryFactory;
@@ -2224,19 +2221,16 @@ public abstract class AbstractFullDistribZkTestBase
extends BaseDistributedSearc
Path configSetDir, String srcConfigSet, String dstConfigName, String
zkAddr)
throws Exception {
- Path fullConfDir = configSetDir.resolve(srcConfigSet);
- String[] args =
- new String[] {
- "--conf-name", dstConfigName,
- "--conf-dir", fullConfDir.toAbsolutePath().toString(),
- "-z", zkAddr
- };
-
- ToolRuntime runtime = new DefaultToolRuntime();
- ConfigSetUploadTool tool = new ConfigSetUploadTool(runtime);
-
- int res = tool.runTool(SolrCLI.processCommandLineArgs(tool, args));
- assertEquals("Tool should have returned 0 for success, returned: " + res,
0, res);
+ Path confPath =
+ ConfigSetService.getConfigsetPath(
+ configSetDir.resolve(srcConfigSet).toString(),
configSetDir.toString());
+ try (SolrZkClient zkClient =
+ new SolrZkClient.Builder()
+ .withUrl(zkAddr)
+ .withTimeout(AbstractZkTestCase.TIMEOUT, TimeUnit.MILLISECONDS)
+ .build()) {
+ zkClient.upConfig(confPath, dstConfigName);
+ }
}
@Override