Skip to content

SOLR-18514: Port HealthcheckTool to picocli - #5041

Merged
janhoy merged 7 commits into
apache:mainfrom
serhiy-bzhezytskyy:SOLR-18514-picocli-healthcheck
Oct 8, 2026
Merged

janhoy merged 7 commits into
apache:mainfrom
serhiy-bzhezytskyy:SOLR-18514-picocli-healthcheck

Conversation

@serhiy-bzhezytskyy

Copy link
Copy Markdown
Contributor

https://issues.apache.org/jira/browse/SOLR-18514

Description

Adds the picocli code path for bin/solr healthcheck, next to the commons-cli one. test_healthcheck.bats could not join the picocli suite until now.

Solution

HealthcheckTool gets its annotated options and callTool() and is registered in SolrCLI; the commons-cli path is unchanged. The connection is resolved in the same order as under commons-cli. Written with Claude Code.

Tests

HealthcheckToolPicocliTest runs the existing HealthcheckToolTest through picocli. test_healthcheck.bats passes under both parsers and is added to integrationTestsPicocli; check -x test is clean (rat skipped).

Checklist

  • I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • I have created a Jira issue and added the issue ID to my pull request title.
  • I have given Solr maintainers access to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation)
  • I have developed this patch against the main branch.
  • I have run ./gradlew check.
  • I have added tests for my changes.
  • I have added documentation for the Reference Guide
  • I have added a changelog entry for my change

Adds the picocli code path next to the commons-cli one, with a test twin, the generated reference page and test_healthcheck.bats in the picocli suite.
@github-actions github-actions Bot added documentation Improvements or additions to documentation tool:build tests cat:cli labels Oct 6, 2026
The generated page now says what the command checks (document counts, leaders, active replicas) and that it needs SolrCloud, matching the healthcheck page of the reference guide instead of a generic sentence.

@janhoy janhoy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A general comment about changelog that applies to all PRs.
Also a minor

Comment thread solr/core/src/java/org/apache/solr/cli/HealthcheckTool.java
Comment thread changelog/unreleased/SOLR-18514-picocli-healthcheck.yml Outdated
No picocli feature has been released yet, so a new command is a detail of the SOLR-17697 entry. Its author and JIRA are added there instead of a separate entry.
After the Cloud-mode error the picocli path called runtime.exit(1) and relied on code after it never running; returning 1 does the same and keeps the method straight-line. The commons-cli path is unchanged.
EnvUtils maps the SOLR_CONNECTION environment variable to solr.connection, so the solr-connection key the healthcheck connection lookup read could never be set. The picocli path now reads the right key, which a test covers.
…healthcheck

# Conflicts:
#	changelog/unreleased/SOLR-17697-picocli-experimental-cli.yml
#	solr/core/src/java/org/apache/solr/cli/SolrCLI.java
#	solr/packaging/build.gradle
#	solr/solr-ref-guide/modules/deployment-guide/deployment-nav.adoc
#	solr/solr-ref-guide/modules/deployment-guide/pages/cli/index.adoc
@janhoy
janhoy merged commit bde37d6 into apache:main Oct 8, 2026
1 check passed
@janhoy janhoy added this to the 10.x milestone Oct 8, 2026
dsmiley pushed a commit that referenced this pull request Oct 9, 2026
Co-authored-by: Jan Høydahl <janhoy@apache.org>
(cherry picked from commit bde37d6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cat:cli documentation Improvements or additions to documentation tests tool:build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants