You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2013/12/05 10:08:10 UTC

svn commit: r1548045 - in /karaf/trunk/shell: console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java osgi/src/main/java/org/apache/karaf/shell/osgi/Util.java

Author: gnodet
Date: Thu Dec  5 09:08:10 2013
New Revision: 1548045

URL: http://svn.apache.org/r1548045
Log:
[KARAF-2605] Use ConsoleReader instead of the keyboard stream

Removed:
    karaf/trunk/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/Util.java
Modified:
    karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java

Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java?rev=1548045&r1=1548044&r2=1548045&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java Thu Dec  5 09:08:10 2013
@@ -27,6 +27,7 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 
+import jline.console.ConsoleReader;
 import org.apache.felix.service.command.CommandSession;
 import org.apache.karaf.shell.commands.CommandException;
 import org.apache.karaf.shell.console.SessionProperties;
@@ -134,25 +135,13 @@ public class ShellUtil {
      */
     public static boolean accessToSystemBundleIsAllowed(long bundleId, CommandSession session) throws IOException {
         for (; ; ) {
-            StringBuffer sb = new StringBuffer();
-            System.err.print("You are about to access system bundle " + bundleId + ".  Do you wish to continue (yes/no): ");
-            System.err.flush();
-            for (; ; ) {
-                int c = session.getKeyboard().read();
-                if (c < 0) {
-                    return false;
-                }
-                System.err.print((char) c);
-                if (c == '\r' || c == '\n') {
-                    break;
-                }
-                sb.append((char) c);
-            }
-            String str = sb.toString();
-            if ("yes".equals(str)) {
+            ConsoleReader reader = (ConsoleReader) session.get(".jline.reader");
+            String msg = "You are about to access system bundle " + bundleId + ".  Do you wish to continue (yes/no): ";
+            String str = reader.readLine(msg);
+            if ("yes".equalsIgnoreCase(str)) {
                 return true;
             }
-            if ("no".equals(str)) {
+            if ("no".equalsIgnoreCase(str)) {
                 return false;
             }
         }