diff --git a/changelog/unreleased/SOLR-18234-solr-cli-reorganise.yml b/changelog/unreleased/SOLR-18234-solr-cli-reorganise.yml new file mode 100644 index 000000000000..90f0a6c04a66 --- /dev/null +++ b/changelog/unreleased/SOLR-18234-solr-cli-reorganise.yml @@ -0,0 +1,8 @@ +title: Reorganize org.apache.solr.cli into domain-based sub-packages +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/CLIUtils.java b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java index 68d4eedc4700..478e53c1f0d8 100644 --- a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java +++ b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java @@ -33,6 +33,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.exec.OS; +import org.apache.solr.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; diff --git a/solr/core/src/java/org/apache/solr/cli/ConnectionOptions.java b/solr/core/src/java/org/apache/solr/cli/ConnectionOptions.java index 0a782b5a60fb..a2349e186042 100644 --- a/solr/core/src/java/org/apache/solr/cli/ConnectionOptions.java +++ b/solr/core/src/java/org/apache/solr/cli/ConnectionOptions.java @@ -27,7 +27,7 @@ * ensure the user provides at most one of {@code --solr-connection}, {@code --solr-url} or {@code * --zk-host}. */ -class ConnectionOptions { +public class ConnectionOptions { @CommandLine.Option( names = {"-s", "--solr-connection"}, description = @@ -54,7 +54,7 @@ class ConnectionOptions { * The effective ZooKeeper connection string, taking {@code --solr-connection} into account, or * null if the user targeted Solr via a URL (or gave no target at all). */ - String effectiveZkHost() throws IOException { + public String effectiveZkHost() throws IOException { if (solrConnection != null) { var connection = CloudSolrClient.CloudSolrClientConnection.parse(solrConnection); return connection.isZookeeper() ? solrConnection : null; @@ -66,7 +66,7 @@ String effectiveZkHost() throws IOException { * The effective Solr URL, taking {@code --solr-connection} into account, or null if the user * targeted ZooKeeper (or gave no target at all). */ - String effectiveSolrUrl() throws IOException { + public String effectiveSolrUrl() throws IOException { if (solrConnection != null) { var connection = CloudSolrClient.CloudSolrClientConnection.parse(solrConnection); return connection.isZookeeper() ? null : connection.quorumItems().get(0); diff --git a/solr/core/src/java/org/apache/solr/cli/SolrCLI.java b/solr/core/src/java/org/apache/solr/cli/SolrCLI.java index a80d7f7883e8..2461ceb09382 100755 --- a/solr/core/src/java/org/apache/solr/cli/SolrCLI.java +++ b/solr/core/src/java/org/apache/solr/cli/SolrCLI.java @@ -42,6 +42,37 @@ import org.apache.commons.cli.help.HelpFormatter; import org.apache.commons.cli.help.TableDefinition; import org.apache.commons.cli.help.TextHelpAppendable; +import org.apache.solr.cli.tools.ApiTool; +import org.apache.solr.cli.tools.AssertTool; +import org.apache.solr.cli.tools.AuthTool; +import org.apache.solr.cli.tools.ConfigTool; +import org.apache.solr.cli.tools.CreateTool; +import org.apache.solr.cli.tools.DeleteTool; +import org.apache.solr.cli.tools.ExportTool; +import org.apache.solr.cli.tools.PostLogsTool; +import org.apache.solr.cli.tools.PostTool; +import org.apache.solr.cli.tools.RunExampleTool; +import org.apache.solr.cli.tools.StreamTool; +import org.apache.solr.cli.tools.VersionTool; +import org.apache.solr.cli.tools.cluster.ClusterTool; +import org.apache.solr.cli.tools.cluster.HealthcheckTool; +import org.apache.solr.cli.tools.cluster.StatusTool; +import org.apache.solr.cli.tools.pkg.PackageTool; +import org.apache.solr.cli.tools.snapshot.SnapshotCreateTool; +import org.apache.solr.cli.tools.snapshot.SnapshotDeleteTool; +import org.apache.solr.cli.tools.snapshot.SnapshotDescribeTool; +import org.apache.solr.cli.tools.snapshot.SnapshotExportTool; +import org.apache.solr.cli.tools.snapshot.SnapshotListTool; +import org.apache.solr.cli.tools.zk.ConfigSetDownloadTool; +import org.apache.solr.cli.tools.zk.ConfigSetUploadTool; +import org.apache.solr.cli.tools.zk.UpdateACLTool; +import org.apache.solr.cli.tools.zk.ZkCpTool; +import org.apache.solr.cli.tools.zk.ZkLsTool; +import org.apache.solr.cli.tools.zk.ZkMkrootTool; +import org.apache.solr.cli.tools.zk.ZkMvTool; +import org.apache.solr.cli.tools.zk.ZkRmTool; +import org.apache.solr.cli.tools.zk.ZkTool; +import org.apache.solr.cli.tools.zk.ZkToolHelp; import org.apache.solr.client.api.util.SolrVersion; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.ContentWriterUpdateRequest; diff --git a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java b/solr/core/src/java/org/apache/solr/cli/process/SolrProcessManager.java similarity index 99% rename from solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java rename to solr/core/src/java/org/apache/solr/cli/process/SolrProcessManager.java index 3001fd2afd53..e310547e9d20 100644 --- a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java +++ b/solr/core/src/java/org/apache/solr/cli/process/SolrProcessManager.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.process; import static org.apache.solr.servlet.CoreContainerProvider.SOLR_INSTALL_DIR; diff --git a/solr/core/src/java/org/apache/solr/cli/process/package-info.java b/solr/core/src/java/org/apache/solr/cli/process/package-info.java new file mode 100644 index 000000000000..a231b83508af --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/process/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** Utilities for discovering and managing Solr OS processes. */ +package org.apache.solr.cli.process; diff --git a/solr/core/src/java/org/apache/solr/cli/ApiTool.java b/solr/core/src/java/org/apache/solr/cli/tools/ApiTool.java similarity index 94% rename from solr/core/src/java/org/apache/solr/cli/ApiTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/ApiTool.java index 3f174ed58b81..31d62dc1e0a5 100644 --- a/solr/core/src/java/org/apache/solr/cli/ApiTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/ApiTool.java @@ -15,12 +15,16 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.net.URI; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; @@ -77,7 +81,7 @@ void callApi(ApiParams params) throws Exception { echo(response); } - protected String callGet(String url, String credentials) throws Exception { + public String callGet(String url, String credentials) throws Exception { URI uri = new URI(url.replace("+", "%20")); String solrUrl = getSolrUrlFromUri(uri); String path = uri.getPath(); diff --git a/solr/core/src/java/org/apache/solr/cli/AssertTool.java b/solr/core/src/java/org/apache/solr/cli/tools/AssertTool.java similarity index 98% rename from solr/core/src/java/org/apache/solr/cli/AssertTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/AssertTool.java index 5ba193f9494d..660fb7b3262e 100644 --- a/solr/core/src/java/org/apache/solr/cli/AssertTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/AssertTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.IOException; import java.lang.invoke.MethodHandles; @@ -28,6 +28,12 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.HealthCheckRequest; diff --git a/solr/core/src/java/org/apache/solr/cli/AuthTool.java b/solr/core/src/java/org/apache/solr/cli/tools/AuthTool.java similarity index 98% rename from solr/core/src/java/org/apache/solr/cli/AuthTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/AuthTool.java index b63a0d545ddf..4885d5ff5365 100644 --- a/solr/core/src/java/org/apache/solr/cli/AuthTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/AuthTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -38,6 +38,13 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.lucene.util.Constants; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.tools.zk.ZkConnectionOptions; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; import org.apache.solr.common.util.EnvUtils; diff --git a/solr/core/src/java/org/apache/solr/cli/ConfigTool.java b/solr/core/src/java/org/apache/solr/cli/tools/ConfigTool.java similarity index 96% rename from solr/core/src/java/org/apache/solr/cli/ConfigTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/ConfigTool.java index 4c0ac64935da..87fd88d63e96 100644 --- a/solr/core/src/java/org/apache/solr/cli/ConfigTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/ConfigTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.HashMap; import java.util.List; @@ -24,6 +24,11 @@ import org.apache.commons.cli.MissingArgumentException; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.SolrCLI; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.common.util.NamedList; import org.noggit.CharArr; diff --git a/solr/core/src/java/org/apache/solr/cli/CreateTool.java b/solr/core/src/java/org/apache/solr/cli/tools/CreateTool.java similarity index 97% rename from solr/core/src/java/org/apache/solr/cli/CreateTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/CreateTool.java index 25bf09db871c..09c8044237da 100644 --- a/solr/core/src/java/org/apache/solr/cli/CreateTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/CreateTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.IOException; import java.nio.file.Files; @@ -28,7 +28,16 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.io.file.PathUtils; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; import org.apache.solr.cli.CommonCLIOptions.DefaultValues; +import org.apache.solr.cli.ConnectionOptions; +import org.apache.solr.cli.CredentialsOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; diff --git a/solr/core/src/java/org/apache/solr/cli/DeleteTool.java b/solr/core/src/java/org/apache/solr/cli/tools/DeleteTool.java similarity index 96% rename from solr/core/src/java/org/apache/solr/cli/DeleteTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/DeleteTool.java index 15ca84581f10..dab30e5ebb85 100644 --- a/solr/core/src/java/org/apache/solr/cli/DeleteTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/DeleteTool.java @@ -14,13 +14,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.Locale; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DeprecatedAttributes; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ConnectionOptions; +import org.apache.solr.cli.CredentialsOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; diff --git a/solr/core/src/java/org/apache/solr/cli/ExportTool.java b/solr/core/src/java/org/apache/solr/cli/tools/ExportTool.java similarity index 99% rename from solr/core/src/java/org/apache/solr/cli/ExportTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/ExportTool.java index b63c2ba002d1..d3acc3f3010b 100644 --- a/solr/core/src/java/org/apache/solr/cli/ExportTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/ExportTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import static org.apache.solr.common.params.CommonParams.FL; import static org.apache.solr.common.params.CommonParams.JAVABIN; @@ -54,6 +54,10 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.lucene.util.SuppressForbidden; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +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.SolrServerException; diff --git a/solr/core/src/java/org/apache/solr/cli/PostLogsTool.java b/solr/core/src/java/org/apache/solr/cli/tools/PostLogsTool.java similarity index 98% rename from solr/core/src/java/org/apache/solr/cli/PostLogsTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/PostLogsTool.java index 2764ba4b9fb4..36fb420e7048 100644 --- a/solr/core/src/java/org/apache/solr/cli/PostLogsTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/PostLogsTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.BufferedReader; import java.io.IOException; @@ -36,6 +36,11 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.UpdateRequest; diff --git a/solr/core/src/java/org/apache/solr/cli/PostTool.java b/solr/core/src/java/org/apache/solr/cli/tools/PostTool.java similarity index 99% rename from solr/core/src/java/org/apache/solr/cli/PostTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/PostTool.java index 8c455cefa3a3..6941dc633ed4 100644 --- a/solr/core/src/java/org/apache/solr/cli/PostTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/PostTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import static java.nio.charset.StandardCharsets.US_ASCII; import static java.nio.charset.StandardCharsets.UTF_8; @@ -71,6 +71,11 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.io.output.NullOutputStream; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.api.util.SolrVersion; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java b/solr/core/src/java/org/apache/solr/cli/tools/RunExampleTool.java similarity index 99% rename from solr/core/src/java/org/apache/solr/cli/RunExampleTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/RunExampleTool.java index e109022e59ab..44bd056c41a7 100644 --- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/RunExampleTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -43,6 +43,13 @@ import org.apache.commons.exec.Executor; import org.apache.commons.exec.environment.EnvironmentUtils; import org.apache.commons.io.file.PathUtils; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.SolrCLI; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.common.SolrException; diff --git a/solr/core/src/java/org/apache/solr/cli/StreamTool.java b/solr/core/src/java/org/apache/solr/cli/tools/StreamTool.java similarity index 98% rename from solr/core/src/java/org/apache/solr/cli/StreamTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/StreamTool.java index da8beec66575..a855e5e3a011 100644 --- a/solr/core/src/java/org/apache/solr/cli/StreamTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/StreamTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.BufferedReader; import java.io.FileInputStream; @@ -37,6 +37,11 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.io.SolrClientCache; import org.apache.solr.client.solrj.io.Tuple; diff --git a/solr/core/src/java/org/apache/solr/cli/VersionTool.java b/solr/core/src/java/org/apache/solr/cli/tools/VersionTool.java similarity index 90% rename from solr/core/src/java/org/apache/solr/cli/VersionTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/VersionTool.java index a7b66e89a8ad..1d44d2c5b285 100644 --- a/solr/core/src/java/org/apache/solr/cli/VersionTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/VersionTool.java @@ -15,10 +15,17 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ConnectionOptions; +import org.apache.solr.cli.CredentialsOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.api.util.SolrVersion; import org.apache.solr.client.solrj.request.SystemInfoRequest; import org.apache.solr.client.solrj.response.SystemInfoResponse; diff --git a/solr/core/src/java/org/apache/solr/cli/ClusterTool.java b/solr/core/src/java/org/apache/solr/cli/tools/cluster/ClusterTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ClusterTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/cluster/ClusterTool.java index ce43eff54f1d..db37ff7735b5 100644 --- a/solr/core/src/java/org/apache/solr/cli/ClusterTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/cluster/ClusterTool.java @@ -15,13 +15,17 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.cloud.ZkController; import org.apache.solr.common.cloud.ClusterProperties; diff --git a/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java b/solr/core/src/java/org/apache/solr/cli/tools/cluster/HealthcheckTool.java similarity index 97% rename from solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/cluster/HealthcheckTool.java index 7311877cc78c..b6d951dd601b 100644 --- a/solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/cluster/HealthcheckTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import static org.apache.solr.common.params.CommonParams.DISTRIB; import static org.apache.solr.common.params.CommonParams.NAME; @@ -30,6 +30,12 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.SolrCLI; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.SolrQuery; diff --git a/solr/core/src/java/org/apache/solr/cli/StatusTool.java b/solr/core/src/java/org/apache/solr/cli/tools/cluster/StatusTool.java similarity index 97% rename from solr/core/src/java/org/apache/solr/cli/StatusTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/cluster/StatusTool.java index a51e1ba7adc5..7965d7031a34 100644 --- a/solr/core/src/java/org/apache/solr/cli/StatusTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/cluster/StatusTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import java.util.Collection; import java.util.LinkedHashMap; @@ -29,7 +29,14 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; import org.apache.commons.cli.Options; -import org.apache.solr.cli.SolrProcessManager.SolrProcess; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.process.SolrProcessManager; +import org.apache.solr.cli.process.SolrProcessManager.SolrProcess; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.request.ClusterApi; diff --git a/solr/core/src/java/org/apache/solr/cli/tools/cluster/package-info.java b/solr/core/src/java/org/apache/solr/cli/tools/cluster/package-info.java new file mode 100644 index 000000000000..7df20c6e5886 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/tools/cluster/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** CLI tools for cluster status, health, and properties. */ +package org.apache.solr.cli.tools.cluster; diff --git a/solr/core/src/java/org/apache/solr/cli/tools/package-info.java b/solr/core/src/java/org/apache/solr/cli/tools/package-info.java new file mode 100644 index 000000000000..9b2fe5548c69 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/tools/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** General-purpose Solr CLI tool implementations. */ +package org.apache.solr.cli.tools; diff --git a/solr/core/src/java/org/apache/solr/cli/PackageTool.java b/solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageTool.java similarity index 98% rename from solr/core/src/java/org/apache/solr/cli/PackageTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageTool.java index cba26c58a3a9..e173ff391c7a 100644 --- a/solr/core/src/java/org/apache/solr/cli/PackageTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.pkg; import static org.apache.solr.cli.SolrCLI.printGreen; import static org.apache.solr.cli.SolrCLI.printRed; @@ -32,6 +32,10 @@ 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.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrException.ErrorCode; diff --git a/solr/core/src/java/org/apache/solr/cli/tools/pkg/package-info.java b/solr/core/src/java/org/apache/solr/cli/tools/pkg/package-info.java new file mode 100644 index 000000000000..4a37b3c333d8 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/tools/pkg/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** CLI tools for package operations. */ +package org.apache.solr.cli.tools.pkg; diff --git a/solr/core/src/java/org/apache/solr/cli/SnapshotCreateTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/SnapshotCreateTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateTool.java index 89263c9da2ca..500a4ebb94ef 100644 --- a/solr/core/src/java/org/apache/solr/cli/SnapshotCreateTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateTool.java @@ -14,11 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; diff --git a/solr/core/src/java/org/apache/solr/cli/SnapshotDeleteTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDeleteTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/SnapshotDeleteTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDeleteTool.java index 7ff35e5e95a9..4201fe90b5ba 100644 --- a/solr/core/src/java/org/apache/solr/cli/SnapshotDeleteTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDeleteTool.java @@ -14,11 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; diff --git a/solr/core/src/java/org/apache/solr/cli/SnapshotDescribeTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDescribeTool.java similarity index 96% rename from solr/core/src/java/org/apache/solr/cli/SnapshotDescribeTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDescribeTool.java index d945c23d57f6..126858ca1902 100644 --- a/solr/core/src/java/org/apache/solr/cli/SnapshotDescribeTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDescribeTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import java.io.IOException; import java.text.DateFormat; @@ -25,6 +25,10 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.CollectionAdminRequest; diff --git a/solr/core/src/java/org/apache/solr/cli/SnapshotExportTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotExportTool.java similarity index 97% rename from solr/core/src/java/org/apache/solr/cli/SnapshotExportTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotExportTool.java index 8544122e261c..01c7993e6ed6 100644 --- a/solr/core/src/java/org/apache/solr/cli/SnapshotExportTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotExportTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import java.time.Instant; import java.time.ZoneOffset; @@ -23,6 +23,10 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.common.params.CollectionAdminParams; diff --git a/solr/core/src/java/org/apache/solr/cli/SnapshotListTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotListTool.java similarity index 94% rename from solr/core/src/java/org/apache/solr/cli/SnapshotListTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotListTool.java index a4d7ea3b56ae..0e5e7aa6ba8e 100644 --- a/solr/core/src/java/org/apache/solr/cli/SnapshotListTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotListTool.java @@ -14,11 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; diff --git a/solr/core/src/java/org/apache/solr/cli/tools/snapshot/package-info.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/package-info.java new file mode 100644 index 000000000000..81e12093e466 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** CLI tools for managing Solr collection snapshots. */ +package org.apache.solr.cli.tools.snapshot; diff --git a/solr/core/src/java/org/apache/solr/cli/ConfigSetDownloadTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetDownloadTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ConfigSetDownloadTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetDownloadTool.java index 33d7727f6e2f..f7901c49fdd7 100644 --- a/solr/core/src/java/org/apache/solr/cli/ConfigSetDownloadTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetDownloadTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.lang.invoke.MethodHandles; import java.nio.file.Files; @@ -23,6 +23,12 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ConfigSetOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; diff --git a/solr/core/src/java/org/apache/solr/cli/ConfigSetUploadTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetUploadTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ConfigSetUploadTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetUploadTool.java index dae7174605ad..07aa3d999dc4 100644 --- a/solr/core/src/java/org/apache/solr/cli/ConfigSetUploadTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetUploadTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.lang.invoke.MethodHandles; import java.nio.file.Path; @@ -22,6 +22,12 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.ConfigSetOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; import org.apache.solr.common.cloud.ZkMaintenanceUtils; diff --git a/solr/core/src/java/org/apache/solr/cli/UpdateACLTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/UpdateACLTool.java similarity index 94% rename from solr/core/src/java/org/apache/solr/cli/UpdateACLTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/UpdateACLTool.java index 4a1e6cf331d6..aa159120db8b 100644 --- a/solr/core/src/java/org/apache/solr/cli/UpdateACLTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/UpdateACLTool.java @@ -15,11 +15,16 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.util.concurrent.TimeUnit; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.cloud.ZkController; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkConnectionOptions.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkConnectionOptions.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ZkConnectionOptions.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkConnectionOptions.java index c83a58ade0b6..ec5811f468d4 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkConnectionOptions.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkConnectionOptions.java @@ -14,9 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.util.Map; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import picocli.CommandLine; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkCpTool.java similarity index 97% rename from solr/core/src/java/org/apache/solr/cli/ZkCpTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkCpTool.java index 7d8959f8eecb..491a1e792cf2 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkCpTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkCpTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import static org.apache.solr.packagemanager.PackageUtils.format; @@ -27,6 +27,12 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.RecursiveOption; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkLsTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkLsTool.java similarity index 93% rename from solr/core/src/java/org/apache/solr/cli/ZkLsTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkLsTool.java index ae87c1173d92..300834e1b871 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkLsTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkLsTool.java @@ -14,11 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.lang.invoke.MethodHandles; import java.util.concurrent.TimeUnit; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.RecursiveOption; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMkrootTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMkrootTool.java index ee0225694fe0..579fd48376b2 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMkrootTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import static org.apache.solr.packagemanager.PackageUtils.format; @@ -23,6 +23,11 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMvTool.java similarity index 95% rename from solr/core/src/java/org/apache/solr/cli/ZkMvTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMvTool.java index 8a0db12b037a..6bf35b19da71 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkMvTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMvTool.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import static org.apache.solr.packagemanager.PackageUtils.format; @@ -23,6 +23,11 @@ import java.util.concurrent.TimeUnit; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkRmTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkRmTool.java similarity index 94% rename from solr/core/src/java/org/apache/solr/cli/ZkRmTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkRmTool.java index c657d456bc50..e0a8648b78ec 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkRmTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkRmTool.java @@ -14,13 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.lang.invoke.MethodHandles; import java.util.Locale; import java.util.concurrent.TimeUnit; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Options; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; +import org.apache.solr.cli.DefaultToolRuntime; +import org.apache.solr.cli.RecursiveOption; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.SolrZkClientTimeout; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/java/org/apache/solr/cli/ZkTool.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkTool.java similarity index 93% rename from solr/core/src/java/org/apache/solr/cli/ZkTool.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkTool.java index bed1805853ca..f0b40a976897 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkTool.java @@ -14,9 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.util.concurrent.Callable; +import org.apache.solr.cli.CLIO; +import org.apache.solr.cli.HelpMixin; import picocli.CommandLine; /** diff --git a/solr/core/src/java/org/apache/solr/cli/ZkToolHelp.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkToolHelp.java similarity index 96% rename from solr/core/src/java/org/apache/solr/cli/ZkToolHelp.java rename to solr/core/src/java/org/apache/solr/cli/tools/zk/ZkToolHelp.java index 8217702f511f..4ce2acff56bd 100644 --- a/solr/core/src/java/org/apache/solr/cli/ZkToolHelp.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/ZkToolHelp.java @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import static org.apache.solr.cli.SolrCLI.print; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; /** Supports zk help information in the bin/solr script. */ public class ZkToolHelp extends ToolBase { diff --git a/solr/core/src/java/org/apache/solr/cli/tools/zk/package-info.java b/solr/core/src/java/org/apache/solr/cli/tools/zk/package-info.java new file mode 100644 index 000000000000..3ff4b2606230 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/cli/tools/zk/package-info.java @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** CLI tools for ZooKeeper and config set operations. */ +package org.apache.solr.cli.tools.zk; diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java index f290115486c1..daf40027521c 100644 --- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java +++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java @@ -37,6 +37,8 @@ import org.apache.commons.exec.ExecuteResultHandler; import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.cli.tools.DeleteTool; +import org.apache.solr.cli.tools.RunExampleTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; diff --git a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java b/solr/core/src/test/org/apache/solr/cli/process/SolrProcessManagerTest.java similarity index 97% rename from solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java rename to solr/core/src/test/org/apache/solr/cli/process/SolrProcessManagerTest.java index 2102e1e3d75d..f572ce96b12c 100644 --- a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java +++ b/solr/core/src/test/org/apache/solr/cli/process/SolrProcessManagerTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.process; import com.fasterxml.jackson.core.JsonProcessingException; import java.io.BufferedReader; @@ -32,7 +32,7 @@ import java.util.stream.Collectors; import org.apache.commons.math3.util.Pair; import org.apache.solr.SolrTestCase; -import org.apache.solr.cli.SolrProcessManager.SolrProcess; +import org.apache.solr.cli.process.SolrProcessManager.SolrProcess; import org.junit.AfterClass; import org.junit.BeforeClass; import org.slf4j.Logger; @@ -97,7 +97,7 @@ private static Pair createProcess(int port, boolean https) thr "-DmockSolr=true", "-cp", classPath, - "org.apache.solr.cli.SolrProcessManagerTest$MockSolrProcess", + "org.apache.solr.cli.process.SolrProcessManagerTest$MockSolrProcess", https ? "--module=https" : "--module=http"); // Start the process and read first line of output diff --git a/solr/core/src/test/org/apache/solr/cli/ApiToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/ApiToolTest.java similarity index 97% rename from solr/core/src/test/org/apache/solr/cli/ApiToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/ApiToolTest.java index 6893e51dc227..14cf66fd596d 100644 --- a/solr/core/src/test/org/apache/solr/cli/ApiToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/ApiToolTest.java @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import java.util.Locale; import org.apache.lucene.tests.util.TestUtil; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; diff --git a/solr/core/src/test/org/apache/solr/cli/AssertToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/AssertToolTest.java similarity index 98% rename from solr/core/src/test/org/apache/solr/cli/AssertToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/AssertToolTest.java index 9f3aa0e77a57..d11fc5726ba9 100644 --- a/solr/core/src/test/org/apache/solr/cli/AssertToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/AssertToolTest.java @@ -14,11 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.nio.file.Files; import java.nio.file.Path; import java.util.Set; +import org.apache.solr.cli.CLITestHelper; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.common.cloud.ZkStateReader; diff --git a/solr/core/src/test/org/apache/solr/cli/AuthToolPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/AuthToolPicocliTest.java similarity index 89% rename from solr/core/src/test/org/apache/solr/cli/AuthToolPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/AuthToolPicocliTest.java index 41a4385b55da..1696dbb1643f 100644 --- a/solr/core/src/test/org/apache/solr/cli/AuthToolPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/AuthToolPicocliTest.java @@ -15,9 +15,13 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/AuthToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/AuthToolTest.java similarity index 97% rename from solr/core/src/test/org/apache/solr/cli/AuthToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/AuthToolTest.java index b0e94f2ef8da..9aaf6bdf37e4 100644 --- a/solr/core/src/test/org/apache/solr/cli/AuthToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/AuthToolTest.java @@ -15,12 +15,14 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import org.apache.commons.io.file.PathUtils; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolBase; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.security.Sha256AuthenticationProvider; import org.junit.After; diff --git a/solr/core/src/test/org/apache/solr/cli/CreateToolPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/CreateToolPicocliTest.java similarity index 88% rename from solr/core/src/test/org/apache/solr/cli/CreateToolPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/CreateToolPicocliTest.java index 7eddb2c923b1..98b8b650339e 100644 --- a/solr/core/src/test/org/apache/solr/cli/CreateToolPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/CreateToolPicocliTest.java @@ -14,9 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/CreateToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/CreateToolTest.java similarity index 94% rename from solr/core/src/test/org/apache/solr/cli/CreateToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/CreateToolTest.java index e1df239b51bb..6728318d60ec 100644 --- a/solr/core/src/test/org/apache/solr/cli/CreateToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/CreateToolTest.java @@ -15,8 +15,10 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolBase; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.util.SecurityJson; import org.junit.BeforeClass; diff --git a/solr/core/src/test/org/apache/solr/cli/DeleteToolPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/DeleteToolPicocliTest.java similarity index 88% rename from solr/core/src/test/org/apache/solr/cli/DeleteToolPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/DeleteToolPicocliTest.java index 308e9d872371..26b4b6d5b2f7 100644 --- a/solr/core/src/test/org/apache/solr/cli/DeleteToolPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/DeleteToolPicocliTest.java @@ -14,9 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/DeleteToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/DeleteToolTest.java similarity index 98% rename from solr/core/src/test/org/apache/solr/cli/DeleteToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/DeleteToolTest.java index 4e1bebe38846..68a29166167c 100644 --- a/solr/core/src/test/org/apache/solr/cli/DeleteToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/DeleteToolTest.java @@ -15,8 +15,10 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolBase; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.CollectionAdminRequest; diff --git a/solr/core/src/test/org/apache/solr/cli/PostLogsToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolTest.java similarity index 99% rename from solr/core/src/test/org/apache/solr/cli/PostLogsToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolTest.java index 5f2089bb5f0c..e2257de93434 100644 --- a/solr/core/src/test/org/apache/solr/cli/PostLogsToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.BufferedReader; import java.io.StringReader; @@ -22,7 +22,7 @@ import java.util.Collection; import java.util.List; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.cli.PostLogsTool.LogRecordReader; +import org.apache.solr.cli.tools.PostLogsTool.LogRecordReader; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.SolrInputField; import org.junit.BeforeClass; diff --git a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/PostToolTest.java similarity index 99% rename from solr/core/src/test/org/apache/solr/cli/PostToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/PostToolTest.java index a238bd62c15a..54e311d39545 100644 --- a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/PostToolTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; @@ -34,6 +34,8 @@ import java.util.Map; import java.util.Set; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.CollectionAdminRequest; diff --git a/solr/core/src/test/org/apache/solr/cli/StreamToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/StreamToolTest.java similarity index 98% rename from solr/core/src/test/org/apache/solr/cli/StreamToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/StreamToolTest.java index 27ae59cddb94..d818694287cd 100644 --- a/solr/core/src/test/org/apache/solr/cli/StreamToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/StreamToolTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; @@ -32,6 +32,9 @@ import java.util.HashMap; import java.util.List; import org.apache.commons.cli.CommandLine; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.SolrCLI; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.io.Tuple; diff --git a/solr/core/src/test/org/apache/solr/cli/TestExportTool.java b/solr/core/src/test/org/apache/solr/cli/tools/TestExportTool.java similarity index 99% rename from solr/core/src/test/org/apache/solr/cli/TestExportTool.java rename to solr/core/src/test/org/apache/solr/cli/tools/TestExportTool.java index ef6b20853d74..34eda2175652 100644 --- a/solr/core/src/test/org/apache/solr/cli/TestExportTool.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/TestExportTool.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.io.FileInputStream; import java.io.IOException; @@ -32,6 +32,8 @@ import java.util.zip.GZIPInputStream; import org.apache.lucene.tests.util.TestUtil; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.jetty.HttpJettySolrClient; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; diff --git a/solr/core/src/test/org/apache/solr/cli/VersionToolPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/VersionToolPicocliTest.java similarity index 92% rename from solr/core/src/test/org/apache/solr/cli/VersionToolPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/VersionToolPicocliTest.java index 4c454ecec275..a8312412fc57 100644 --- a/solr/core/src/test/org/apache/solr/cli/VersionToolPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/VersionToolPicocliTest.java @@ -14,9 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/VersionToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/VersionToolTest.java similarity index 95% rename from solr/core/src/test/org/apache/solr/cli/VersionToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/VersionToolTest.java index 48ffedead43a..40ef06796a06 100644 --- a/solr/core/src/test/org/apache/solr/cli/VersionToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/VersionToolTest.java @@ -14,8 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.SolrCLI; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.embedded.JettySolrRunner; import org.junit.BeforeClass; diff --git a/solr/core/src/test/org/apache/solr/cli/HealthcheckToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/cluster/HealthcheckToolTest.java similarity index 97% rename from solr/core/src/test/org/apache/solr/cli/HealthcheckToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/cluster/HealthcheckToolTest.java index 68d7fba3c5d5..2e5fa0fac67b 100644 --- a/solr/core/src/test/org/apache/solr/cli/HealthcheckToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/cluster/HealthcheckToolTest.java @@ -15,9 +15,10 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import java.util.Set; +import org.apache.solr.cli.CLITestHelper; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.cloud.SolrCloudTestCase; diff --git a/solr/core/src/test/org/apache/solr/cli/StatusToolPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolPicocliTest.java similarity index 92% rename from solr/core/src/test/org/apache/solr/cli/StatusToolPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolPicocliTest.java index 71d9e5ed705e..555aaf7d1577 100644 --- a/solr/core/src/test/org/apache/solr/cli/StatusToolPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolPicocliTest.java @@ -14,10 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import java.io.Reader; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/StatusToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolTest.java similarity index 94% rename from solr/core/src/test/org/apache/solr/cli/StatusToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolTest.java index b01973f83195..d2f657639057 100644 --- a/solr/core/src/test/org/apache/solr/cli/StatusToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolTest.java @@ -14,10 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.cluster; import java.io.Reader; import java.util.Map; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.SolrCLI; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.common.util.Utils; import org.apache.solr.embedded.JettySolrRunner; diff --git a/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/pkg/PackageToolTest.java similarity index 98% rename from solr/core/src/test/org/apache/solr/cli/PackageToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/pkg/PackageToolTest.java index 9282af37e520..917427bbc2e6 100644 --- a/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/pkg/PackageToolTest.java @@ -15,13 +15,17 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.pkg; import java.io.StringReader; import java.lang.invoke.MethodHandles; import java.util.Arrays; import java.util.List; import java.util.Objects; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.SolrCLI; +import org.apache.solr.cli.ToolRuntime; +import org.apache.solr.cli.tools.ApiTool; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.CollectionAdminRequest; diff --git a/solr/core/src/test/org/apache/solr/cli/SnapshotExportToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotExportToolTest.java similarity index 98% rename from solr/core/src/test/org/apache/solr/cli/SnapshotExportToolTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotExportToolTest.java index 81c46f302dd7..0437418ef9d9 100644 --- a/solr/core/src/test/org/apache/solr/cli/SnapshotExportToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotExportToolTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.snapshot; import java.io.IOException; import java.nio.file.Files; @@ -25,6 +25,8 @@ import java.util.stream.Stream; import org.apache.commons.cli.CommandLine; import org.apache.lucene.tests.util.LuceneTestCase; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.SolrCLI; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.cloud.MiniSolrCloudCluster; import org.apache.solr.cloud.SolrCloudTestCase; diff --git a/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java b/solr/core/src/test/org/apache/solr/cli/tools/zk/SolrCLIZkToolsTest.java similarity index 99% rename from solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/zk/SolrCLIZkToolsTest.java index bd8f8a8a151f..3ee75847de45 100644 --- a/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/zk/SolrCLIZkToolsTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; +import org.apache.solr.cli.CLITestHelper; import org.apache.solr.cloud.AbstractFullDistribZkTestBase; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsPicocliTest.java b/solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsPicocliTest.java similarity index 91% rename from solr/core/src/test/org/apache/solr/cli/ZkSubcommandsPicocliTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsPicocliTest.java index 9b631013cd56..4b628fe7635a 100644 --- a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsPicocliTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsPicocliTest.java @@ -14,9 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.util.Arrays; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.CliDefaultValueProvider; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.ToolRuntime; import picocli.CommandLine; /** diff --git a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java b/solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsTest.java similarity index 99% rename from solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java rename to solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsTest.java index 4aebf94ee765..7189f4178807 100644 --- a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools.zk; import java.io.BufferedWriter; import java.io.IOException; @@ -27,6 +27,9 @@ import java.util.stream.Stream; import org.apache.lucene.tests.mockfile.FilterPath; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.cli.CLITestHelper; +import org.apache.solr.cli.ToolBase; +import org.apache.solr.cli.tools.cluster.ClusterTool; import org.apache.solr.cloud.AbstractFullDistribZkTestBase; import org.apache.solr.cloud.AbstractZkTestCase; import org.apache.solr.cloud.ZkConfigSetService; diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java b/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java index c7a6e70ef295..96b7d9d81f64 100644 --- a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java @@ -25,12 +25,12 @@ 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.cli.tools.CreateTool; +import org.apache.solr.cli.tools.DeleteTool; +import org.apache.solr.cli.tools.PostTool; +import org.apache.solr.cli.tools.cluster.HealthcheckTool; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.cloud.ZkStateReader; 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 71c1da0c463c..65b8e341e2a0 100644 --- a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java @@ -26,7 +26,7 @@ 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.cli.tools.cluster.StatusTool; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; 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 0b8e194abc7c..cc298a7c9339 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,10 @@ 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.cli.tools.zk.ConfigSetUploadTool; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrRequest.METHOD;