[ 
https://issues.apache.org/jira/browse/FLINK-1347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264364#comment-14264364
 ] 

Alexander Alexandrov commented on FLINK-1347:
---------------------------------------------

SCOPT has a lot of nice features, but requires the client code to be written in 
Scala. This might be confusing or unpracticle if the the CLI clients are 
written in Java.

On the other hand, Commons CLI is quite old and lacks some features like type 
safety, extensibility, sub-commands (e.g. jobmanager run).

In my experience (I've worked with SCOPT, Commons CLI and a couple of other 
libraries), the best (Java) library out there is 
[argparse4j|http://argparse4j.sourceforge.net], a Java port of the Python 
[argparse|https://docs.python.org/3/library/argparse.html] library.

If you can highlight the properties / parameters which are bound to CLI 
parameters / arguments and define the corresponding domains, I can replace the 
SCOPT / Commons CLI code with Argparse4j, otherwise I suggest to stick with 
Commons CLI.

> Consolidate the CLI parser libraries
> ------------------------------------
>
>                 Key: FLINK-1347
>                 URL: https://issues.apache.org/jira/browse/FLINK-1347
>             Project: Flink
>          Issue Type: Improvement
>          Components: JobManager
>    Affects Versions: 0.9
>            Reporter: Stephan Ewen
>            Priority: Minor
>
> We currently have multiple command line parser libraries.
>   - Apache Commons CLI (formerly used by all components, now used by the 
> command line client and the web client)
>   - SCOPT (used by the TaskManager and JobManager)
> I think it makes sense to consolidate in libraries, there is no need for two 
> different versions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to