kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Swapnil Ghike (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-786) Use "withRequiredArg" while parsing jopt options in all tools
Date Tue, 05 Mar 2013 00:47:12 GMT

    [ https://issues.apache.org/jira/browse/KAFKA-786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13592863#comment-13592863

Swapnil Ghike commented on KAFKA-786:

Also note that withRequiredArg() does not check if xyz has a non-null value, we still need
to perform that check ourselves in the code. So, jopt will do nothing to prevent you from
running into a NPE, if you ran
kafka.tool.sh and xyz was an optional that required an argument, but was not provided a default
value in the code.
> Use "withRequiredArg" while parsing jopt options in all tools
> -------------------------------------------------------------
>                 Key: KAFKA-786
>                 URL: https://issues.apache.org/jira/browse/KAFKA-786
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Swapnil Ghike
>            Priority: Blocker
>              Labels: kafka-0.8, p2
> While parsing jopt Options in our tools, we sometimes use withRequiredArg() and sometimes
use withOptionalArg(). I think this confusing and we should always use withRequiredArg().
> withOptionalArg() allows you to provide an option without an argument. For instance,
the following commands will yield the same result if xyz was a parser option that accepted
an optional argument and was provided a default in the tool's code:
> kafka-tool.sh --xyz 
> kafka-tool.sh 
> I don't quite see the need to allow the 1st command, think that writing code will be
less confusing if we allowed only the second command. To do that, we can make all options
require arguments. These arguments will need to be given via command line or via a default
in the code. So if xyz was an option that required an argument then you will see the following:
> kafka-tool.sh --xyz 
> Option ['xyz'] requires an argument //printed by jOpt
> kafka-tool.sh --xyz argumentVal
> // Kafka tool proceeds
> If you want to use a default value specified for xyz in the code, then simply run ./kafka-tool.sh.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message