Repository navigation
Conversation
|
Can you please describe this change? The PR description is not indicative; I suggest removing the template as it's a waste/distraction. |
yes, @dsmiley Have added the description & PR scope now. Thanks in advance. ✨ |
|
@epugh can please check this PR? if this looks worthy enough, I will raise the one against picoCLI feature branch & get that one merged. We can close this one, & let these re-packaging changes flow via the picoCLI migration. |
|
@epugh can you check the objective of this PR & see if this improves our code structure & management? |
|
I think I like it... The bigger challenge is that we have a LOT of seperate efforts all going in the CLI right now, and I'm not sure how to land this without breaking all the other work going on.. We need to get our CLI finished migrating over to Picocli and that is probably the bigger more important effort, then this could go on top... |
|
I'm referring to the subset of work quoted in the PR description:
|
I think I like it too. The CLI pkg has 68 files and can benefit from some structuring. Have not thought long and hard about the actual proposed package structure, but on first glance it makes sense with separate pkg for tools with many sub commands. |
@janhoy @epugh Can i get the first review on this now? If possible, can trigger Copilot review to start with. |
There was a problem hiding this comment.
🔵 Needs a closer look
The broad package migration warrants human confirmation of compilation and CLI regression results before approval.
No open issues 🎉
What changed in this PR
Reorganizes Solr CLI code into domain-based packages, preparing for a future standalone CLI module while keeping this change within solr-core.
Changes:
- Groups tools and process management into dedicated packages.
- Updates imports, cross-package visibility, tests, and the mock subprocess class name.
- Adds package documentation and a changelog entry.
| File | Description |
|---|---|
| solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsTest.java | Relocates ZooKeeper tests and updates imports. |
| solr/core/src/test/org/apache/solr/cli/tools/zk/ZkSubcommandsPicocliTest.java | Relocates picocli ZooKeeper tests. |
| solr/core/src/test/org/apache/solr/cli/tools/zk/SolrCLIZkToolsTest.java | Relocates ZooKeeper integration tests. |
| solr/core/src/test/org/apache/solr/cli/tools/VersionToolTest.java | Relocates version tests. |
| solr/core/src/test/org/apache/solr/cli/tools/VersionToolPicocliTest.java | Relocates picocli version tests. |
| solr/core/src/test/org/apache/solr/cli/tools/TestExportTool.java | Relocates export tests. |
| solr/core/src/test/org/apache/solr/cli/tools/StreamToolTest.java | Relocates streaming tests. |
| solr/core/src/test/org/apache/solr/cli/tools/StreamToolPicocliTest.java | Relocates picocli streaming tests. |
| solr/core/src/test/org/apache/solr/cli/tools/SolrCLIRunExamplePicocliTest.java | Relocates picocli example tests. |
| solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotToolsTest.java | Relocates snapshot tests. |
| solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotToolsPicocliTest.java | Relocates picocli snapshot tests. |
| solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotExportToolTest.java | Relocates snapshot export tests. |
| solr/core/src/test/org/apache/solr/cli/tools/snapshot/SnapshotExportToolPicocliTest.java | Relocates picocli snapshot export tests. |
| solr/core/src/test/org/apache/solr/cli/tools/PostToolTest.java | Relocates posting tests. |
| solr/core/src/test/org/apache/solr/cli/tools/PostToolPicocliTest.java | Relocates picocli posting tests. |
| solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolTest.java | Relocates log parsing tests and nested-class import. |
| solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolPicocliTest.java | Relocates picocli log posting tests. |
| solr/core/src/test/org/apache/solr/cli/tools/PostLogsToolCliTest.java | Relocates log posting CLI tests. |
| solr/core/src/test/org/apache/solr/cli/tools/pkg/PackageToolTest.java | Relocates package manager tests. |
| solr/core/src/test/org/apache/solr/cli/tools/pkg/PackageToolPicocliTest.java | Relocates picocli package manager tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ExportToolTest.java | Relocates export CLI tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ExportToolPicocliTest.java | Relocates picocli export tests. |
| solr/core/src/test/org/apache/solr/cli/tools/DeleteToolTest.java | Relocates deletion tests. |
| solr/core/src/test/org/apache/solr/cli/tools/DeleteToolPicocliTest.java | Relocates picocli deletion tests. |
| solr/core/src/test/org/apache/solr/cli/tools/CreateToolTest.java | Relocates creation tests. |
| solr/core/src/test/org/apache/solr/cli/tools/CreateToolPicocliTest.java | Relocates picocli creation tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ConfigToolTest.java | Relocates configuration tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ConfigToolPicocliTest.java | Relocates picocli configuration tests. |
| solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolTest.java | Relocates status tests. |
| solr/core/src/test/org/apache/solr/cli/tools/cluster/StatusToolPicocliTest.java | Relocates picocli status tests. |
| solr/core/src/test/org/apache/solr/cli/tools/cluster/HealthcheckToolTest.java | Relocates health-check tests. |
| solr/core/src/test/org/apache/solr/cli/tools/cluster/HealthcheckToolPicocliTest.java | Relocates picocli health-check tests. |
| solr/core/src/test/org/apache/solr/cli/tools/AuthToolTest.java | Relocates authentication tests. |
| solr/core/src/test/org/apache/solr/cli/tools/AuthToolPicocliTest.java | Relocates picocli authentication tests. |
| solr/core/src/test/org/apache/solr/cli/tools/AssertToolTest.java | Relocates assertion tests. |
| solr/core/src/test/org/apache/solr/cli/tools/AssertToolPicocliTest.java | Relocates picocli assertion tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ApiToolTest.java | Relocates API tool tests. |
| solr/core/src/test/org/apache/solr/cli/tools/ApiToolPicocliTest.java | Relocates picocli API tool tests. |
| solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java | Updates relocated tool imports. |
| solr/core/src/test/org/apache/solr/cli/SolrCloudExampleTest.java | Updates relocated tool imports. |
| solr/core/src/test/org/apache/solr/cli/process/SolrProcessManagerTest.java | Relocates tests and updates subprocess class name. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkToolHelp.java | Moves ZooKeeper help into tools.zk. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkTool.java | Moves ZooKeeper command group. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkRmTool.java | Moves ZooKeeper removal tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMvTool.java | Moves ZooKeeper move tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkMkrootTool.java | Moves ZooKeeper root-creation tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkLsTool.java | Moves ZooKeeper listing tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkCpTool.java | Moves ZooKeeper copy tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ZkConnectionOptions.java | Moves ZooKeeper connection options. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/UpdateACLTool.java | Moves ACL update tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/package-info.java | Documents ZooKeeper tool package. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetUploadTool.java | Moves configset upload tool. |
| solr/core/src/java/org/apache/solr/cli/tools/zk/ConfigSetDownloadTool.java | Moves configset download tool. |
| solr/core/src/java/org/apache/solr/cli/tools/VersionTool.java | Moves version tool into tools. |
| solr/core/src/java/org/apache/solr/cli/tools/StreamTool.java | Moves streaming tool and updates imports. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotTool.java | Moves snapshot command group. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotNameOptions.java | Moves snapshot name options. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotListTool.java | Moves snapshot listing tool. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotListShim.java | Moves legacy snapshot listing shim. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotExportTool.java | Moves snapshot export tool. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotExportShim.java | Moves legacy snapshot export shim. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDescribeTool.java | Moves snapshot description tool. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDescribeShim.java | Moves legacy snapshot description shim. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDeleteTool.java | Moves snapshot deletion tool. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotDeleteShim.java | Moves legacy snapshot deletion shim. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateTool.java | Moves snapshot creation tool. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/SnapshotCreateShim.java | Moves legacy snapshot creation shim. |
| solr/core/src/java/org/apache/solr/cli/tools/snapshot/package-info.java | Documents snapshot tool package. |
| solr/core/src/java/org/apache/solr/cli/tools/RunExampleTool.java | Moves example runner and updates imports. |
| solr/core/src/java/org/apache/solr/cli/tools/PostTool.java | Moves document posting tool. |
| solr/core/src/java/org/apache/solr/cli/tools/PostLogsTool.java | Moves log posting tool. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageUninstall.java | Moves package uninstall command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageUndeploy.java | Moves package undeploy command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageTool.java | Moves package tool and exposes credentials mixin. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageSubCommand.java | Moves shared package subcommand base. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageListInstalled.java | Moves installed-package listing command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageListDeployed.java | Moves deployed-package listing command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageListAvailable.java | Moves available-package listing command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageInstall.java | Moves package install command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageDeploy.java | Moves package deploy command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageAddRepo.java | Moves repository addition command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/PackageAddKey.java | Moves package key addition command. |
| solr/core/src/java/org/apache/solr/cli/tools/pkg/package-info.java | Documents package operations namespace. |
| solr/core/src/java/org/apache/solr/cli/tools/package-info.java | Documents general-purpose tool package. |
| solr/core/src/java/org/apache/solr/cli/tools/ExportTool.java | Moves export tool. |
| solr/core/src/java/org/apache/solr/cli/tools/DeleteTool.java | Moves deletion tool. |
| solr/core/src/java/org/apache/solr/cli/tools/CreateTool.java | Moves creation tool and updates imports. |
| solr/core/src/java/org/apache/solr/cli/tools/ConfigTool.java | Moves configuration tool. |
| solr/core/src/java/org/apache/solr/cli/tools/cluster/StatusTool.java | Moves status tool and process-manager imports. |
| solr/core/src/java/org/apache/solr/cli/tools/cluster/package-info.java | Documents cluster tool package. |
| solr/core/src/java/org/apache/solr/cli/tools/cluster/HealthcheckTool.java | Moves health-check tool. |
| solr/core/src/java/org/apache/solr/cli/tools/cluster/ClusterTool.java | Moves cluster properties tool. |
| solr/core/src/java/org/apache/solr/cli/tools/AuthTool.java | Moves authentication tool. |
| solr/core/src/java/org/apache/solr/cli/tools/AssertTool.java | Moves assertion tool. |
| solr/core/src/java/org/apache/solr/cli/tools/ApiTool.java | Moves API tool and makes callGet public. |
| solr/core/src/java/org/apache/solr/cli/SolrCLI.java | Imports relocated command implementations. |
| solr/core/src/java/org/apache/solr/cli/process/SolrProcessManager.java | Moves process management into process. |
| solr/core/src/java/org/apache/solr/cli/process/package-info.java | Documents process utilities package. |
| solr/core/src/java/org/apache/solr/cli/ConnectionOptions.java | Exposes shared options for cross-package access. |
| solr/core/src/java/org/apache/solr/cli/CollectionNameOptions.java | Exposes collection name mixin and field. |
| solr/core/src/java/org/apache/solr/cli/CLIUtils.java | Updates status import and exposes URL resolver. |
| changelog/unreleased/SOLR-18234-solr-cli-reorganise.yml | Records CLI package reorganization. |
Review effort: Balanced
|
all 5 CI checks pass ✅ |


Description/Scope
Reorganize org.apache.solr.cli into domain-based sub-packages
Solution
For the main Jira: SOLR-18234, final objective is to move cli package out from core module, into a separate module of itself.
This PR scope is to just make the original/current package structure organised.
Existing Package Structure:
Proposed Package Structure:
Tests
Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem.
Checklist
Please review the following and check all that apply:
mainbranch../gradlew check.