in plugins/org.apache.karaf.eik.workbench/src/main/java/org/apache/karaf/eik/workbench/internal/KarafRuntimeDataProvider.java [206:249]
private IStatus loadBundleData(final IProgressMonitor monitor) {
monitor.subTask("OSGi Bundles");
if (monitor.isCanceled()) {
return Status.OK_STATUS;
}
if (!mbeanProvider.isOpen()) {
return new Status(IStatus.WARNING, KarafWorkbenchActivator.PLUGIN_ID, "Connection to MBean server has been closed");
}
try {
final TabularData rawBundleData = mbeanProvider.getMBean(BUNDLE_STATE, BundleStateMBean.class).listBundles();
synchronized (bundleSet) {
bundleSet.clear();
idToBundleMap.clear();
}
for (final Object o : rawBundleData.values()) {
final CompositeData composite = (CompositeData) o;
final BundleItem bundle = new BundleItem(composite);
synchronized (bundleSet) {
bundleSet.add(bundle);
idToBundleMap.put(bundle.getIdentifier(), bundle);
}
monitor.worked(1);
if (monitor.isCanceled()) {
break;
}
}
} catch (final IOException e) {
return new Status(IStatus.ERROR, KarafWorkbenchActivator.PLUGIN_ID, "Unable to connect to MBeanServer", e);
} catch (final Exception e) {
KarafWorkbenchActivator.getLogger().warn("Unable to update OSGi Bundles", e);
}
return Status.OK_STATUS;
}