You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/10/03 01:44:31 UTC

svn commit: r1706506 - /sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java

Author: sseifert
Date: Fri Oct  2 23:44:31 2015
New Revision: 1706506

URL: http://svn.apache.org/viewvc?rev=1706506&view=rev
Log:
SLING-5088 properly shutdown executor service in MockEventAdmin

Modified:
    sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java

Modified: sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java?rev=1706506&r1=1706505&r2=1706506&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java (original)
+++ sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java Fri Oct  2 23:44:31 2015
@@ -25,12 +25,15 @@ import java.util.concurrent.Executors;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.osgi.ServiceUtil;
+import org.osgi.service.component.ComponentContext;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 import org.osgi.service.event.EventConstants;
@@ -50,9 +53,19 @@ public final class MockEventAdmin implem
             cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, policy=ReferencePolicy.DYNAMIC)
     private final Map<Object, EventHandlerItem> eventHandlers = new TreeMap<Object, EventHandlerItem>();
 
-    private ExecutorService asyncHandler = Executors.newCachedThreadPool();
+    private ExecutorService asyncHandler;
     
     private static final Logger log = LoggerFactory.getLogger(MockEventAdmin.class);
+    
+    @Activate
+    protected void activate(ComponentContext componentContext) {
+        asyncHandler = Executors.newCachedThreadPool();
+    }
+
+    @Deactivate
+    protected void deactivate(ComponentContext componentContext) {
+        asyncHandler.shutdownNow();
+    }
 
     @Override
     public void postEvent(final Event event) {