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;
}
}