[KARAF-2272] Populate the bundle name in the cluster

git-svn-id: 
https://svn.apache.org/repos/asf/karaf/cellar/branches/cellar-2.2.x@1484065 
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/e2eeafac
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/e2eeafac
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/e2eeafac

Branch: refs/heads/cellar-2.2.x
Commit: e2eeafaccf315adddb54ae9cbd078e31822f502a
Parents: 7ec1550
Author: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Authored: Sat May 18 06:44:07 2013 +0000
Committer: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Committed: Sat May 18 06:44:07 2013 +0000

----------------------------------------------------------------------
 .../org/apache/karaf/cellar/bundle/BundleSynchronizer.java    | 7 +++++++
 .../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, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/e2eeafac/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 1acb7a3..6269f90 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
@@ -137,6 +137,13 @@ 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.setLocation(bundleLocation);
 
                         if (status == Bundle.ACTIVE)

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/e2eeafac/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 e6c702d..bdae0ad 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
@@ -67,7 +67,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/e2eeafac/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 2d4fbf8..ada5c82 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/e2eeafac/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 0823c00..2e5795a 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 = bundles.get(bundle);
+
                     String status;
                     switch (state.getStatus()) {
                         case BundleEvent.INSTALLED:

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/e2eeafac/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 d7959d4..a55bd0f 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
@@ -107,6 +107,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();
 
@@ -116,6 +122,7 @@ public class CellarBundleMBeanImpl extends StandardMBean 
implements CellarBundle
             // populate the cluster map
             Map<String, BundleState> bundles = 
clusterManager.getMap(Constants.BUNDLE_MAP + Configurations.SEPARATOR + 
groupName);
             BundleState state = new BundleState();
+            state.setName(name);
             state.setLocation(location);
             state.setStatus(BundleEvent.INSTALLED);
             bundles.put(name + "/" + version, state);

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/e2eeafac/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 8220510..74a5100 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
             // update the bundle distributed map
             try {
                 // update the distributed bundles map
+                // TODO does it make sense ?
                 List<BundleInfo> bundles = 
featuresService.getFeature(feature.getName(), version).getBundles();
                 Map<String, BundleState> bundlesMap = 
clusterManager.getMap(org.apache.karaf.cellar.bundle.Constants.BUNDLE_MAP + 
Configurations.SEPARATOR + groupName);
                 for (BundleInfo bundle : bundles) {

Reply via email to