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() {