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..7be1a5ae2717 --- /dev/null +++ b/changelog/unreleased/SOLR-18234-solr-cli-reorganise.yml @@ -0,0 +1,7 @@ +title: Reorganize org.apache.solr.cli into domain-based sub-packages +type: other +authors: + - name: Jalaz Kumar +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 1a8f76c0db8b..9ae167958a2b 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/SolrCLI.java b/solr/core/src/java/org/apache/solr/cli/SolrCLI.java index 263fb7a7da23..7c5464f8fac5 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,36 @@ 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.PackageTool; +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.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.ZkToolHelp; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest; import org.apache.solr.common.util.ContentStreamBase; @@ -220,23 +250,6 @@ private static Tool newTool(String toolType, ToolRuntime runtime) throws Excepti throw new IllegalArgumentException(toolType + " is not a valid command!"); } - /** - * Returns the value of the option with the given name, or the value of the deprecated option. If - * both values are null, then it returns the default value. - * - *

If this method is marked as unused by your IDE, it means we have no deprecated CLI options - * currently, congratulations! This method is preserved for the next time we need to deprecate a - * CLI option. - */ - public static String getOptionWithDeprecatedAndDefault( - CommandLine cli, Option opt, Option deprecated, String def) { - String val = cli.getOptionValue(opt); - if (val == null) { - val = cli.getOptionValue(deprecated); - } - return val == null ? def : val; - } - // TODO: SOLR-17429 - remove the custom logic when Commons CLI is upgraded and // makes stderr the default, or makes Option.toDeprecatedString() public. private static void deprecatedHandlerStdErr(Option o) { 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 95% 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 4a9c86fb8485..1479b5e14b86 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.json.JsonMapResponseParser; 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 928065f0a798..4d620259a4de 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; @@ -27,6 +27,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 df0133cfead4..b7cc871975fa 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; @@ -37,6 +37,11 @@ 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.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.common.cloud.SolrZkClient; import org.apache.solr.common.util.EnvUtils; import org.apache.solr.core.SolrCore; 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 95% 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 a4145168165b..26c3b71bdbdd 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 98% 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 6b7c6549503f..885c880498c2 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; @@ -27,7 +27,11 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.io.file.PathUtils; +import org.apache.solr.cli.CLIUtils; +import org.apache.solr.cli.CommonCLIOptions; import org.apache.solr.cli.CommonCLIOptions.DefaultValues; +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.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 97% 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 59450cf00c14..0f0a99ba1a96 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,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.lang.invoke.MethodHandles; import java.util.Collection; @@ -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.impl.CloudSolrClient; 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 9fb9a23e3d2c..17de8379d8d3 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/PackageTool.java b/solr/core/src/java/org/apache/solr/cli/tools/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/PackageTool.java index aaa3649d1be8..e582c0a5cf55 100644 --- a/solr/core/src/java/org/apache/solr/cli/PackageTool.java +++ b/solr/core/src/java/org/apache/solr/cli/tools/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; 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/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 dd83821ea291..a99ac281f0b6 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 4975033b8d6e..549917a6cea8 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 8db32fc0b66b..efe3599ba313 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; @@ -45,6 +45,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 31070e7e27b0..8b96fec83bad 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; @@ -38,6 +38,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.io.SolrClientCache; import org.apache.solr.client.solrj.io.Tuple; import org.apache.solr.client.solrj.io.comp.StreamComparator; 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 92% 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 8bb14172467a..4dad22ebdc62 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,14 @@ * 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.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 94% 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 54626e2b7db7..d3beb816e3e9 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 176debbb0b8b..ce49941a23d6 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 27a4840a3a4e..ca17e4b91e34 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,13 @@ 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.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.request.ClusterApi; import org.apache.solr.client.solrj.request.CollectionsApi; 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/SnapshotCreateTool.java b/solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateTool.java similarity index 94% 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 dfc39bf7cb2d..0fc3fdebcc55 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 94% 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 00b5c3c01979..6bfc19fd4e6e 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 477ad265e7d5..6d4b363ed78b 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 95% 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 d71b8df8b1a2..dddb8fdad53d 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,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.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 93% 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 4501fddc8397..877b554262d5 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 94% 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 5623794626cb..f80117fdf9bf 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; @@ -22,6 +22,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.common.cloud.SolrZkClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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 71daf15d3386..891b71b13c3e 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,13 +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.nio.file.Path; 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.common.cloud.SolrZkClient; import org.apache.solr.common.cloud.ZkMaintenanceUtils; import org.apache.solr.common.util.EnvUtils; 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 92% 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 021f05d7e82c..7e8c5aa4ed17 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,15 @@ * 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.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/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 2edaccee9df1..ad135b827b68 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,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.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 92% 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 2ca4be286f20..586e9bab5909 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,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 java.lang.invoke.MethodHandles; 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.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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 93% 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 2a644f2a1364..6c64414fcad7 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; @@ -22,6 +22,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.common.cloud.SolrZkClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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 94% 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 a11ac0884f87..e3cb8cc0ad26 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; @@ -22,6 +22,10 @@ import java.util.Locale; 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.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; 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 93% 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 92e6b4daaa4e..fae3a9df44f4 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,12 +14,16 @@ * 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 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.ToolBase; +import org.apache.solr.cli.ToolRuntime; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.common.cloud.SolrZkClient; import org.slf4j.Logger; 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 95% 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 9251484a859f..e383535317ce 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 7a7f105c0848..2218f57ebbfa 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.request.SolrQuery; 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/AuthToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/AuthToolTest.java similarity index 98% 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 aa31392a2f4f..a9505a2900c4 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,13 @@ * 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.cloud.SolrCloudTestCase; import org.apache.solr.security.Sha256AuthenticationProvider; import org.junit.After; 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 95% 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 74c9a6411668..f166bf359e0f 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,9 @@ * 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.cloud.SolrCloudTestCase; import org.apache.solr.util.SecurityJson; import org.junit.BeforeClass; 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 8c36e1b661c7..27481c6e25ad 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,9 @@ * 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.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/PackageToolTest.java b/solr/core/src/test/org/apache/solr/cli/tools/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/PackageToolTest.java index 9282af37e520..86dd2f04b383 100644 --- a/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/tools/PackageToolTest.java @@ -15,13 +15,16 @@ * limitations under the License. */ -package org.apache.solr.cli; +package org.apache.solr.cli.tools; 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.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 a50254ef67e2..9bd21fa4928d 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/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 b8e4ebd4eee1..b0c8ce1a5b22 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/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 e035db8495c2..48a5cc105519 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,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.cluster; 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/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/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 d5aa1a72d5ae..2d84734dd6e7 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,8 @@ 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.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 9684d5447cf7..97d335fb1127 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 ef9159a38d59..6873416716ac 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;