[
https://issues.apache.org/jira/browse/SOLR-18519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SOLR-18519:
----------------------------------
Labels: newdev pull-request-available (was: newdev)
> Port StreamTool to PicoCli
> --------------------------
>
> Key: SOLR-18519
> URL: https://issues.apache.org/jira/browse/SOLR-18519
> Project: Solr
> Issue Type: Improvement
> Components: cli
> Reporter: Jan Høydahl
> Priority: Major
> Labels: newdev, pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Port {{StreamTool}} to picocli, adding the picocli code path alongside the
> existing commons-cli one.
> *Covers:* {{bin/solr stream}}
> The command runs a streaming expression either in the CLI process or on a
> Solr node, selected by {{\-\-execution}} ({{local}} or {{remote}}, defaulting
> to {{remote}}), against the collection named by {{\-c}} / {{\-\-name}}, with
> {{\-\-fields}}, {{\-\-header}}, {{\-\-delimiter}} and {{\-\-array-delimiter}}
> shaping the tabular output. There are no sub-commands.
> {{\-\-execution}} is a good candidate for a picocli enum. The ref guide calls
> this the Stream Command since SOLR-18463.
> *Acceptance criteria*
> * {{bin/solr stream}} and all its options work with {{SOLR_PICOCLI=true}},
> and the commons-cli path is left behaviourally unchanged.
> * {{StreamTool}} is registered in {{SolrCLI}}'s picocli {{subcommands}} list
> and {{ToolBase.callTool()}} is implemented, replacing the
> {{UnsupportedOperationException}} stub.
> * Shared options reuse the existing mixins ({{ConnectionOptions}},
> {{CredentialsOptions}}, {{HelpMixin}}) rather than redeclaring them.
> * An {{StreamToolPicocliTest}} subclasses the existing test and overrides
> only the {{runTool}} hook, so the inherited assertions run through both
> parsers.
> * {{./gradlew :solr:solr-ref-guide:generateCliDocs}} is re-run and the
> generated {{cli/solr-stream.adoc}} page is committed, so
> {{checkCliDocsUpToDate}} passes.
> *AI assistance:* a coding-agent prompt template encoding the patterns already
> established by the ported tools is available at
> [https://gist.github.com/janhoy/a3fe0dbcaadf24b3493558946cc549d9] — name
> {{StreamTool}} in its Assignment line up front and the rest of the prompt
> adapts. Please review agent output as carefully as hand-written code.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]