Author: gnodet
Date: Wed Dec 20 08:27:13 2017
New Revision: 1818743

URL: http://svn.apache.org/viewvc?rev=1818743&view=rev
Log:
EventAdmin events should be posted synchronously

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

Modified: 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java?rev=1818743&r1=1818742&r2=1818743&view=diff
==============================================================================
--- 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java
 (original)
+++ 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintEventDispatcher.java
 Wed Dec 20 08:27:13 2017
@@ -66,15 +66,13 @@ class BlueprintEventDispatcher implement
     private final Set<BlueprintListener> listeners = new 
CopyOnWriteArraySet<BlueprintListener>();
     private final Map<Bundle, BlueprintEvent> states = new 
ConcurrentHashMap<Bundle, BlueprintEvent>();
     private final ExecutorService executor;
-    private final ExecutorService sharedExecutor;
     private final EventAdminListener eventAdminListener;
     private final ServiceTracker containerListenerTracker;
 
-    BlueprintEventDispatcher(final BundleContext bundleContext, 
ExecutorService sharedExecutor) {
+    BlueprintEventDispatcher(final BundleContext bundleContext) {
 
         assert bundleContext != null;
-        assert sharedExecutor != null;
-        
+
         executor = new ScheduledExecutorServiceWrapper(bundleContext, 
"Blueprint Event Dispatcher", new ScheduledExecutorServiceFactory() {
           
           public ScheduledExecutorService create(String name)
@@ -83,10 +81,6 @@ class BlueprintEventDispatcher implement
           }
         });
 
-//        executor = Executors.newSingleThreadExecutor(new 
BlueprintThreadFactory("Blueprint Event Dispatcher"));
-        
-        this.sharedExecutor = sharedExecutor;
-
         EventAdminListener listener = null;
         try {
             
getClass().getClassLoader().loadClass("org.osgi.service.event.EventAdmin");
@@ -143,11 +137,7 @@ class BlueprintEventDispatcher implement
 
         if (eventAdminListener != null) {
             try {
-                sharedExecutor.submit(new Runnable() {
-                    public void run() {
-                        eventAdminListener.blueprintEvent(event);
-                    }
-                });
+                eventAdminListener.blueprintEvent(event);
             } catch (RejectedExecutionException ree) {
                 LOGGER.warn("Executor shut down", ree);
             }

Modified: 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java?rev=1818743&r1=1818742&r2=1818743&view=diff
==============================================================================
--- 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
 (original)
+++ 
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
 Wed Dec 20 08:27:13 2017
@@ -99,7 +99,7 @@ public class BlueprintExtender implement
             return Executors.newScheduledThreadPool(3, new 
BlueprintThreadFactory(name));
           }
         });
-        eventDispatcher = new BlueprintEventDispatcher(ctx, executors);
+        eventDispatcher = new BlueprintEventDispatcher(ctx);
 
         // Ideally we'd want to only track STARTING and ACTIVE bundle, but 
this is not supported
         // when using equinox composites.  This would ensure that no STOPPING 
event is lost while


Reply via email to