lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Gerlowski (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SOLR-11206) Migrate logic from bin/solr scripts to SolrCLI
Date Thu, 17 Aug 2017 02:40:00 GMT

     [ https://issues.apache.org/jira/browse/SOLR-11206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jason Gerlowski updated SOLR-11206:
-----------------------------------
    Attachment: SOLR-11206.patch

My access to Windows is spotty, and so I haven't been able to get an output-benchmark from
a Windows machine yet, though I should have access and time to do so tomorrow.

In the meantime, I'm uploading a proof-of-concept patch for one of the commands supported
by the control-scripts ("create").

Notes/caveats on the patch:
- I chose "create" because it had enough arguments to demonstrate the value in the change.
- As I mentioned above, I haven't had Windows access recently, so there might be issues with
the {{bin/solr.cmd}} changes.  Though the changes are accurate enough to show the approach.
- As-is, the patch matches command output on success, but error messages about missing/invalid
arguments don't line up exactly with the pre-patch code.  The argument parsing in Java-land
uses the commons-cli library, which makes the parsing concise/convenient, but ties us to the
error-message format dictated by the library.  I'm curious what the backward-compatibility
expectations are around the output of the bin/solr scripts.  I've heard guidelines for the
Java code, and for API output, but not for the control scripts.  We can match all stdout output
if we eschew commons-cli, but the library is so standard and makes the code so maintainable
that I'd like to lobby for using it if it doesn't stretch/break our backward-compatibility
promises/expectations.

> Migrate logic from bin/solr scripts to SolrCLI
> ----------------------------------------------
>
>                 Key: SOLR-11206
>                 URL: https://issues.apache.org/jira/browse/SOLR-11206
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: scripts and tools
>            Reporter: Jason Gerlowski
>             Fix For: master (8.0)
>
>         Attachments: ctrl-script-output-benchmark.sh, linux-initial-output.txt, SOLR-11206.patch
>
>
> The {{bin/solr}} and {{bin/solr.cmd}} scripts have taken on a lot of logic that would
be easier to maintain if it was instead written in Java code, for a handful of reasons
> * Any logic in the control scripts is duplicated in two places by definition.
> * Increasing test coverage of this logic would be much easier if it was written in Java.
> * Few developers are conversant in both bash and Windows-shell, making editing difficult.
> Some sections in these scripts make good candidates for migration to Java.  This issue
should examine any of these that are brought up.  However the biggest and most obvious candidate
for migration is the argument parsing, validation, usage/help text, etc. for the commands
that don't directly start/stop Solr processes (i.e. the "create", "delete", "zk", "auth",
"assert" commands).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message