You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/06/06 14:48:30 UTC

svn commit: r1490262 - in /accumulo/branches/ACCUMULO-118: ./ assemble/ core/ core/src/main/java/org/apache/accumulo/core/client/mock/ core/src/main/java/org/apache/accumulo/core/util/ core/src/main/java/org/apache/accumulo/core/util/format/ core/src/m...

Author: ecn
Date: Thu Jun  6 12:48:28 2013
New Revision: 1490262

URL: http://svn.apache.org/r1490262
Log:
ACCUMULO-118 merge trunk to branch

Modified:
    accumulo/branches/ACCUMULO-118/   (props changed)
    accumulo/branches/ACCUMULO-118/assemble/   (props changed)
    accumulo/branches/ACCUMULO-118/core/   (props changed)
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/format/DeleterFormatter.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClasspathCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClearCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteRowsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetAuthsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetGroupsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HistoryCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListShellIterCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MaxRowCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MergeCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ScanCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ShellPluginConfigurationCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SystemPermissionsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablePermissionsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UsersCommand.java
    accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/WhoAmICommand.java
    accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java
    accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/command/FormatterCommandTest.java
    accumulo/branches/ACCUMULO-118/examples/   (props changed)
    accumulo/branches/ACCUMULO-118/fate/src/main/java/org/apache/accumulo/fate/ZooStore.java   (props changed)
    accumulo/branches/ACCUMULO-118/fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooSession.java   (props changed)
    accumulo/branches/ACCUMULO-118/pom.xml   (contents, props changed)
    accumulo/branches/ACCUMULO-118/proxy/README   (props changed)
    accumulo/branches/ACCUMULO-118/server/   (props changed)
    accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java
    accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/util/Initialize.java
    accumulo/branches/ACCUMULO-118/src/   (props changed)
    accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/AuditMessageTest.java
    accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java

Propchange: accumulo/branches/ACCUMULO-118/
------------------------------------------------------------------------------
  Merged /accumulo/trunk:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/assemble/
------------------------------------------------------------------------------
  Merged /accumulo/trunk/assemble:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/core/
------------------------------------------------------------------------------
  Merged /accumulo/trunk/core:r1488407,1489982

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/client/mock/MockShell.java Thu Jun  6 12:48:28 2013
@@ -20,9 +20,9 @@ import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.Writer;
+import java.io.OutputStream;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.util.shell.Shell;
 import org.apache.commons.cli.CommandLine;
@@ -34,12 +34,12 @@ public class MockShell extends Shell {
   private static final String NEWLINE = "\n";
   
   protected InputStream in;
-  protected Writer writer;
+  protected OutputStream out;
   
-  public MockShell(InputStream in, Writer writer) throws IOException {
+  public MockShell(InputStream in, OutputStream out) throws IOException {
     super();
     this.in = in;
-    this.writer = writer;
+    this.out = out;
   }
   
   public boolean config(String... args) {
@@ -47,15 +47,15 @@ public class MockShell extends Shell {
     
     // Update the ConsoleReader with the input and output "redirected"
     try {
-      this.reader = new ConsoleReader(in, writer);
+      this.reader = new ConsoleReader(in, out);
     } catch (Exception e) {
       printException(e);
       configError = true;
     }
     
     // Don't need this for testing purposes
-    this.reader.setUseHistory(false);
-    this.reader.setUsePagination(false);
+    this.reader.setHistoryEnabled(false);
+    this.reader.setPaginationEnabled(false);
     
     // Make the parsing from the client easier;
     this.verbose = false;
@@ -96,10 +96,10 @@ public class MockShell extends Shell {
       if (hasExited())
         return exitCode;
       
-      reader.setDefaultPrompt(getDefaultPrompt());
+      reader.setPrompt(getDefaultPrompt());
       input = reader.readLine();
       if (input == null) {
-        reader.printNewline();
+        reader.println();
         return exitCode;
       } // user canceled
       
@@ -116,11 +116,11 @@ public class MockShell extends Shell {
   }
   
   /**
-   * @param writer
-   *          the writer to set
+   * @param out
+   *          the output stream to set
    */
-  public void setConsoleWriter(Writer writer) {
-    this.writer = writer;
+  public void setConsoleWriter(OutputStream out) {
+    this.out = out;
   }
   
   /**

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java Thu Jun  6 12:48:28 2013
@@ -21,7 +21,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintStream;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.cli.ClientOpts.Password;

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/format/DeleterFormatter.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/format/DeleterFormatter.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/format/DeleterFormatter.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/format/DeleterFormatter.java Thu Jun  6 12:48:28 2013
@@ -72,7 +72,7 @@ public class DeleterFormatter extends De
     boolean delete = force;
     try {
       if (!force) {
-        shellState.getReader().flushConsole();
+        shellState.getReader().flush();
         String line = shellState.getReader().readLine("Delete { " + entryStr + " } ? ");
         more = line != null;
         delete = line != null && (line.equalsIgnoreCase("y") || line.equalsIgnoreCase("yes"));
@@ -88,7 +88,7 @@ public class DeleterFormatter extends De
               log.trace(cvs.toString());
         }
       }
-      shellState.getReader().printString(String.format("[%s] %s%n", delete ? "DELETED" : "SKIPPED", entryStr));
+      shellState.getReader().print(String.format("[%s] %s%n", delete ? "DELETED" : "SKIPPED", entryStr));
     } catch (IOException e) {
       log.error("Cannot write to console", e);
       throw new RuntimeException(e);

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java Thu Jun  6 12:48:28 2013
@@ -34,8 +34,8 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.UUID;
 
-import jline.ConsoleReader;
-import jline.History;
+import jline.console.ConsoleReader;
+import jline.console.history.FileHistory;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.AccumuloException;
@@ -293,7 +293,7 @@ public class Shell extends ShellOptions 
       Runtime.getRuntime().addShutdownHook(new Thread() {
         @Override
         public void start() {
-          reader.getTerminal().enableEcho();
+          reader.getTerminal().setEchoEnabled(true);
         }
       });
       
@@ -308,7 +308,7 @@ public class Shell extends ShellOptions 
       }
       
       if (this.token == null) {
-        reader.printNewline();
+        reader.println();
         throw new MissingArgumentException("No password or token option supplied");
       } // user canceled
       
@@ -436,13 +436,26 @@ public class Shell extends ShellOptions 
     if (!accumuloDir.exists() && !accumuloDir.mkdirs())
       log.warn("Unable to make directory for history at " + accumuloDir);
     try {
-      History history = new History();
-      history.setHistoryFile(new File(historyPath));
+      final FileHistory history = new FileHistory(new File(historyPath));
       reader.setHistory(history);
+      // Add shutdown hook to flush file history, per jline javadocs
+      Runtime.getRuntime().addShutdownHook(new Thread() {
+        @Override
+        public void run() {
+          try {
+            history.flush();
+          } catch (IOException e) {
+            log.warn("Could not flush history to file.");
+          }
+        }
+      });
     } catch (IOException e) {
       log.warn("Unable to load history file at " + historyPath);
     }
     
+    // This would be a nice feature but !METADATA screws it up
+    reader.setExpandEvents(false);
+    
     ShellCompletor userCompletor = null;
     
     if (execFile != null) {
@@ -468,16 +481,16 @@ public class Shell extends ShellOptions 
       // If tab completion is true we need to reset
       if (tabCompletion) {
         if (userCompletor != null)
-          reader.removeCompletor(userCompletor);
+          reader.removeCompleter(userCompletor);
         
         userCompletor = setupCompletion();
-        reader.addCompletor(userCompletor);
+        reader.addCompleter(userCompletor);
       }
       
-      reader.setDefaultPrompt(getDefaultPrompt());
+      reader.setPrompt(getDefaultPrompt());
       input = reader.readLine();
       if (input == null) {
-        reader.printNewline();
+        reader.println();
         return exitCode;
       } // user canceled
       
@@ -486,10 +499,10 @@ public class Shell extends ShellOptions 
   }
   
   public void printInfo() throws IOException {
-    reader.printString("\n" + SHELL_DESCRIPTION + "\n" + "- \n" + "- version: " + Constants.VERSION + "\n" + "- instance name: "
+    reader.print("\n" + SHELL_DESCRIPTION + "\n" + "- \n" + "- version: " + Constants.VERSION + "\n" + "- instance name: "
         + connector.getInstance().getInstanceName() + "\n" + "- instance id: " + connector.getInstance().getInstanceID() + "\n" + "- \n"
         + "- type 'help' for a list of available commands\n" + "- \n");
-    reader.flushConsole();
+    reader.flush();
   }
   
   public void printVerboseInfo() throws IOException {
@@ -516,7 +529,7 @@ public class Shell extends ShellOptions 
       }
     }
     sb.append("-\n");
-    reader.printString(sb.toString());
+    reader.print(sb.toString());
   }
   
   public String getDefaultPrompt() {
@@ -526,9 +539,8 @@ public class Shell extends ShellOptions 
   public void execCommand(String input, boolean ignoreAuthTimeout, boolean echoPrompt) throws IOException {
     audit.log(Level.INFO, getDefaultPrompt() + input);
     if (echoPrompt) {
-      reader.printString(getDefaultPrompt());
-      reader.printString(input);
-      reader.printNewline();
+      reader.print(getDefaultPrompt());
+      reader.println(input);
     }
     
     if (input.startsWith(COMMENT_PREFIX)) {
@@ -555,18 +567,18 @@ public class Shell extends ShellOptions 
         // Obtain the command from the command table
         sc = commandFactory.get(command);
         if (sc == null) {
-          reader.printString(String.format("Unknown command \"%s\".  Enter \"help\" for a list possible commands.\n", command));
-          reader.flushConsole();
+          reader.println(String.format("Unknown command \"%s\".  Enter \"help\" for a list possible commands.", command));
+          reader.flush();
           return;
         }
         
         if (!(sc instanceof ExitCommand) && !ignoreAuthTimeout && System.currentTimeMillis() - lastUserActivity > authTimeout) {
-          reader.printString("Shell has been idle for too long. Please re-authenticate.\n");
+          reader.println("Shell has been idle for too long. Please re-authenticate.");
           boolean authFailed = true;
           do {
             String pwd = readMaskedLine("Enter current password for '" + connector.whoami() + "': ", '*');
             if (pwd == null) {
-              reader.printNewline();
+              reader.println();
               return;
             } // user canceled
             
@@ -578,7 +590,7 @@ public class Shell extends ShellOptions 
             }
             
             if (authFailed)
-              reader.printString("Invalid password. ");
+              reader.print("Invalid password. ");
           } while (authFailed);
           lastUserActivity = System.currentTimeMillis();
         }
@@ -605,7 +617,7 @@ public class Shell extends ShellOptions 
         } else {
           int tmpCode = sc.execute(input, cl, this);
           exitCode += tmpCode;
-          reader.flushConsole();
+          reader.flush();
         }
         
       } catch (ConstraintViolationException e) {
@@ -633,7 +645,7 @@ public class Shell extends ShellOptions 
       ++exitCode;
       printException(new BadArgumentException("Unrecognized empty command", command, -1));
     }
-    reader.flushConsole();
+    reader.flush();
   }
   
   /**
@@ -804,7 +816,7 @@ public class Shell extends ShellOptions 
     @Override
     public void print(String s) {
       try {
-        reader.printString(s + "\n");
+        reader.println(s);
       } catch (Exception ex) {
         throw new RuntimeException(ex);
       }
@@ -840,8 +852,8 @@ public class Shell extends ShellOptions 
     int linesPrinted = 0;
     String prompt = "-- hit any key to continue or 'q' to quit --";
     int lastPromptLength = prompt.length();
-    int termWidth = reader.getTermwidth();
-    int maxLines = reader.getTermheight();
+    int termWidth = reader.getTerminal().getWidth();
+    int maxLines = reader.getTerminal().getHeight();
     
     String peek = null;
     while (lines.hasNext()) {
@@ -851,8 +863,7 @@ public class Shell extends ShellOptions 
       for (String line : nextLine.split("\\n")) {
         if (out == null) {
           if (peek != null) {
-            reader.printString(peek);
-            reader.printNewline();
+            reader.println(peek);
             if (paginate) {
               linesPrinted += peek.length() == 0 ? 0 : Math.ceil(peek.length() * 1.0 / termWidth);
               
@@ -864,15 +875,16 @@ public class Shell extends ShellOptions 
                 int numdashes = (termWidth - prompt.length()) / 2;
                 String nextPrompt = repeat("-", numdashes) + prompt + repeat("-", numdashes);
                 lastPromptLength = nextPrompt.length();
-                reader.printString(nextPrompt);
-                reader.flushConsole();
-                if (Character.toUpperCase((char) reader.readVirtualKey()) == 'Q') {
-                  reader.printNewline();
+                reader.print(nextPrompt);
+                reader.flush();
+                
+                if (Character.toUpperCase((char) reader.readCharacter()) == 'Q') {
+                  reader.println();
                   return;
                 }
-                reader.printNewline();
-                termWidth = reader.getTermwidth();
-                maxLines = reader.getTermheight();
+                reader.println();
+                termWidth = reader.getTerminal().getWidth();
+                maxLines = reader.getTerminal().getHeight();
               }
             }
           }
@@ -883,8 +895,7 @@ public class Shell extends ShellOptions 
       }
     }
     if (out == null && peek != null) {
-      reader.printString(peek);
-      reader.printNewline();
+      reader.println(peek);
     }
   }
   
@@ -922,7 +933,7 @@ public class Shell extends ShellOptions 
   private final void printConstraintViolationException(ConstraintViolationException cve) {
     printException(cve, "");
     int COL1 = 50, COL2 = 14;
-    int col3 = Math.max(1, Math.min(Integer.MAX_VALUE, reader.getTermwidth() - COL1 - COL2 - 6));
+    int col3 = Math.max(1, Math.min(Integer.MAX_VALUE, reader.getTerminal().getWidth() - COL1 - COL2 - 6));
     logError(String.format("%" + COL1 + "s-+-%" + COL2 + "s-+-%" + col3 + "s%n", repeat("-", COL1), repeat("-", COL2), repeat("-", col3)));
     logError(String.format("%-" + COL1 + "s | %" + COL2 + "s | %-" + col3 + "s%n", "Constraint class", "Violation code", "Violation Description"));
     logError(String.format("%" + COL1 + "s-+-%" + COL2 + "s-+-%" + col3 + "s%n", repeat("-", COL1), repeat("-", COL2), repeat("-", col3)));
@@ -1043,8 +1054,8 @@ public class Shell extends ShellOptions 
     log.error(s);
     if (logErrorsToConsole) {
       try {
-        reader.printString("ERROR: " + s + "\n");
-        reader.flushConsole();
+        reader.println("ERROR: " + s);
+        reader.flush();
       } catch (IOException e) {}
     }
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java Thu Jun  6 12:48:28 2013
@@ -22,12 +22,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import jline.Completor;
+import jline.console.completer.Completer;
 
 import org.apache.accumulo.core.util.shell.Shell.Command.CompletionSet;
 import org.apache.accumulo.core.util.shell.commands.QuotedStringTokenizer;
 
-public class ShellCompletor implements Completor {
+public class ShellCompletor implements Completer {
   
   // private static final Logger log = Logger.getLogger(ShellCompletor.class);
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java Thu Jun  6 12:48:28 2013
@@ -34,12 +34,12 @@ public class AuthenticateCommand extends
     final String user = cl.getArgs()[0];
     final String p = shellState.readMaskedLine("Enter current password for '" + user + "': ", '*');
     if (p == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     final byte[] password = p.getBytes();
     final boolean valid = shellState.getConnector().securityOperations().authenticateUser(user, new PasswordToken(password));
-    shellState.getReader().printString((valid ? "V" : "Not v") + "alid\n");
+    shellState.getReader().println((valid ? "V" : "Not v") + "alid");
     return 0;
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClasspathCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClasspathCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClasspathCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClasspathCommand.java Thu Jun  6 12:48:28 2013
@@ -18,7 +18,7 @@ package org.apache.accumulo.core.util.sh
 
 import java.io.IOException;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.util.shell.Shell;
 import org.apache.accumulo.core.util.shell.Shell.Command;
@@ -34,7 +34,7 @@ public class ClasspathCommand extends Co
       @Override
       public void print(String s) {
         try {
-          reader.printString(s + "\n");
+          reader.println(s);
         } catch (IOException ex) {
           throw new RuntimeException(ex);
         }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClearCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClearCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClearCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ClearCommand.java Thu Jun  6 12:48:28 2013
@@ -31,16 +31,16 @@ public class ClearCommand extends Comman
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException {
     // custom clear screen, so I don't have to redraw the prompt twice
-    if (!shellState.getReader().getTerminal().isANSISupported()) {
+    if (!shellState.getReader().getTerminal().isAnsiSupported()) {
       throw new IOException("Terminal does not support ANSI commands");
     }
     // send the ANSI code to clear the screen
-    shellState.getReader().printString(((char) 27) + "[2J");
-    shellState.getReader().flushConsole();
+    shellState.getReader().print(((char) 27) + "[2J");
+    shellState.getReader().flush();
     
     // then send the ANSI code to go to position 1,1
-    shellState.getReader().printString(((char) 27) + "[1;1H");
-    shellState.getReader().flushConsole();
+    shellState.getReader().print(((char) 27) + "[1;1H");
+    shellState.getReader().flush();
     
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java Thu Jun  6 12:48:28 2013
@@ -24,7 +24,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TreeMap;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -218,7 +218,7 @@ public class ConfigCommand extends Comma
   }
   
   private void printConfFooter(List<String> output) {
-    int col3 = Math.max(1, Math.min(Integer.MAX_VALUE, reader.getTermwidth() - COL1 - COL2 - 6));
+    int col3 = Math.max(1, Math.min(Integer.MAX_VALUE, reader.getTerminal().getWidth() - COL1 - COL2 - 6));
     output.add(String.format("%" + COL1 + "s-+-%" + COL2 + "s-+-%-" + col3 + "s", Shell.repeat("-", COL1), Shell.repeat("-", COL2), Shell.repeat("-", col3)));
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java Thu Jun  6 12:48:28 2013
@@ -40,19 +40,19 @@ public class ConstraintCommand extends C
                 + Constraint.class.getName());
           }
           i = shellState.getConnector().tableOperations().addConstraint(tableName, constraint);
-          shellState.getReader().printString("Added constraint " + constraint + " to table " + tableName + " with number " + i + "\n");
+          shellState.getReader().println("Added constraint " + constraint + " to table " + tableName + " with number " + i);
         }
         break;
       case DELETE:
         for (String constraint : cl.getArgs()) {
           i = Integer.parseInt(constraint);
           shellState.getConnector().tableOperations().removeConstraint(tableName, i);
-          shellState.getReader().printString("Removed constraint " + i + " from table " + tableName + "\n");
+          shellState.getReader().println("Removed constraint " + i + " from table " + tableName);
         }
         break;
       case LIST:
         for (Entry<String,Integer> property : shellState.getConnector().tableOperations().listConstraints(tableName).entrySet()) {
-          shellState.getReader().printString(property.toString() + "\n");
+          shellState.getReader().println(property.toString());
         }
     }
     

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java Thu Jun  6 12:48:28 2013
@@ -59,7 +59,7 @@ public class CreateTableCommand extends 
     final String testTableName = cl.getArgs()[0];
     
     if (!testTableName.matches(Constants.VALID_TABLE_NAME_REGEX)) {
-      shellState.getReader().printString("Only letters, numbers and underscores are allowed for use in table names. \n");
+      shellState.getReader().println("Only letters, numbers and underscores are allowed for use in table names.");
       throw new IllegalArgumentException();
     }
     

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateUserCommand.java Thu Jun  6 12:48:28 2013
@@ -36,12 +36,12 @@ public class CreateUserCommand extends C
     
     final String password = shellState.readMaskedLine("Enter new password for '" + user + "': ", '*');
     if (password == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     String passwordConfirm = shellState.readMaskedLine("Please confirm new password for '" + user + "': ", '*');
     if (passwordConfirm == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java Thu Jun  6 12:48:28 2013
@@ -60,7 +60,7 @@ public class DUCommand extends Command {
         @Override
         public void print(String line) {
           try {
-            shellState.getReader().printString(line + "\n");
+            shellState.getReader().println(line);
           } catch (IOException ex) {
             throw new RuntimeException(ex);
           }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DebugCommand.java Thu Jun  6 12:48:28 2013
@@ -38,7 +38,7 @@ public class DebugCommand extends Comman
         throw new BadArgumentException("Argument must be 'on' or 'off'", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
       }
     } else if (cl.getArgs().length == 0) {
-      shellState.getReader().printString(Shell.isDebuggingEnabled() ? "on\n" : "off\n");
+      shellState.getReader().println(Shell.isDebuggingEnabled() ? "on" : "off");
     } else {
       shellState.printException(new IllegalArgumentException("Expected 0 or 1 argument. There were " + cl.getArgs().length + "."));
       printHelp(shellState);

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteRowsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteRowsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteRowsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteRowsCommand.java Thu Jun  6 12:48:28 2013
@@ -32,7 +32,7 @@ public class DeleteRowsCommand extends C
     final Text startRow = OptUtil.getStartRow(cl);
     final Text endRow = OptUtil.getEndRow(cl);
     if (!cl.hasOption(forceOpt.getOpt()) && (startRow == null || endRow == null)) {
-      shellState.getReader().printString("Not deleting unbounded range. Specify both ends, or use --force\n");
+      shellState.getReader().println("Not deleting unbounded range. Specify both ends, or use --force");
       return 1;
     }
     shellState.getConnector().tableOperations().deleteRows(tableName, startRow, endRow);

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java Thu Jun  6 12:48:28 2013
@@ -41,7 +41,7 @@ public class DeleteTableCommand extends 
   @Override
   protected void doTableOp(final Shell shellState, final String tableName) throws Exception {
     shellState.getConnector().tableOperations().delete(tableName);
-    shellState.getReader().printString("Table: [" + tableName + "] has been deleted. \n");
+    shellState.getReader().println("Table: [" + tableName + "] has been deleted.");
     if (shellState.getTableName().equals(tableName)) {
       shellState.setTableName("");
     }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetAuthsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetAuthsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetAuthsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetAuthsCommand.java Thu Jun  6 12:48:28 2013
@@ -42,7 +42,7 @@ public class GetAuthsCommand extends Com
     for (byte[] auth : auths) {
       set.add(new String(auth));
     }
-    shellState.getReader().printString(StringUtils.join(set, ',') + "\n");
+    shellState.getReader().println(StringUtils.join(set, ','));
     return 0;
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetGroupsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetGroupsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetGroupsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetGroupsCommand.java Thu Jun  6 12:48:28 2013
@@ -36,7 +36,7 @@ public class GetGroupsCommand extends Co
     final Map<String,Set<Text>> groups = shellState.getConnector().tableOperations().getLocalityGroups(tableName);
     
     for (Entry<String,Set<Text>> entry : groups.entrySet()) {
-      shellState.getReader().printString(entry.getKey() + "=" + LocalityGroupUtil.encodeColumnFamilies(entry.getValue()) + "\n");
+      shellState.getReader().println(entry.getKey() + "=" + LocalityGroupUtil.encodeColumnFamilies(entry.getValue()));
     }
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java Thu Jun  6 12:48:28 2013
@@ -35,7 +35,7 @@ public class HelpCommand extends Command
   private Option noWrapOpt;
   
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws ShellCommandException, IOException {
-    int numColumns = shellState.getReader().getTermwidth();
+    int numColumns = shellState.getReader().getTerminal().getWidth();
     if (cl.hasOption(noWrapOpt.getOpt())) {
       numColumns = Integer.MAX_VALUE;
     }
@@ -91,7 +91,7 @@ public class HelpCommand extends Command
     for (String cmd : cl.getArgs()) {
       final Command c = shellState.commandFactory.get(cmd);
       if (c == null) {
-        shellState.getReader().printString(String.format("Unknown command \"%s\".  Enter \"help\" for a list possible commands.\n", cmd));
+        shellState.getReader().println(String.format("Unknown command \"%s\".  Enter \"help\" for a list possible commands.", cmd));
       } else {
         c.printHelp(shellState, numColumns);
       }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java Thu Jun  6 12:48:28 2013
@@ -38,12 +38,11 @@ public class HiddenCommand extends Comma
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception {
     if (rand.nextInt(10) == 0) {
       shellState.getReader().beep();
-      shellState.getReader().printNewline();
-      shellState.getReader().printString(
+      shellState.getReader().println();
+      shellState.getReader().println(
           new String(Base64.decodeBase64(("ICAgICAgIC4tLS4KICAgICAgLyAvXCBcCiAgICAgKCAvLS1cICkKICAgICAuPl8gIF88LgogICAgLyB8ICd8ICcgXAog"
               + "ICAvICB8Xy58Xy4gIFwKICAvIC98ICAgICAgfFwgXAogfCB8IHwgfFwvfCB8IHwgfAogfF98IHwgfCAgfCB8IHxffAogICAgIC8gIF9fICBcCiAgICAvICAv"
               + "ICBcICBcCiAgIC8gIC8gICAgXCAgXF8KIHwvICAvICAgICAgXCB8IHwKIHxfXy8gICAgICAgIFx8X3wK").getBytes())));
-      shellState.getReader().printNewline();
     } else {
       throw new ShellCommandException(ErrorCode.UNRECOGNIZED_COMMAND, getName());
     }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HistoryCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HistoryCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HistoryCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HistoryCommand.java Thu Jun  6 12:48:28 2013
@@ -16,10 +16,11 @@
  */
 package org.apache.accumulo.core.util.shell.commands;
 
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Iterator;
+import java.util.ListIterator;
+
+import jline.console.history.History.Entry;
 
 import org.apache.accumulo.core.util.shell.Shell;
 import org.apache.accumulo.core.util.shell.Shell.Command;
@@ -27,8 +28,6 @@ import org.apache.commons.cli.CommandLin
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.collections.iterators.AbstractIteratorDecorator;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.LineIterator;
 
 public class HistoryCommand extends Command {
   private Option clearHist;
@@ -37,39 +36,27 @@ public class HistoryCommand extends Comm
   @SuppressWarnings("unchecked")
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException {
-    String home = System.getProperty("HOME");
-    if (home == null)
-      home = System.getenv("HOME");
-    final String historyPath = home + "/" + Shell.HISTORY_DIR_NAME + "/" + Shell.HISTORY_FILE_NAME;
-    
     if (cl.hasOption(clearHist.getOpt())) {
-      final FileOutputStream out = new FileOutputStream(historyPath);
-      out.close();
+      shellState.getReader().getHistory().clear();
     } else {
-      final LineIterator it = FileUtils.lineIterator(new File(historyPath));
-      try {
-        shellState.printLines(new HistoryLineIterator(it), !cl.hasOption(disablePaginationOpt.getOpt()));
-      } finally {
-        it.close();
-      }
+      ListIterator<Entry> it = shellState.getReader().getHistory().entries();
+      shellState.printLines(new HistoryLineIterator(it), !cl.hasOption(disablePaginationOpt.getOpt()));
     }
     
     return 0;
   }
   
   /**
-   * Decorator that prepends a running counter to an Iterator<String>.
+   * Decorator that converts an Iterator<History.Entry> to an Iterator<String>.
    */
   private static class HistoryLineIterator extends AbstractIteratorDecorator {
-    int counter = 0;
-    
-    public HistoryLineIterator(Iterator<String> iterator) {
+    public HistoryLineIterator(Iterator<Entry> iterator) {
       super(iterator);
     }
     
     @Override
-    public Object next() {
-      return counter++ + " " + super.next();
+    public String next() {
+      return super.next().toString();
     }
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java Thu Jun  6 12:48:28 2013
@@ -72,8 +72,8 @@ public class ListIterCommand extends Com
         }
       }
     }
-    sb.append("-\n");
-    shellState.getReader().printString(sb.toString());
+    sb.append("-");
+    shellState.getReader().println(sb.toString());
     
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListShellIterCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListShellIterCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListShellIterCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListShellIterCommand.java Thu Jun  6 12:48:28 2013
@@ -73,7 +73,7 @@ public class ListShellIterCommand extend
       sb.append("-\n");
     }
 
-    shellState.getReader().printString(sb.toString());
+    shellState.getReader().print(sb.toString());
 
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MaxRowCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MaxRowCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MaxRowCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MaxRowCommand.java Thu Jun  6 12:48:28 2013
@@ -39,7 +39,7 @@ public class MaxRowCommand extends ScanC
       final Text max = shellState.getConnector().tableOperations()
           .getMaxRow(tableName, auths, startRow, range.isStartKeyInclusive(), endRow, range.isEndKeyInclusive());
       if (max != null) {
-        shellState.getReader().printString(max.toString() + "\n");
+        shellState.getReader().println(max.toString());
       }
     } catch (Exception e) {
       e.printStackTrace();

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MergeCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MergeCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MergeCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/MergeCommand.java Thu Jun  6 12:48:28 2013
@@ -52,7 +52,7 @@ public class MergeCommand extends Comman
       size = AccumuloConfiguration.getMemoryInBytes(cl.getOptionValue(sizeOpt.getOpt()));
     }
     if (startRow == null && endRow == null && size < 0 && !all) {
-      shellState.getReader().flushConsole();
+      shellState.getReader().flush();
       String line = shellState.getReader().readLine("Merge the entire table { " + tableName + " } into one tablet (yes|no)? ");
       if (line == null)
         return 0;
@@ -67,8 +67,7 @@ public class MergeCommand extends Comman
         protected void message(String fmt, Object... args) {
           if (finalVerbose) {
             try {
-              shellState.getReader().printString(String.format(fmt, args));
-              shellState.getReader().printNewline();
+              shellState.getReader().println(String.format(fmt, args));
             } catch (IOException ex) {
               throw new RuntimeException(ex);
             }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/PasswdCommand.java Thu Jun  6 12:48:28 2013
@@ -42,7 +42,7 @@ public class PasswdCommand extends Comma
     
     oldPassword = shellState.readMaskedLine("Enter current password for '" + currentUser + "': ", '*');
     if (oldPassword == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     
@@ -51,12 +51,12 @@ public class PasswdCommand extends Comma
     
     password = shellState.readMaskedLine("Enter new password for '" + user + "': ", '*');
     if (password == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     passwordConfirm = shellState.readMaskedLine("Please confirm new password for '" + user + "': ", '*');
     if (passwordConfirm == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ScanCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ScanCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ScanCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ScanCommand.java Thu Jun  6 12:48:28 2013
@@ -95,9 +95,9 @@ public class ScanCommand extends Command
         BinaryFormatter.getlength(length);
         printBinaryRecords(cl, shellState, scanner, printFile);
       } catch (NumberFormatException nfe) {
-        shellState.getReader().printString("Arg must be an integer. \n");
+        shellState.getReader().println("Arg must be an integer.");
       } catch (IllegalArgumentException iae) {
-        shellState.getReader().printString("Arg must be greater than one. \n");
+        shellState.getReader().println("Arg must be greater than one.");
       }
       
     } else {
@@ -185,7 +185,7 @@ public class ScanCommand extends Command
         clazz = AccumuloVFSClassLoader.loadClass(cl.getOptionValue(formatterInterpeterOpt.getOpt()), ScanInterpreter.class);
       }
     } catch (ClassNotFoundException e) {
-      shellState.getReader().printString("Interpreter class could not be loaded.\n" + e.getMessage() + "\n");
+      shellState.getReader().println("Interpreter class could not be loaded.\n" + e.getMessage());
     }
 
     if (clazz == null)
@@ -207,7 +207,7 @@ public class ScanCommand extends Command
         return AccumuloVFSClassLoader.loadClass(cl.getOptionValue(formatterInterpeterOpt.getOpt()), Formatter.class);
       }
     } catch (ClassNotFoundException e) {
-      shellState.getReader().printString("Formatter class could not be loaded.\n" + e.getMessage() + "\n");
+      shellState.getReader().println("Formatter class could not be loaded.\n" + e.getMessage());
     }
     
     return shellState.getFormatter(tableName);

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java Thu Jun  6 12:48:28 2013
@@ -23,7 +23,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -210,17 +210,16 @@ public class SetIterCommand extends Comm
       }
       localOptions.clear();
       
-      reader.printString(itopts.getDescription());
-      reader.printNewline();
+      reader.println(itopts.getDescription());
       
       String prompt;
       if (itopts.getNamedOptions() != null) {
         for (Entry<String,String> e : itopts.getNamedOptions().entrySet()) {
           prompt = Shell.repeat("-", 10) + "> set " + shortClassName + " parameter " + e.getKey() + ", " + e.getValue() + ": ";
-          reader.flushConsole();
+          reader.flush();
           input = reader.readLine(prompt);
           if (input == null) {
-            reader.printNewline();
+            reader.println();
             throw new IOException("Input stream closed");
           } else {
             input = new String(input);
@@ -234,15 +233,15 @@ public class SetIterCommand extends Comm
       
       if (itopts.getUnnamedOptionDescriptions() != null) {
         for (String desc : itopts.getUnnamedOptionDescriptions()) {
-          reader.printString(Shell.repeat("-", 10) + "> entering options: " + desc + "\n");
+          reader.println(Shell.repeat("-", 10) + "> entering options: " + desc);
           input = "start";
           while (true) {
             prompt = Shell.repeat("-", 10) + "> set " + shortClassName + " option (<name> <value>, hit enter to skip): ";
             
-            reader.flushConsole();
+            reader.flush();
             input = reader.readLine(prompt);
             if (input == null) {
-              reader.printNewline();
+              reader.println();
               throw new IOException("Input stream closed");
             } else {
               input = new String(input);
@@ -259,7 +258,7 @@ public class SetIterCommand extends Comm
       
       options.putAll(localOptions);
       if (!skvi.validateOptions(options))
-        reader.printString("invalid options for " + clazz.getName() + "\n");
+        reader.println("invalid options for " + clazz.getName());
       
     } while (!skvi.validateOptions(options));
     return itopts.getName();

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ShellPluginConfigurationCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ShellPluginConfigurationCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ShellPluginConfigurationCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ShellPluginConfigurationCommand.java Thu Jun  6 12:48:28 2013
@@ -55,7 +55,7 @@ public abstract class ShellPluginConfigu
       // Remove the property
       removePlugin(cl, shellState, tableName);
       
-      shellState.getReader().printString("Removed "+pluginType+" on " + tableName + "\n");
+      shellState.getReader().println("Removed "+pluginType+" on " + tableName);
     } else if (cl.hasOption(listPluginOption.getOpt())) {
       // Get the options for this table
       final Iterator<Entry<String,String>> iter = shellState.getConnector().tableOperations().getProperties(tableName).iterator();
@@ -65,7 +65,7 @@ public abstract class ShellPluginConfigu
         
         // List all parameters with the property name
         if (ent.getKey().startsWith(tableProp.toString())) {
-          shellState.getReader().printString(ent.getKey() + ": " + ent.getValue() + "\n");
+          shellState.getReader().println(ent.getKey() + ": " + ent.getValue());
         }
       }
     } else {

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SystemPermissionsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SystemPermissionsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SystemPermissionsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/SystemPermissionsCommand.java Thu Jun  6 12:48:28 2013
@@ -27,7 +27,7 @@ public class SystemPermissionsCommand ex
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException {
     for (String p : SystemPermission.printableValues()) {
-      shellState.getReader().printString(p + "\n");
+      shellState.getReader().println(p);
     }
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java Thu Jun  6 12:48:28 2013
@@ -69,7 +69,7 @@ public abstract class TableOperation ext
       }
       boolean operate = true;
       if (!force) {
-        shellState.getReader().flushConsole();
+        shellState.getReader().flush();
         String line = shellState.getReader().readLine(getName() + " { " + tableName + " } (yes|no)? ");
         more = line != null;
         operate = line != null && (line.equalsIgnoreCase("y") || line.equalsIgnoreCase("yes"));

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablePermissionsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablePermissionsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablePermissionsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablePermissionsCommand.java Thu Jun  6 12:48:28 2013
@@ -27,7 +27,7 @@ public class TablePermissionsCommand ext
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException {
     for (String p : TablePermission.printableValues()) {
-      shellState.getReader().printString(p + "\n");
+      shellState.getReader().println(p);
     }
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/TraceCommand.java Thu Jun  6 12:48:28 2013
@@ -65,27 +65,27 @@ public class TraceCommand extends DebugC
                 }
               });
               if (traceCount > 0) {
-                shellState.getReader().printString(sb.toString());
+                shellState.getReader().print(sb.toString());
                 break;
               }
             } catch (Exception ex) {
               shellState.printException(ex);
             }
-            shellState.getReader().printString("Waiting for trace information\n");
-            shellState.getReader().flushConsole();
+            shellState.getReader().println("Waiting for trace information");
+            shellState.getReader().flush();
             UtilWaitThread.sleep(500);
           }
           if (traceCount < 0) {
             // display the trace even though there are unrooted spans
-            shellState.getReader().printString(sb.toString());
+            shellState.getReader().print(sb.toString());
           }
         } else {
-          shellState.getReader().printString("Not tracing\n");
+          shellState.getReader().println("Not tracing");
         }
       } else
         throw new BadArgumentException("Argument must be 'on' or 'off'", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
     } else if (cl.getArgs().length == 0) {
-      shellState.getReader().printString(Trace.isTracing() ? "on\n" : "off\n");
+      shellState.getReader().println(Trace.isTracing() ? "on" : "off");
     } else {
       shellState.printException(new IllegalArgumentException("Expected 0 or 1 argument. There were " + cl.getArgs().length + "."));
       printHelp(shellState);

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserCommand.java Thu Jun  6 12:48:28 2013
@@ -40,7 +40,7 @@ public class UserCommand extends Command
     // of these methods fails
     final String p = shellState.readMaskedLine("Enter password for user " + user + ": ", '*');
     if (p == null) {
-      shellState.getReader().printNewline();
+      shellState.getReader().println();
       return 0;
     } // user canceled
     pass = p.getBytes();

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java Thu Jun  6 12:48:28 2013
@@ -37,31 +37,31 @@ public class UserPermissionsCommand exte
     final String user = cl.getOptionValue(userOpt.getOpt(), shellState.getConnector().whoami());
     
     String delim = "";
-    shellState.getReader().printString("System permissions: ");
+    shellState.getReader().print("System permissions: ");
     for (SystemPermission p : SystemPermission.values()) {
       if (p != null && shellState.getConnector().securityOperations().hasSystemPermission(user, p)) {
-        shellState.getReader().printString(delim + "System." + p.name());
+        shellState.getReader().print(delim + "System." + p.name());
         delim = ", ";
       }
     }
-    shellState.getReader().printNewline();
+    shellState.getReader().println();
     
     for (String t : shellState.getConnector().tableOperations().list()) {
       delim = "";
       for (TablePermission p : TablePermission.values()) {
         if (shellState.getConnector().securityOperations().hasTablePermission(user, t, p) && p != null) {
           if (runOnce == 0) {
-            shellState.getReader().printString("\nTable permissions (" + t + "): ");
+            shellState.getReader().print("\nTable permissions (" + t + "): ");
             runOnce++;
           }
-          shellState.getReader().printString(delim + "Table." + p.name());
+          shellState.getReader().print(delim + "Table." + p.name());
           delim = ", ";
         }
         
       }
       runOnce = 0;
     }
-    shellState.getReader().printNewline();
+    shellState.getReader().println();
     return 0;
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UsersCommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UsersCommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UsersCommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/UsersCommand.java Thu Jun  6 12:48:28 2013
@@ -28,7 +28,7 @@ public class UsersCommand extends Comman
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, IOException {
     for (String user : shellState.getConnector().securityOperations().listLocalUsers()) {
-      shellState.getReader().printString(user + "\n");
+      shellState.getReader().println(user);
     }
     return 0;
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/WhoAmICommand.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/WhoAmICommand.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/WhoAmICommand.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/main/java/org/apache/accumulo/core/util/shell/commands/WhoAmICommand.java Thu Jun  6 12:48:28 2013
@@ -25,7 +25,7 @@ import org.apache.commons.cli.CommandLin
 public class WhoAmICommand extends Command {
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException {
-    shellState.getReader().printString(shellState.getConnector().whoami() + "\n");
+    shellState.getReader().println(shellState.getConnector().whoami());
     return 0;
   }
   

Modified: accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java Thu Jun  6 12:48:28 2013
@@ -23,12 +23,11 @@ import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.io.OutputStreamWriter;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.util.format.DateStringFormatter;
 import org.apache.log4j.Level;
@@ -85,7 +84,7 @@ public class ShellTest {
   public void setup() throws IOException {
     Shell.log.setLevel(Level.OFF);
     output = new TestOutputStream();
-    shell = new Shell(new ConsoleReader(new FileInputStream(FileDescriptor.in), new OutputStreamWriter(output)));
+    shell = new Shell(new ConsoleReader(new FileInputStream(FileDescriptor.in), output));
     shell.setLogErrorsToConsole();
     shell.config("--fake", "-u", "test", "-p", "secret");
   }

Modified: accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/command/FormatterCommandTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/command/FormatterCommandTest.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/command/FormatterCommandTest.java (original)
+++ accumulo/branches/ACCUMULO-118/core/src/test/java/org/apache/accumulo/core/util/shell/command/FormatterCommandTest.java Thu Jun  6 12:48:28 2013
@@ -16,10 +16,9 @@
  */
 package org.apache.accumulo.core.util.shell.command;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.StringWriter;
-import java.io.Writer;
 import java.util.Iterator;
 import java.util.Map.Entry;
 
@@ -42,7 +41,7 @@ import org.junit.Test;
  * Uses the MockShell to test the shell output with Formatters
  */
 public class FormatterCommandTest {
-  Writer writer = null;
+  ByteArrayOutputStream out = null;
   InputStream in = null;
   
   @Test
@@ -55,9 +54,9 @@ public class FormatterCommandTest {
     final String[] commands = createCommands();
     
     in = MockShell.makeCommands(commands);
-    writer = new StringWriter();
+    out = new ByteArrayOutputStream();
     
-    final MockShell shell = new MockShell(in, writer);
+    final MockShell shell = new MockShell(in, out);
     shell.config(args);
     
     // Can't call createtable in the shell with MockAccumulo
@@ -69,9 +68,9 @@ public class FormatterCommandTest {
       Assert.fail("Exception while running commands: " + e.getMessage());
     } 
     
-    shell.getReader().flushConsole();
+    shell.getReader().flush();
     
-    final String[] output = StringUtils.split(writer.toString(), '\n');
+    final String[] output = StringUtils.split(new String(out.toByteArray()), '\n');
    
     boolean formatterOn = false;
     
@@ -94,7 +93,7 @@ public class FormatterCommandTest {
       final String line = output[outputIndex];
       
       if (line.startsWith("root@mock-instance")) {
-        if (line.contains("formatter -t test -f org.apache.accumulo.core.util.shell.command.FormatterCommandTest$HexFormatter")) {
+        if (line.contains("formatter")) {
           formatterOn = true;
         }
        

Propchange: accumulo/branches/ACCUMULO-118/examples/
------------------------------------------------------------------------------
  Merged /accumulo/trunk/examples:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/fate/src/main/java/org/apache/accumulo/fate/ZooStore.java
------------------------------------------------------------------------------
  Merged /accumulo/trunk/fate/src/main/java/org/apache/accumulo/fate/ZooStore.java:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooSession.java
------------------------------------------------------------------------------
  Merged /accumulo/trunk/fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooSession.java:r1488407,1489982

Modified: accumulo/branches/ACCUMULO-118/pom.xml
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/pom.xml?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/pom.xml (original)
+++ accumulo/branches/ACCUMULO-118/pom.xml Thu Jun  6 12:48:28 2013
@@ -191,7 +191,7 @@
       <dependency>
         <groupId>jline</groupId>
         <artifactId>jline</artifactId>
-        <version>1.0</version>
+        <version>2.10</version>
       </dependency>
       <dependency>
         <groupId>junit</groupId>

Propchange: accumulo/branches/ACCUMULO-118/pom.xml
------------------------------------------------------------------------------
  Merged /accumulo/trunk/pom.xml:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/proxy/README
------------------------------------------------------------------------------
  Merged /accumulo/trunk/proxy/README:r1488407,1489982

Propchange: accumulo/branches/ACCUMULO-118/server/
------------------------------------------------------------------------------
  Merged /accumulo/trunk/server:r1488407,1489982

Modified: accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java (original)
+++ accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/monitor/servlets/ShellServlet.java Thu Jun  6 12:48:28 2013
@@ -19,7 +19,6 @@ package org.apache.accumulo.server.monit
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.HashMap;
 import java.util.Map;
@@ -31,7 +30,7 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.util.shell.Shell;
 
@@ -225,7 +224,7 @@ public class ShellServlet extends BasicS
       this.cmdIndex = 0;
       this.readWait = false;
       this.output = new StringBuilderOutputStream();
-      ConsoleReader reader = new ConsoleReader(this, new OutputStreamWriter(output));
+      ConsoleReader reader = new ConsoleReader(this, output);
       this.shell = new Shell(reader, new PrintWriter(output));
       shell.setLogErrorsToConsole();
       if (mock != null) {

Modified: accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/util/Initialize.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/util/Initialize.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/util/Initialize.java (original)
+++ accumulo/branches/ACCUMULO-118/server/src/main/java/org/apache/accumulo/server/util/Initialize.java Thu Jun  6 12:48:28 2013
@@ -26,7 +26,7 @@ import java.util.Locale;
 import java.util.Map.Entry;
 import java.util.UUID;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.cli.Help;
@@ -129,18 +129,14 @@ public class Initialize {
     if (ServerConfiguration.getSiteConfiguration().get(Property.INSTANCE_SECRET).equals(Property.INSTANCE_SECRET.getDefaultValue())) {
       ConsoleReader c = getConsoleReader();
       c.beep();
-      c.printNewline();
-      c.printNewline();
-      c.printString("Warning!!! Your instance secret is still set to the default, this is not secure. We highly recommend you change it.");
-      c.printNewline();
-      c.printNewline();
-      c.printNewline();
-      c.printString("You can change the instance secret in accumulo by using:");
-      c.printNewline();
-      c.printString("   bin/accumulo " + org.apache.accumulo.server.util.ChangeSecret.class.getName() + " oldPassword newPassword.");
-      c.printNewline();
-      c.printString("You will also need to edit your secret in your configuration file by adding the property instance.secret to your conf/accumulo-site.xml. Without this accumulo will not operate correctly");
-      c.printNewline();
+      c.println();
+      c.println();
+      c.println("Warning!!! Your instance secret is still set to the default, this is not secure. We highly recommend you change it.");
+      c.println();
+      c.println();
+      c.println("You can change the instance secret in accumulo by using:");
+      c.println("   bin/accumulo " + org.apache.accumulo.server.util.ChangeSecret.class.getName() + " oldPassword newPassword.");
+      c.println("You will also need to edit your secret in your configuration file by adding the property instance.secret to your conf/accumulo-site.xml. Without this accumulo will not operate correctly");
     }
     
     try {

Propchange: accumulo/branches/ACCUMULO-118/src/
------------------------------------------------------------------------------
  Merged /accumulo/trunk/src:r1488407,1489982

Modified: accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/AuditMessageTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/AuditMessageTest.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/AuditMessageTest.java (original)
+++ accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/AuditMessageTest.java Thu Jun  6 12:48:28 2013
@@ -406,7 +406,7 @@ public class AuditMessageTest {
       auditConnector.tableOperations().rename(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME);
     } catch (AccumuloSecurityException ex) {}
     try {
-      auditConnector.tableOperations().clone(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME, true, Collections.EMPTY_MAP, Collections.EMPTY_SET);
+      auditConnector.tableOperations().clone(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME, true, Collections.<String,String>emptyMap(), Collections.<String>emptySet());
     } catch (AccumuloSecurityException ex) {}
     try {
       auditConnector.tableOperations().delete(OLD_TEST_TABLE_NAME);

Modified: accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java?rev=1490262&r1=1490261&r2=1490262&view=diff
==============================================================================
--- accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java (original)
+++ accumulo/branches/ACCUMULO-118/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java Thu Jun  6 12:48:28 2013
@@ -20,19 +20,16 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.util.Map.Entry;
 
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.Connector;
@@ -78,11 +75,30 @@ public class ShellServerTest {
       sb.setLength(0);
     }
   }
+
+  public static class StringInputStream extends InputStream {
+    private String source = "";
+    private int offset = 0;
+    
+    @Override
+    public int read() throws IOException {
+      if (offset == source.length())
+        return '\n';
+      else
+        return source.charAt(offset++);
+    }
+    
+    public void set(String other) {
+      source = other;
+      offset = 0;
+    }
+  }
   
   private static String secret = "superSecret";
   public static TemporaryFolder folder = new TemporaryFolder();
   public static MiniAccumuloCluster cluster;
   public static TestOutputStream output;
+  public static StringInputStream input;
   public static Shell shell;
   private static Process traceProcess;
   
@@ -129,7 +145,7 @@ public class ShellServerTest {
       assertEquals(s + " present in " + output.get() + " was not " + stringPresent, stringPresent, output.get().contains(s));
     shell.resetExitCode();
   }
-
+  
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
     folder.create();
@@ -141,7 +157,8 @@ public class ShellServerTest {
 
     // start the shell
     output = new TestOutputStream();
-    shell = new Shell(new ConsoleReader(new FileInputStream(FileDescriptor.in), new OutputStreamWriter(output)));
+    input = new StringInputStream();
+    shell = new Shell(new ConsoleReader(input, output));
     shell.setLogErrorsToConsole();
     shell.config("-u", "root", "-p", secret, "-z", cluster.getConfig().getInstanceName(), cluster.getConfig().getZooKeepers());
     exec("quit", true);
@@ -213,7 +230,7 @@ public class ShellServerTest {
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
-    shell.getReader().setInput(new ByteArrayInputStream("true\n\n\nSTRING\n".getBytes()));
+    input.set("true\n\n\nSTRING");
     exec("setscaniter -class org.apache.accumulo.core.iterators.user.SummingCombiner -p 10 -n name", true);
     exec("scan", true, "3", true);
     exec("deletescaniter -n name", true);
@@ -271,7 +288,7 @@ public class ShellServerTest {
   @Test(timeout = 30000)
   public void user() throws Exception {
     // createuser, deleteuser, user, users, droptable, grant, revoke
-    shell.getReader().setInput(new ByteArrayInputStream("secret\nsecret\n".getBytes()));
+    input.set("secret\nsecret\n");
     exec("createuser xyzzy", true);
     exec("users", true, "xyzzy", true);
     String perms = exec("userpermissions -u xyzzy", true);
@@ -283,14 +300,14 @@ public class ShellServerTest {
     exec("grant -u root -t !METADATA Table.GOOFY", false);
     exec("grant -u root -s foo", false);
     exec("grant -u xyzzy -t !METADATA foo", false);
-    shell.getReader().setInput(new ByteArrayInputStream("secret\nsecret\n".getBytes()));
+    input.set("secret\nsecret\n");
     exec("user xyzzy", true);
     exec("createtable t", true, "xyzzy@", true);
     exec("insert row1 cf cq 1", true);
     exec("scan", true, "row1", true);
     exec("droptable -f t", true);
     exec("deleteuser xyzzy", false, "delete yourself", true);
-    shell.getReader().setInput(new ByteArrayInputStream((secret + "\n" + secret + "\n").getBytes()));
+    input.set(secret+"\n"+secret+"\n");
     exec("user root", true);
     exec("revoke -u xyzzy -s System.CREATE_TABLE", true);
     exec("revoke -u xyzzy -s System.GOOFY", false);
@@ -309,9 +326,9 @@ public class ShellServerTest {
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
-    shell.getReader().setInput(new ByteArrayInputStream("true\n\n\nSTRING\n".getBytes()));
+    input.set("true\n\n\nSTRING\n");
     exec("setshelliter -class org.apache.accumulo.core.iterators.user.SummingCombiner -p 10 -pn sum -n name", true);
-    shell.getReader().setInput(new ByteArrayInputStream("true\n\n\nSTRING\n".getBytes()));
+    input.set("true\n\n\nSTRING\n");
     exec("setshelliter -class org.apache.accumulo.core.iterators.user.SummingCombiner -p 11 -pn sum -n xyzzy", true);
     exec("scan -pn sum", true, "3", true);
     exec("listshelliter", true, "Iterator name", true);
@@ -329,9 +346,9 @@ public class ShellServerTest {
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
     exec("insert a cf cq 1");
-    shell.getReader().setInput(new ByteArrayInputStream("true\n\n\nSTRING\n".getBytes()));
+    input.set("true\n\n\nSTRING\n");
     exec("setiter -scan -class org.apache.accumulo.core.iterators.user.SummingCombiner -p 10 -n name", true);
-    shell.getReader().setInput(new ByteArrayInputStream("true\n\n\nSTRING\n".getBytes()));
+    input.set("true\n\n\nSTRING\n");
     exec("setiter -scan -class org.apache.accumulo.core.iterators.user.SummingCombiner -p 11 -n xyzzy", true);
     exec("scan", true, "3", true);
     exec("listiter -scan", true, "Iterator name", true);
@@ -520,10 +537,9 @@ public class ShellServerTest {
     exec("deletetable -f t", true);
   }
   
-  @Test(timeout = 30000)
+  @Test//(timeout = 30000)
   public void help() throws Exception {
     exec("help -np", true, "Help Commands", true);
-    shell.getReader().setInput(new ByteArrayInputStream("\n\n".getBytes()));
     exec("?", true, "Help Commands", true);
     for (String c : ("bye exit quit " + "about help info ? " + "deleteiter deletescaniter listiter setiter setscaniter "
         + "grant revoke systempermissions tablepermissions userpermissions " + "execfile history " + "authenticate cls clear notable sleep table user whoami "