You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/11/29 15:13:34 UTC

svn commit: r1415173 - in /karaf/cellar/branches/cellar-2.2.x: assembly/src/main/resources/groups.cfg bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java

Author: jbonofre
Date: Thu Nov 29 14:13:22 2012
New Revision: 1415173

URL: http://svn.apache.org/viewvc?rev=1415173&view=rev
Log:
[KARAF-2041] Refactore the Cellar LocalBundleListener to use a SynchronousBundleListener and unregister itself when receiving STOPPED or STOPPING event from the framework (bundle ID 0).

Modified:
    karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg
    karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java

Modified: karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg?rev=1415173&r1=1415172&r2=1415173&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg (original)
+++ karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg Thu Nov 29 14:13:22 2012
@@ -23,14 +23,8 @@ default.features.repositories.sync = tru
 
 default.bundle.whitelist.inbound = *
 default.bundle.whitelist.outbound = *
-default.bundle.blacklist.inbound = mvn:org.apache*, \
-                                   mvn:org.ops4j*, \
-                                   mvn:org.codehaus*, \
-                                   mvn:org.springframework*
-default.bundle.blacklist.outbound = mvn:org.apache*, \
-                                    mvn:org.ops4j*, \
-                                    mvn:org.codehaus*, \
-                                    mvn:org.springframework*
+default.bundle.blacklist.inbound = none
+default.bundle.blacklist.outbound = none
 default.bundle.sync = false
 
 default.obr.urls.sync = true

Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java?rev=1415173&r1=1415172&r2=1415173&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java Thu Nov 29 14:13:22 2012
@@ -21,6 +21,7 @@ import org.apache.karaf.cellar.core.even
 import org.apache.karaf.cellar.core.event.EventType;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleListener;
+import org.osgi.framework.SynchronousBundleListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -28,7 +29,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-public class LocalBundleListener extends BundleSupport implements BundleListener {
+public class LocalBundleListener extends BundleSupport implements SynchronousBundleListener {
 
     private static final transient Logger LOGGER = LoggerFactory.getLogger(LocalBundleListener.class);
 
@@ -41,6 +42,12 @@ public class LocalBundleListener extends
      */
     public void bundleChanged(BundleEvent event) {
 
+        if (event.getBundle().getBundleId() == 0 && (event.getType() == BundleEvent.STOPPING || event.getType() == BundleEvent.STOPPED)) {
+            LOGGER.debug("CELLAR BUNDLE: remove LocalBundleListener");
+            bundleContext.removeBundleListener(this);
+            return;
+        }
+
         // check if the producer is ON
         if (eventProducer.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
             LOGGER.warn("CELLAR BUNDLE: cluster event producer is OFF");
@@ -110,7 +117,7 @@ public class LocalBundleListener extends
      * Destruction Method.
      */
     public void destroy() {
-
+        bundleContext.removeBundleListener(this);
     }
 
     public EventProducer getEventProducer() {