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/02 19:01:50 UTC

svn commit: r1706447 - in /sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi: MockBundleContext.java MockOsgi.java context/OsgiContextImpl.java package-info.java

Author: sseifert
Date: Fri Oct  2 17:01:49 2015
New Revision: 1706447

URL: http://svn.apache.org/viewvc?rev=1706447&view=rev
Log:
SLING-5089 mock-osgi: Deactivate all services on shutdown

Modified:
    sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
    sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java
    sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java
    sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java

Modified: sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java?rev=1706447&r1=1706446&r2=1706447&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java (original)
+++ sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java Fri Oct  2 17:01:49 2015
@@ -290,6 +290,20 @@ class MockBundleContext implements Bundl
         // no mock implementation, simulate that no property is found and return null
         return null;
     }
+    
+    /**
+     * Deactivates all bundles registered in this mocked bundle context.
+     */
+    public void shutdown() {
+        for (MockServiceRegistration serviceRegistration : ImmutableList.copyOf(registeredServices)) {
+            try {
+                MockOsgi.deactivate(serviceRegistration.getService(), this, serviceRegistration.getProperties());
+            }
+            catch (NoScrMetadataException ex) {
+                // ignore, no deactivate method is available then
+            }
+        }
+    }
 
     // --- unsupported operations ---
     @Override

Modified: sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java?rev=1706447&r1=1706446&r2=1706447&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java (original)
+++ sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java Fri Oct  2 17:01:49 2015
@@ -258,4 +258,11 @@ public final class MockOsgi {
         return OsgiServiceUtil.modified(target, bundleContext, mergedProperties);
     }
     
+    /**
+     * Deactivates all bundles registered in the mocked bundle context.
+     */
+    public static void shutdown(BundleContext bundleContext) {
+        ((MockBundleContext)bundleContext).shutdown();
+    }
+    
 }

Modified: sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java?rev=1706447&r1=1706446&r2=1706447&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java (original)
+++ sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java Fri Oct  2 17:01:49 2015
@@ -53,7 +53,12 @@ public class OsgiContextImpl {
      * Teardown actions after test method execution
      */
     protected void tearDown() {
-        // can be overridden by subclasses
+        if (componentContext != null) {
+            // deactivate all services
+            MockOsgi.shutdown(componentContext.getBundleContext());
+        }
+
+        this.componentContext = null;
     }
 
     /**

Modified: sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java?rev=1706447&r1=1706446&r2=1706447&view=diff
==============================================================================
--- sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java (original)
+++ sling/trunk/testing/mocks/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java Fri Oct  2 17:01:49 2015
@@ -19,5 +19,5 @@
 /**
  * Mock implementation of selected OSGi APIs.
  */
-@aQute.bnd.annotation.Version("2.3")
+@aQute.bnd.annotation.Version("2.4")
 package org.apache.sling.testing.mock.osgi;