[KARAF-2272] Populate the bundle name in the cluster git-svn-id: https://svn.apache.org/repos/asf/karaf/cellar/branches/cellar-2.3.x@1484060 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/karaf-cellar/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf-cellar/commit/095602d4 Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/095602d4 Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/095602d4 Branch: refs/heads/cellar-2.3.x Commit: 095602d4705000b5e3af8bd1bfa929dabc880c08 Parents: 20bd5d0 Author: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68> Authored: Sat May 18 06:00:55 2013 +0000 Committer: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68> Committed: Sat May 18 06:00:55 2013 +0000 ---------------------------------------------------------------------- .../org/apache/karaf/cellar/bundle/BundleSynchronizer.java | 9 +++++++++ .../org/apache/karaf/cellar/bundle/LocalBundleListener.java | 5 +++++ .../karaf/cellar/bundle/shell/InstallBundleCommand.java | 3 +++ .../apache/karaf/cellar/bundle/shell/ListBundleCommand.java | 1 + .../cellar/management/internal/CellarBundleMBeanImpl.java | 7 +++++++ .../cellar/management/internal/CellarFeaturesMBeanImpl.java | 1 + 6 files changed, 26 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java ---------------------------------------------------------------------- diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java index 8e37079..e2ffbff 100644 --- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java +++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java @@ -142,6 +142,15 @@ public class BundleSynchronizer extends BundleSupport implements Synchronizer { if (isAllowed(group, Constants.CATEGORY, bundleLocation, EventType.OUTBOUND)) { BundleState bundleState = new BundleState(); + // get the bundle name or location. + String name = (String) bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_NAME); + // if there is no name, then default to symbolic name. + name = (name == null) ? bundle.getSymbolicName() : name; + // if there is no symbolic name, resort to location. + name = (name == null) ? bundle.getLocation() : name; + bundleState.setName(name); + bundleState.setName(bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_NAME)); + bundleState.setLocation(bundleLocation); if (status == Bundle.ACTIVE) http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java ---------------------------------------------------------------------- diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java index 88be47b..e1cd70a 100644 --- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java +++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java @@ -70,7 +70,12 @@ public class LocalBundleListener extends BundleSupport implements SynchronousBun if (groups != null && !groups.isEmpty()) { for (Group group : groups) { + // get the bundle name or location. String name = (String) event.getBundle().getHeaders().get(org.osgi.framework.Constants.BUNDLE_NAME); + // if there is no name, then default to symbolic name. + name = (name == null) ? event.getBundle().getSymbolicName() : name; + // if there is no symbolic name, resort to location. + name = (name == null) ? event.getBundle().getLocation() : name; String symbolicName = event.getBundle().getSymbolicName(); String version = event.getBundle().getVersion().toString(); String bundleLocation = event.getBundle().getLocation(); http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/InstallBundleCommand.java ---------------------------------------------------------------------- diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/InstallBundleCommand.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/InstallBundleCommand.java index 64ade81..baf8bfd 100644 --- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/InstallBundleCommand.java +++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/InstallBundleCommand.java @@ -80,6 +80,9 @@ public class InstallBundleCommand extends CellarCommandSupport { if (name == null) { name = symbolicName; } + if (name == null) { + name = url; + } String version = manifest.getMainAttributes().getValue("Bundle-Version"); jarInputStream.close(); http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java ---------------------------------------------------------------------- diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java index e56b635..04996c6 100644 --- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java +++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java @@ -70,6 +70,7 @@ public class ListBundleCommand extends CellarCommandSupport { version = ""; } BundleState state = clusterBundles.get(bundle); + String status; switch (state.getStatus()) { case BundleEvent.INSTALLED: http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarBundleMBeanImpl.java ---------------------------------------------------------------------- diff --git a/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarBundleMBeanImpl.java b/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarBundleMBeanImpl.java index 69004f5..1bbffb1 100644 --- a/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarBundleMBeanImpl.java +++ b/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarBundleMBeanImpl.java @@ -106,6 +106,12 @@ public class CellarBundleMBeanImpl extends StandardMBean implements CellarBundle JarInputStream jarInputStream = new JarInputStream(new URL(location).openStream()); Manifest manifest = jarInputStream.getManifest(); String name = manifest.getMainAttributes().getValue("Bundle-SymbolicName"); + if (name == null) { + name = manifest.getMainAttributes().getValue("Bundle-SymbolicName"); + } + if (name == null) { + name = location; + } String version = manifest.getMainAttributes().getValue("Bundle-Version"); jarInputStream.close(); @@ -115,6 +121,7 @@ public class CellarBundleMBeanImpl extends StandardMBean implements CellarBundle // update the cluster group Map<String, BundleState> clusterBundles = clusterManager.getMap(Constants.BUNDLE_MAP + Configurations.SEPARATOR + groupName); BundleState state = new BundleState(); + state.setName(name); state.setLocation(location); state.setStatus(BundleEvent.INSTALLED); clusterBundles.put(name + "/" + version, state); http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/095602d4/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarFeaturesMBeanImpl.java ---------------------------------------------------------------------- diff --git a/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarFeaturesMBeanImpl.java b/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarFeaturesMBeanImpl.java index 5eefa93..18a1d23 100644 --- a/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarFeaturesMBeanImpl.java +++ b/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarFeaturesMBeanImpl.java @@ -146,6 +146,7 @@ public class CellarFeaturesMBeanImpl extends StandardMBean implements CellarFeat clusterFeatures.put(feature, true); try { // update the bundles in the cluster group + // TODO does it make really sense List<BundleInfo> bundles = featuresService.getFeature(feature.getName(), version).getBundles(); Map<String, BundleState> clusterBundles = clusterManager.getMap(org.apache.karaf.cellar.bundle.Constants.BUNDLE_MAP + Configurations.SEPARATOR + groupName); for (BundleInfo bundle : bundles) {
