This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.osgi-mock-1.6.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-osgi-mock.git
commit ee4eeb27be831d7c9323406b1ee3b6a9db2443bc Author: Stefan Seifert <[email protected]> AuthorDate: Fri Oct 2 17:01:49 2015 +0000 SLING-5089 mock-osgi: Deactivate all services on shutdown git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/osgi-mock@1706447 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/sling/testing/mock/osgi/MockBundleContext.java | 14 ++++++++++++++ .../java/org/apache/sling/testing/mock/osgi/MockOsgi.java | 7 +++++++ .../sling/testing/mock/osgi/context/OsgiContextImpl.java | 7 ++++++- .../org/apache/sling/testing/mock/osgi/package-info.java | 2 +- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java b/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java index 7f4ab50..e6136aa 100644 --- a/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java +++ b/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java @@ -290,6 +290,20 @@ class MockBundleContext implements BundleContext { // 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 diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java b/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java index 8d74aac..866d8b8 100644 --- a/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java +++ b/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java @@ -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(); + } + } diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java b/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java index c200f8e..4847a2d 100644 --- a/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java +++ b/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java @@ -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; } /** diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java b/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java index dbaa66f..fe5f126 100644 --- a/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java +++ b/src/main/java/org/apache/sling/testing/mock/osgi/package-info.java @@ -19,5 +19,5 @@ /** * Mock implementation of selected OSGi APIs. */ [email protected]("2.3") [email protected]("2.4") package org.apache.sling.testing.mock.osgi; -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
