You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2013/08/21 04:15:23 UTC

svn commit: r1516060 - /karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java

Author: ffang
Date: Wed Aug 21 02:15:23 2013
New Revision: 1516060

URL: http://svn.apache.org/r1516060
Log:
[KARAF-2452]The --force option is not honored when designate bundle as a system bundle

Modified:
    karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java

Modified: karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java?rev=1516060&r1=1516059&r2=1516060&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java (original)
+++ karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/BundleLevel.java Wed Aug 21 02:15:23 2013
@@ -44,21 +44,37 @@ public class BundleLevel extends BundleC
         if (level == null) {
             System.out.println("Level " + sl.getBundleStartLevel(bundle));
         }
-        else if ((level < 50) && sl.getBundleStartLevel(bundle) > 50){
+        else if ((level < 50) && (sl.getBundleStartLevel(bundle) > 50) && !force){
             for (;;) {
                 StringBuffer sb = new StringBuffer();
                 System.err.println("You are about to designate bundle as a system bundle.  Do you wish to continue (yes/no): ");
                 System.err.flush();
                 for (;;) {
-                    int c = System.in.read();
+                    int c = session.getKeyboard().read();
                     if (c < 0) {
-                        return;
+                        break;
                     }
-                    System.err.println((char) c);
                     if (c == '\r' || c == '\n') {
+                        System.err.println();
+                        System.err.flush();
                         break;
                     }
-                    sb.append((char) c);
+                    if (c == 127 || c == 'b') {
+                        System.err.print((char)'\b');
+                        System.err.print((char)' ');
+                        System.err.print((char)'\b');
+                    } else {
+                        System.err.print((char)c);
+                    }
+                    
+                    System.err.flush();
+                    if (c == 127 || c == 'b') {
+                        if (sb.length() > 0) {
+                            sb.deleteCharAt(sb.length() - 1);
+                        }
+                    } else {
+                        sb.append((char)c);
+                    }
                 }
                 String str = sb.toString();
                 if ("yes".equals(str)) {