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