You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/02/27 22:55:11 UTC
svn commit: r631742 -
/incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java
Author: fmeschbe
Date: Wed Feb 27 13:55:09 2008
New Revision: 631742
URL: http://svn.apache.org/viewvc?rev=631742&view=rev
Log:
For each bundle B list the bundles importing packages from B
Modified:
incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java
Modified: incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java?rev=631742&r1=631741&r2=631742&view=diff
==============================================================================
--- incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java (original)
+++ incubator/sling/trunk/osgi/console-web/src/main/java/org/apache/sling/osgi/console/web/internal/core/AjaxBundleDetailsAction.java Wed Feb 27 13:55:09 2008
@@ -159,6 +159,8 @@
return;
}
+ Map<String, Bundle> usingBundles = new TreeMap<String, Bundle>();
+
ExportedPackage[] exports = packageAdmin.getExportedPackages(bundle);
if (exports != null && exports.length > 0) {
// do alphabetical sort
@@ -171,6 +173,12 @@
StringBuffer val = new StringBuffer();
for (ExportedPackage export : exports) {
printExport(val, export.getName(), export.getVersion());
+ Bundle[] ubList = export.getImportingBundles();
+ if (ubList != null) {
+ for (Bundle ub : ubList) {
+ usingBundles.put(ub.getSymbolicName(), ub);
+ }
+ }
}
keyVal(props, "Exported Packages", val.toString());
} else {
@@ -212,6 +220,15 @@
keyVal(props, "Imported Packages", val.toString());
}
+
+ if (!usingBundles.isEmpty()) {
+ StringBuffer val = new StringBuffer();
+ for (Bundle usingBundle : usingBundles.values()) {
+ val.append(getBundleDescriptor(usingBundle));
+ val.append("<br />");
+ }
+ keyVal(props, "Importing Bundles", val.toString());
+ }
}
private void listImportExportsUnresolved(JSONArray props, Bundle bundle) {
@@ -370,7 +387,6 @@
}
val.append("<br />");
-
}
private void printImport(StringBuffer val, String name, Version version,
@@ -385,23 +401,7 @@
val.append(" from ");
if (export != null) {
- if (export.getExportingBundle().getSymbolicName() != null) {
- // list the bundle name if not null
- val.append(export.getExportingBundle().getSymbolicName());
- val.append(" (").append(
- export.getExportingBundle().getBundleId());
- val.append(")");
- } else if (export.getExportingBundle().getLocation() != null) {
- // otherwise try the location
- val.append(export.getExportingBundle().getLocation());
- val.append(" (").append(
- export.getExportingBundle().getBundleId());
- val.append(")");
- } else {
- // fallback to just the bundle id
- // only append the bundle
- val.append(export.getExportingBundle().getBundleId());
- }
+ val.append(getBundleDescriptor(export.getExportingBundle()));
if (bootDel) {
val.append(" -- Overwritten by Boot Delegation</span>");
@@ -456,4 +456,23 @@
new R4Attribute[] { version });
}
+ private String getBundleDescriptor(Bundle bundle) {
+ StringBuffer val = new StringBuffer();
+ if (bundle.getSymbolicName() != null) {
+ // list the bundle name if not null
+ val.append(bundle.getSymbolicName());
+ val.append(" (").append(bundle.getBundleId());
+ val.append(")");
+ } else if (bundle.getLocation() != null) {
+ // otherwise try the location
+ val.append(bundle.getLocation());
+ val.append(" (").append(bundle.getBundleId());
+ val.append(")");
+ } else {
+ // fallback to just the bundle id
+ // only append the bundle
+ val.append(bundle.getBundleId());
+ }
+ return val.toString();
+ }
}