You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Appy (JIRA)" <ji...@apache.org> on 2016/11/01 03:14:58 UTC

[jira] [Created] (HBASE-16982) Better integrate Apache CLI in AbstractHBaseTool

Appy created HBASE-16982:
----------------------------

             Summary: Better integrate Apache CLI in AbstractHBaseTool
                 Key: HBASE-16982
                 URL: https://issues.apache.org/jira/browse/HBASE-16982
             Project: HBase
          Issue Type: Improvement
            Reporter: Appy
            Assignee: Appy


Problem

1. Inconsistencies in our user facing tools.
- options:
    start with single/double dash
    words separated by dash or underscore or just joined together
    someplace use '=' to separate value, other use space (ExportSnapshot vs HashTable)

- Description
  Manually formatting options and their descriptions in printUsage()
  Inconsistant formatting, sometimes even weird.
  Incomplete. Sometimes people forget to add new option to description

2. Manual parsing of options (those huge if-else loops iterating over args)


Solution
Use Apache CLI
- It has various validations for option names which'll fix first set of issues.
- using AbstractHBaseTool's print usage function will ensure consistent formatting (although we loose the power to order the options)
- If we enforce the method of defining options as in patch, it's highly unlikely to forget adding description.
- CLI parses the options for us.

Using Apache CLI when writing new tools is straight forward, but it's not easy when porting exiting tools since some option names are not valid as per CLI's validation.
New method, processOldArgs(), will allow to port these tools in a backward compatible manner.



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