You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2012/05/16 11:44:30 UTC
svn commit: r1339091 - in /karaf/trunk/bundle/command: pom.xml
src/main/java/org/apache/karaf/bundle/command/ListBundles.java
Author: cschneider
Date: Wed May 16 09:44:29 2012
New Revision: 1339091
URL: http://svn.apache.org/viewvc?rev=1339091&view=rev
Log:
KARAF-1485 Adding list --table to use shell tables
Modified:
karaf/trunk/bundle/command/pom.xml
karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
Modified: karaf/trunk/bundle/command/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/bundle/command/pom.xml?rev=1339091&r1=1339090&r2=1339091&view=diff
==============================================================================
--- karaf/trunk/bundle/command/pom.xml (original)
+++ karaf/trunk/bundle/command/pom.xml Wed May 16 09:44:29 2012
@@ -40,6 +40,10 @@
<dependencies>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.table</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
</dependency>
<dependency>
Modified: karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
URL: http://svn.apache.org/viewvc/karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java?rev=1339091&r1=1339090&r2=1339091&view=diff
==============================================================================
--- karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java (original)
+++ karaf/trunk/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java Wed May 16 09:44:29 2012
@@ -22,6 +22,7 @@ import org.apache.karaf.bundle.core.Bund
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.table.ShellTable;
import org.osgi.framework.Bundle;
import org.osgi.framework.startlevel.FrameworkStartLevel;
@@ -39,6 +40,9 @@ public class ListBundles extends OsgiCom
@Option(name = "-t", valueToShowInHelp = "", description = "Specifies the bundle threshold; bundles with a start-level less than this value will not get printed out.", required = false, multiValued = false)
int bundleLevelThreshold = -1;
+
+ @Option(name= "--table", description = "Show bundles using a shell table")
+ boolean newLayout;
private BundleService bundleService;
@@ -61,9 +65,9 @@ public class ListBundles extends OsgiCom
System.out.println("START LEVEL " + fsl.getStartLevel() + " , List Threshold: " + bundleLevelThreshold);
}
+ if (!newLayout) {
// Print column headers.
- String levelHeader = (fsl == null) ? "" : " Level ";
- System.out.println(" ID State " + levelHeader + getNameHeader());
+ System.out.println(" ID State Level " + getNameHeader());
for (int i = 0; i < bundles.length; i++) {
Bundle bundle = bundles[i];
@@ -73,25 +77,45 @@ public class ListBundles extends OsgiCom
// Show bundle version if not showing location.
String version = info.getVersion();
name = (!showLoc && !showUpdate && (version != null)) ? name + " (" + version + ")" : name;
+ name += printFragments(info) + printHosts(info);
String line = String.format("[%4d] [%10s] [%5d] %s", info.getBundleId(),
getStateString(info.getState()), info.getStartLevel(), name);
- System.out.print(line);
- printFragments(info);
- printHosts(info);
- System.out.println();
+ System.out.println(line);
}
}
+
+ } else {
+
+ ShellTable table = new ShellTable();
+ table.column("ID").alignRight();
+ table.column("State");
+ table.column("Lvl").alignRight();
+ table.column("Version");
+ table.column(getNameHeader());
+
+ for (int i = 0; i < bundles.length; i++) {
+ Bundle bundle = bundles[i];
+ BundleInfo info = this.bundleService.getInfo(bundle);
+ if (info.getStartLevel() >= bundleLevelThreshold) {
+ String name = getNameToShow(info) + printFragments(info) + printHosts(info);
+ String version = info.getVersion();
+ table.addRow().addContent(info.getBundleId(), getStateString(info.getState()),
+ info.getStartLevel(), version, name);
+ }
+ }
+ table.print(System.out);
+ }
return null;
}
private String getNameHeader() {
- String msg = " Name";
+ String msg = "Name";
if (showLoc) {
- msg = " Location";
+ msg = "Location";
} else if (showSymbolic) {
- msg = " Symbolic name";
+ msg = "Symbolic name";
} else if (showUpdate) {
- msg = " Update location";
+ msg = "Update location";
}
return msg;
}
@@ -109,26 +133,32 @@ public class ListBundles extends OsgiCom
}
}
- private void printHosts(BundleInfo info) {
- if (info.getFragmentHosts().size() > 0) {
- System.out.print(" Hosts: ");
- boolean first = true;
- for (Bundle host : info.getFragmentHosts()) {
- System.out.print((first ? "" : ", ") + host.getBundleId());
- first = false;
- }
- }
- }
-
- private void printFragments(BundleInfo info) {
- if (info.getFragments().size() > 0) {
- System.out.print(" Fragments: ");
- boolean first = true;
- for (Bundle host : info.getFragments()) {
- System.out.print((first ? "" : ", ") + host.getBundleId());
- first = false;
- }
+ private String printHosts(BundleInfo info) {
+ if (info.getFragmentHosts().size() <= 0) {
+ return "";
+ }
+ StringBuilder builder = new StringBuilder();
+ builder.append(", Hosts: ");
+ boolean first = true;
+ for (Bundle host : info.getFragmentHosts()) {
+ builder.append((first ? "" : ", ") + host.getBundleId());
+ first = false;
+ }
+ return builder.toString();
+ }
+
+ private String printFragments(BundleInfo info) {
+ if (info.getFragments().size() <= 0) {
+ return "";
+ }
+ StringBuilder builder = new StringBuilder();
+ builder.append(", Fragments: ");
+ boolean first = true;
+ for (Bundle host : info.getFragments()) {
+ builder.append((first ? "" : ", ") + host.getBundleId());
+ first = false;
}
+ return builder.toString();
}
private String getStateString(BundleState state) {