Author: jbonofre
Date: Thu Nov 29 14:15:06 2012
New Revision: 1415174
URL: http://svn.apache.org/viewvc?rev=1415174&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.3.x/assembly/src/main/resources/groups.cfg
karaf/cellar/branches/cellar-2.3.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
Modified:
karaf/cellar/branches/cellar-2.3.x/assembly/src/main/resources/groups.cfg
URL:
http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.3.x/assembly/src/main/resources/groups.cfg?rev=1415174&r1=1415173&r2=1415174&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.3.x/assembly/src/main/resources/groups.cfg
(original)
+++ karaf/cellar/branches/cellar-2.3.x/assembly/src/main/resources/groups.cfg
Thu Nov 29 14:15:06 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.3.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
URL:
http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.3.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java?rev=1415174&r1=1415173&r2=1415174&view=diff
==============================================================================
---
karaf/cellar/branches/cellar-2.3.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
(original)
+++
karaf/cellar/branches/cellar-2.3.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
Thu Nov 29 14:15:06 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() {