Merge branch '1.7' into 1.8

Conflicts:
        shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java
        shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java


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

Branch: refs/heads/1.8
Commit: 4cc53bb1251f5b2b722a3050c2d4f55945183c9b
Parents: da47fb2 c3d8703
Author: Christopher Tubbs <ctubb...@apache.org>
Authored: Mon Jan 9 18:14:23 2017 -0500
Committer: Christopher Tubbs <ctubb...@apache.org>
Committed: Mon Jan 9 18:14:23 2017 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/shell/Shell.java   |  2 +-
 .../accumulo/shell/commands/GrepCommand.java    | 75 ++++++++---------
 .../accumulo/shell/commands/ScanCommand.java    | 86 ++++++++++----------
 3 files changed, 84 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/4cc53bb1/shell/src/main/java/org/apache/accumulo/shell/Shell.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/accumulo/blob/4cc53bb1/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java
----------------------------------------------------------------------
diff --cc 
shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java
index 70c5db2,6d20790..6b69bae
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java
@@@ -39,43 -39,40 +39,44 @@@ public class GrepCommand extends ScanCo
  
    @Override
    public int execute(final String fullCommand, final CommandLine cl, final 
Shell shellState) throws Exception {
-     final PrintFile printFile = getOutputFile(cl);
+     try (final PrintFile printFile = getOutputFile(cl)) {
  
-     final String tableName = OptUtil.getTableOpt(cl, shellState);
+       final String tableName = OptUtil.getTableOpt(cl, shellState);
  
-     if (cl.getArgList().isEmpty()) {
-       throw new MissingArgumentException("No terms specified");
-     }
-     final Class<? extends Formatter> formatter = getFormatter(cl, tableName, 
shellState);
-     final ScanInterpreter interpeter = getInterpreter(cl, tableName, 
shellState);
+       if (cl.getArgList().isEmpty()) {
+         throw new MissingArgumentException("No terms specified");
+       }
+       final Class<? extends Formatter> formatter = getFormatter(cl, 
tableName, shellState);
+       final ScanInterpreter interpeter = getInterpreter(cl, tableName, 
shellState);
  
-     // handle first argument, if present, the authorizations list to
-     // scan with
-     int numThreads = 20;
-     if (cl.hasOption(numThreadsOpt.getOpt())) {
-       numThreads = 
Integer.parseInt(cl.getOptionValue(numThreadsOpt.getOpt()));
-     }
-     final Authorizations auths = getAuths(cl, shellState);
-     final BatchScanner scanner = 
shellState.getConnector().createBatchScanner(tableName, auths, numThreads);
-     scanner.setRanges(Collections.singletonList(getRange(cl, interpeter)));
+       // handle first argument, if present, the authorizations list to
+       // scan with
+       int numThreads = 20;
+       if (cl.hasOption(numThreadsOpt.getOpt())) {
+         numThreads = 
Integer.parseInt(cl.getOptionValue(numThreadsOpt.getOpt()));
+       }
+       final Authorizations auths = getAuths(cl, shellState);
+       final BatchScanner scanner = 
shellState.getConnector().createBatchScanner(tableName, auths, numThreads);
+       scanner.setRanges(Collections.singletonList(getRange(cl, interpeter)));
  
-     scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS);
+       scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS);
  
-     setupSampling(tableName, cl, shellState, scanner);
++      setupSampling(tableName, cl, shellState, scanner);
 +
-     for (int i = 0; i < cl.getArgs().length; i++) {
-       setUpIterator(Integer.MAX_VALUE - cl.getArgs().length + i, "grep" + i, 
cl.getArgs()[i], scanner, cl);
-     }
-     try {
-       // handle columns
-       fetchColumns(cl, scanner, interpeter);
+       for (int i = 0; i < cl.getArgs().length; i++) {
+         setUpIterator(Integer.MAX_VALUE - cl.getArgs().length + i, "grep" + 
i, cl.getArgs()[i], scanner, cl);
+       }
+       try {
+         // handle columns
+         fetchColumns(cl, scanner, interpeter);
  
-       // output the records
-       final FormatterConfig config = new FormatterConfig();
-       config.setPrintTimestamps(cl.hasOption(timestampOpt.getOpt()));
-       printRecords(cl, shellState, config, scanner, formatter, printFile);
-     } finally {
-       scanner.close();
+         // output the records
 -        printRecords(cl, shellState, scanner, formatter, printFile);
++        final FormatterConfig config = new FormatterConfig();
++        config.setPrintTimestamps(cl.hasOption(timestampOpt.getOpt()));
++        printRecords(cl, shellState, config, scanner, formatter, printFile);
+       } finally {
+         scanner.close();
+       }
      }
  
      return 0;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/4cc53bb1/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java
----------------------------------------------------------------------
diff --cc 
shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java
index e1da444,b6eb8d6..4a18108
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java
@@@ -79,55 -65,48 +80,53 @@@ public class ScanCommand extends Comman
  
    @Override
    public int execute(final String fullCommand, final CommandLine cl, final 
Shell shellState) throws Exception {
-     final PrintFile printFile = getOutputFile(cl);
-     final String tableName = OptUtil.getTableOpt(cl, shellState);
+     try (final PrintFile printFile = getOutputFile(cl)) {
+       final String tableName = OptUtil.getTableOpt(cl, shellState);
  
-     final Class<? extends Formatter> formatter = getFormatter(cl, tableName, 
shellState);
-     final ScanInterpreter interpeter = getInterpreter(cl, tableName, 
shellState);
+       final Class<? extends Formatter> formatter = getFormatter(cl, 
tableName, shellState);
+       final ScanInterpreter interpeter = getInterpreter(cl, tableName, 
shellState);
  
-     String classLoaderContext = null;
-     if (cl.hasOption(contextOpt.getOpt())) {
-       classLoaderContext = cl.getOptionValue(contextOpt.getOpt());
-     }
-     // handle first argument, if present, the authorizations list to
-     // scan with
-     final Authorizations auths = getAuths(cl, shellState);
-     final Scanner scanner = 
shellState.getConnector().createScanner(tableName, auths);
-     if (null != classLoaderContext) {
-       scanner.setClassLoaderContext(classLoaderContext);
-     }
-     // handle session-specific scan iterators
-     addScanIterators(shellState, cl, scanner, tableName);
++      String classLoaderContext = null;
++      if (cl.hasOption(contextOpt.getOpt())) {
++        classLoaderContext = cl.getOptionValue(contextOpt.getOpt());
++      }
+       // handle first argument, if present, the authorizations list to
+       // scan with
+       final Authorizations auths = getAuths(cl, shellState);
+       final Scanner scanner = 
shellState.getConnector().createScanner(tableName, auths);
 -
++      if (null != classLoaderContext) {
++        scanner.setClassLoaderContext(classLoaderContext);
++      }
+       // handle session-specific scan iterators
+       addScanIterators(shellState, cl, scanner, tableName);
  
-     // handle remaining optional arguments
-     scanner.setRange(getRange(cl, interpeter));
+       // handle remaining optional arguments
+       scanner.setRange(getRange(cl, interpeter));
  
-     // handle columns
-     fetchColumns(cl, scanner, interpeter);
+       // handle columns
+       fetchColumns(cl, scanner, interpeter);
  
-     // set timeout
-     scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS);
+       // set timeout
+       scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS);
  
-     setupSampling(tableName, cl, shellState, scanner);
++      setupSampling(tableName, cl, shellState, scanner);
 +
-     // output the records
+       // output the records
 +
-     final FormatterConfig config = new FormatterConfig();
-     config.setPrintTimestamps(cl.hasOption(timestampOpt.getOpt()));
-     if (cl.hasOption(showFewOpt.getOpt())) {
-       final String showLength = cl.getOptionValue(showFewOpt.getOpt());
-       try {
-         final int length = Integer.parseInt(showLength);
-         config.setShownLength(length);
-       } catch (NumberFormatException nfe) {
-         shellState.getReader().println("Arg must be an integer.");
-       } catch (IllegalArgumentException iae) {
-         shellState.getReader().println("Arg must be greater than one.");
++      final FormatterConfig config = new FormatterConfig();
++      config.setPrintTimestamps(cl.hasOption(timestampOpt.getOpt()));
+       if (cl.hasOption(showFewOpt.getOpt())) {
+         final String showLength = cl.getOptionValue(showFewOpt.getOpt());
+         try {
+           final int length = Integer.parseInt(showLength);
 -          if (length < 1) {
 -            throw new IllegalArgumentException();
 -          }
 -          BinaryFormatter.getlength(length);
 -          printBinaryRecords(cl, shellState, scanner, printFile);
++          config.setShownLength(length);
+         } catch (NumberFormatException nfe) {
+           shellState.getReader().println("Arg must be an integer.");
+         } catch (IllegalArgumentException iae) {
+           shellState.getReader().println("Arg must be greater than one.");
+         }
 -
 -      } else {
 -        printRecords(cl, shellState, scanner, formatter, printFile);
        }
-     }
-     printRecords(cl, shellState, config, scanner, formatter, printFile);
-     if (printFile != null) {
-       printFile.close();
++      printRecords(cl, shellState, config, scanner, formatter, printFile);
      }
  
      return 0;
@@@ -343,10 -324,13 +342,15 @@@
      o.addOption(interpreterOpt);
      o.addOption(formatterInterpeterOpt);
      o.addOption(timeoutOption);
-     o.addOption(outputFileOpt);
+     if (Arrays.asList(new String[] {ScanCommand.class.getName(), 
GrepCommand.class.getName(), EGrepCommand.class.getName()})
+         .contains(this.getClass().getName())) {
+       // supported subclasses must handle the output file option properly
+       // only add this option to commands which handle it correctly
+       o.addOption(outputFileOpt);
+     }
      o.addOption(profileOpt);
 +    o.addOption(sampleOpt);
 +    o.addOption(contextOpt);
  
      return o;
    }

Reply via email to