You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ad...@apache.org on 2009/10/04 19:38:54 UTC

svn commit: r821565 - in /incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container: BlueprintEventDispatcher.java BlueprintExtender.java

Author: adc
Date: Sun Oct  4 17:38:54 2009
New Revision: 821565

URL: http://svn.apache.org/viewvc?rev=821565&view=rev
Log:
I thought that this bit of coupling was awkward

Modified:
    incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java
    incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java

Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java?rev=821565&r1=821564&r2=821565&view=diff
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java (original)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java Sun Oct  4 17:38:54 2009
@@ -37,7 +37,9 @@
 
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.SynchronousBundleListener;
 import org.osgi.service.blueprint.container.BlueprintEvent;
 import org.osgi.service.blueprint.container.BlueprintListener;
 import org.osgi.service.blueprint.container.EventConstants;
@@ -56,7 +58,7 @@
  *
  * @version $Rev: 760378 $, $Date: 2009-03-31 11:31:38 +0200 (Tue, 31 Mar 2009) $
  */
-class BlueprintEventDispatcher implements BlueprintListener {
+class BlueprintEventDispatcher implements BlueprintListener, SynchronousBundleListener {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(BlueprintEventDispatcher.class);
 
@@ -70,6 +72,8 @@
 
         assert bundleContext != null;
 
+        bundleContext.addBundleListener(this);
+
         EventAdminListener listener = null;
         try {
             getClass().getClassLoader().loadClass("org.osgi.service.event.EventAdmin");
@@ -197,10 +201,6 @@
         }
     }
 
-    void contextDestroyed(Bundle bundle) {
-        states.remove(bundle);
-    }
-
     void destroy() {
         executor.shutdown();
         // wait for the queued tasks to execute
@@ -216,6 +216,12 @@
         }
     }
 
+    public void bundleChanged(BundleEvent event) {
+        if (BundleEvent.STOPPING == event.getType()) {
+            states.remove(event.getBundle());
+        }
+    }
+
     private static class EventAdminListener implements BlueprintListener {
 
         private final ServiceTracker tracker;

Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java?rev=821565&r1=821564&r2=821565&view=diff
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java (original)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java Sun Oct  4 17:38:54 2009
@@ -169,7 +169,6 @@
         if (blueprintContainer != null) {
             LOGGER.debug("Destroying BlueprintContainer for bundle {}", bundle.getSymbolicName());
             blueprintContainer.destroy();
-            eventDispatcher.contextDestroyed(bundle);
         }
     }