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:26:27 UTC
svn commit: r1516062 -
/karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java
Author: ffang
Date: Wed Aug 21 02:26:27 2013
New Revision: 1516062
URL: http://svn.apache.org/r1516062
Log:
[KARAF-2452]The --force option is not honored when designate bundle as a system bundle
Modified:
karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java
Modified: karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java
URL: http://svn.apache.org/viewvc/karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java?rev=1516062&r1=1516061&r2=1516062&view=diff
==============================================================================
--- karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java (original)
+++ karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/StartLevel.java Wed Aug 21 02:26:27 2013
@@ -22,15 +22,11 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.startlevel.BundleStartLevel;
@Command(scope = "bundle", name = "start-level", description = "Gets or sets the start level of a bundle.")
-public class StartLevel extends BundleCommand {
+public class StartLevel extends BundleCommandWithConfirmation {
@Argument(index = 1, name = "startLevel", description = "The bundle's new start level", required = false, multiValued = false)
Integer level;
- public StartLevel() {
- super(true);
- }
-
protected void doExecute(Bundle bundle) throws Exception {
// Get package instance service.
BundleStartLevel bsl = bundle.adapt(BundleStartLevel.class);
@@ -41,21 +37,37 @@ public class StartLevel extends BundleCo
if (level == null) {
System.out.println("Level " + bsl.getStartLevel());
}
- else if ((level < 50) && bsl.getStartLevel() > 50){
+ else if ((level < 50) && (bsl.getStartLevel() > 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)) {
@@ -65,6 +77,7 @@ public class StartLevel extends BundleCo
break;
}
}
+
} else {
bsl.setStartLevel(level);
}