You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by cc...@apache.org on 2009/03/02 07:06:56 UTC
svn commit: r749203 -
/servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java
Author: ccustine
Date: Mon Mar 2 06:06:55 2009
New Revision: 749203
URL: http://svn.apache.org/viewvc?rev=749203&view=rev
Log:
SMX4KNL-216 - Add support for fragments in osgi commands
Modified:
servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java?rev=749203&r1=749202&r2=749203&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-osgi/src/main/java/org/apache/servicemix/kernel/gshell/osgi/ListBundles.java Mon Mar 2 06:06:55 2009
@@ -22,6 +22,8 @@
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.startlevel.StartLevel;
+import org.osgi.service.packageadmin.PackageAdmin;
+import org.springframework.util.StringUtils;
public class ListBundles extends OsgiCommandSupport {
@@ -53,6 +55,16 @@
if (sl == null) {
io.out.println("StartLevel service is unavailable.");
}
+
+ ServiceReference pkgref = getBundleContext().getServiceReference(PackageAdmin.class.getName());
+ PackageAdmin admin = null;
+ if (pkgref != null) {
+ admin = (PackageAdmin) getBundleContext().getService(pkgref);
+ if (admin == null) {
+ io.out.println("PackageAdmin service is unavailable.");
+ }
+ }
+
Bundle[] bundles = getBundleContext().getBundles();
if (bundles != null) {
// Display active start level.
@@ -115,11 +127,47 @@
+ getStateString(bundles[i])
+ "] [" + getSpringStateString(bundles[i])
+ "] [" + level + "] " + name);
+
+ if (admin != null) {
+ Bundle[] fragments = admin.getFragments(bundles[i]);
+ Bundle[] hosts = admin.getHosts(bundles[i]);
+
+ if (fragments != null) {
+ io.out.print(" Fragments: ");
+ int ii = 0;
+ for (Bundle fragment : fragments) {
+ ii++;
+ io.out.print(fragment.getBundleId());
+ if ((fragments.length > 1) && ii < (fragments.length)) {
+ io.out.print(",");
+ }
+ }
+ io.out.println();
+ }
+
+ if (hosts != null) {
+ io.out.print(" Hosts: ");
+ int ii = 0;
+ for (Bundle host : hosts) {
+ ii++;
+ io.out.print(host.getBundleId());
+ if ((hosts.length > 1) && ii < (hosts.length)) {
+ io.out.print(",");
+ }
+ }
+ io.out.println();
+ }
+
+ }
}
}
else {
io.out.println("There are no installed bundles.");
}
+
+ getBundleContext().ungetService(ref);
+ getBundleContext().ungetService(pkgref);
+
return Result.SUCCESS;
}