[ https://issues.apache.org/jira/browse/HBASE-16982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Appy updated HBASE-16982: ------------------------- Resolution: Fixed Status: Resolved (was: Patch Available) > Better integrate Apache CLI in AbstractHBaseTool > ------------------------------------------------ > > Key: HBASE-16982 > URL: https://issues.apache.org/jira/browse/HBASE-16982 > Project: HBase > Issue Type: Sub-task > Reporter: Appy > Assignee: Appy > Fix For: 2.0.0 > > Attachments: HBASE-16982.master.001.patch, > HBASE-16982.master.002.patch, HBASE-16982.master.003.patch, > HBASE-16982.master.004.patch, HBASE-16982.master.005.patch > > > 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)