Repository: hive
Updated Branches:
  refs/heads/hbase-metastore 129bed52e -> 4d66206d8


HIVE-11633 : import tool should print help by default (Sergey Shelukhin, 
reviewed by Alan Gates)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4d66206d
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4d66206d
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4d66206d

Branch: refs/heads/hbase-metastore
Commit: 4d66206d89f57849f08ff1d4fc7e3a48f61b6275
Parents: 129bed5
Author: Sergey Shelukhin <ser...@apache.org>
Authored: Tue Aug 25 11:03:53 2015 -0700
Committer: Sergey Shelukhin <ser...@apache.org>
Committed: Tue Aug 25 11:03:53 2015 -0700

----------------------------------------------------------------------
 .../hive/metastore/hbase/HBaseImport.java       | 38 +++++++++++++++-----
 1 file changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4d66206d/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseImport.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseImport.java 
b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseImport.java
index e143de7..fac8e90 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseImport.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseImport.java
@@ -75,14 +75,18 @@ public class HBaseImport {
 
   static final private Log LOG = 
LogFactory.getLog(HBaseImport.class.getName());
 
-  public static void main(String[] args) {
+  public static int main(String[] args) {
     try {
-      HBaseImport tool = new HBaseImport(args);
+      HBaseImport tool = new HBaseImport();
+      int rv = tool.init(args);
+      if (rv != 0) return rv;
       tool.run();
     } catch (Exception e) {
       System.err.println("Caught exception " + e.getClass().getName() + " with 
message <" +
           e.getMessage() + ">");
+      return 1;
     }
+    return 0;
   }
 
   private ThreadLocal<RawStore> rdbmsStore = new ThreadLocal<RawStore>() {
@@ -121,8 +125,14 @@ public class HBaseImport {
   private int parallel;
   private int batchSize;
 
+  private HBaseImport() {}
+
   @VisibleForTesting
-  HBaseImport(String... args) throws ParseException {
+  public HBaseImport(String... args) throws ParseException {
+    init(args);
+  }
+
+  private int init(String... args) throws ParseException {
     Options options = new Options();
 
     doAll = doKerberos = false;
@@ -185,38 +195,45 @@ public class HBaseImport {
 
     // Process help, if it was asked for, this must be done first
     if (cli.hasOption('h')) {
-      HelpFormatter formatter = new HelpFormatter();
-      formatter.printHelp("hbaseschematool", options);
-      // returning here results in nothing else happening, because none of the 
other flags have
-      // been set.
-      return;
+      printHelp(options);
+      return 1;
     }
 
+    boolean hasCmd = false;
     // Now process the other command line args
     if (cli.hasOption('a')) {
+      hasCmd = true;
       doAll = true;
     }
     if (cli.hasOption('b')) {
       batchSize = Integer.valueOf(cli.getOptionValue('b'));
     }
     if (cli.hasOption('d')) {
+      hasCmd = true;
       dbsToImport = Arrays.asList(cli.getOptionValues('d'));
     }
     if (cli.hasOption('f')) {
+      hasCmd = true;
       functionsToImport = Arrays.asList(cli.getOptionValues('f'));
     }
     if (cli.hasOption('p')) {
       parallel = Integer.valueOf(cli.getOptionValue('p'));
     }
     if (cli.hasOption('r')) {
+      hasCmd = true;
       rolesToImport = Arrays.asList(cli.getOptionValues('r'));
     }
     if (cli.hasOption('k')) {
       doKerberos = true;
     }
     if (cli.hasOption('t')) {
+      hasCmd = true;
       tablesToImport = Arrays.asList(cli.getOptionValues('t'));
     }
+    if (!hasCmd) {
+      printHelp(options);
+      return 1;
+    }
 
     dbs = new ArrayList<>();
     // We don't want to bound the size of the table queue because we keep it 
all in memory
@@ -225,6 +242,11 @@ public class HBaseImport {
 
     // Bound the size of this queue so we don't get too much in memory.
     partQueue = new ArrayBlockingQueue<>(parallel * 2);
+    return 0;
+  }
+
+  private void printHelp(Options options) {
+    (new HelpFormatter()).printHelp("hbaseschematool", options);
   }
 
   @VisibleForTesting

Reply via email to