This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.testing.sling-mock-1.6.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git

commit 1b9e8dbc3de5145a80adac8bdf561b5fea41cc2b
Author: Stefan Seifert <[email protected]>
AuthorDate: Fri Oct 2 22:35:50 2015 +0000

    SLING-5088 deprecate all methods that may lead to thread leaks
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1706500 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/testing/mock/sling/MockSling.java | 60 +++++++++++++++++++++-
 .../sling/ResourceResolverFactoryInitializer.java  |  2 -
 .../sling/servlet/MockSlingHttpServletRequest.java | 12 ++++-
 .../mock/sling/MockSlingScriptHelperTest.java      |  4 +-
 .../context/AbstractSlingContextImplTest.java      | 11 ++--
 .../sling/context/ModelAdapterFactoryUtilTest.java | 19 +++----
 .../sling/resource/AbstractJcrNamespaceTest.java   |  7 ++-
 .../servlet/MockSlingHttpServletRequestTest.java   |  2 +-
 8 files changed, 87 insertions(+), 30 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java 
b/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
index db85756..a6e1440 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
@@ -56,13 +56,25 @@ public final class MockSling {
      * Creates new sling resource resolver factory instance.
      * @param type Type of underlying repository.
      * @return Resource resolver factory instance
+     * @deprecated Please use {@link 
#newResourceResolverFactory(ResourceResolverType, BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public static ResourceResolverFactory newResourceResolverFactory(final 
ResourceResolverType type) {
         return newResourceResolverFactory(type, MockOsgi.newBundleContext());
     }
     
     /**
      * Creates new sling resource resolver factory instance.
+     * @param bundleContext Bundle context
+     * @return Resource resolver factory instance
+     */
+    public static ResourceResolverFactory newResourceResolverFactory(final 
BundleContext bundleContext) {
+        return newResourceResolverFactory(DEFAULT_RESOURCERESOLVER_TYPE, 
bundleContext);
+    }
+
+    /**
+     * Creates new sling resource resolver factory instance.
      * @param type Type of underlying repository.
      * @param bundleContext Bundle context
      * @return Resource resolver factory instance
@@ -107,7 +119,10 @@ public final class MockSling {
      * Creates new sling resource resolver factory instance using
      * {@link #DEFAULT_RESOURCERESOLVER_TYPE}.
      * @return Resource resolver factory instance
+     * @deprecated Please use {@link 
#newResourceResolverFactory(BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public static ResourceResolverFactory newResourceResolverFactory() {
         return newResourceResolverFactory(DEFAULT_RESOURCERESOLVER_TYPE);
     }
@@ -116,7 +131,10 @@ public final class MockSling {
      * Creates new sling resource resolver instance.
      * @param type Type of underlying repository.
      * @return Resource resolver instance
+     * @deprecated Please use {@link 
#newResourceResolver(ResourceResolverType, BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public static ResourceResolver newResourceResolver(final 
ResourceResolverType type) {
         ResourceResolverFactory factory = newResourceResolverFactory(type);
         try {
@@ -130,12 +148,38 @@ public final class MockSling {
      * Creates new sling resource resolver instance using
      * {@link #DEFAULT_RESOURCERESOLVER_TYPE}.
      * @return Resource resolver instance
+     * @deprecated Please use {@link #newResourceResolver(BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public static ResourceResolver newResourceResolver() {
         return newResourceResolver(DEFAULT_RESOURCERESOLVER_TYPE);
     }
 
     /**
+     * Creates new sling resource resolver instance.
+     * @param type Type of underlying repository.
+     * @return Resource resolver instance
+     */
+    public static ResourceResolver newResourceResolver(final 
ResourceResolverType type, BundleContext bundleContext) {
+        ResourceResolverFactory factory = newResourceResolverFactory(type, 
bundleContext);
+        try {
+            return factory.getAdministrativeResourceResolver(null);
+        } catch (LoginException ex) {
+            throw new RuntimeException("Mock resource resolver factory 
implementation seems to require login.", ex);
+        }
+    }
+
+    /**
+     * Creates new sling resource resolver instance using
+     * {@link #DEFAULT_RESOURCERESOLVER_TYPE}.
+     * @return Resource resolver instance
+     */
+    public static ResourceResolver newResourceResolver(BundleContext 
bundleContext) {
+        return newResourceResolver(DEFAULT_RESOURCERESOLVER_TYPE, 
bundleContext);
+    }
+
+    /**
      * Creates a new sling script helper instance.
      * @param request Request
      * @param response Response
@@ -151,11 +195,23 @@ public final class MockSling {
      * Creates a new sling script helper instance using
      * {@link #DEFAULT_RESOURCERESOLVER_TYPE} for the resource resolver.
      * @return Sling script helper instance
+     * @deprecated Please use {@link #newSlingScriptHelper(BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public static SlingScriptHelper newSlingScriptHelper() {
-        SlingHttpServletRequest request = new 
MockSlingHttpServletRequest(newResourceResolver());
-        SlingHttpServletResponse response = new MockSlingHttpServletResponse();
         BundleContext bundleContext = MockOsgi.newBundleContext();
+        return newSlingScriptHelper(bundleContext);
+    }
+
+    /**
+     * Creates a new sling script helper instance using
+     * {@link #DEFAULT_RESOURCERESOLVER_TYPE} for the resource resolver.
+     * @return Sling script helper instance
+     */
+    public static SlingScriptHelper newSlingScriptHelper(BundleContext 
bundleContext) {
+        SlingHttpServletRequest request = new 
MockSlingHttpServletRequest(newResourceResolver(bundleContext));
+        SlingHttpServletResponse response = new MockSlingHttpServletResponse();
         return newSlingScriptHelper(request, response, bundleContext);
     }
 
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java
index ae1f129..0572ec9 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java
@@ -42,8 +42,6 @@ import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.event.EventAdmin;
 
-import sun.util.BuddhistCalendar;
-
 /**
  * Initializes Sling Resource Resolver factories with JCR-resource mapping.
  */
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
index 4349cac..02130cd 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
@@ -108,9 +108,19 @@ public class MockSlingHttpServletRequest extends 
SlingAdaptable implements Sling
 
     /**
      * Instantiate with default resource resolver
+     * @deprecated Please use {@link 
#MockSlingHttpServletRequest(BundleContext)}
+     *   and shutdown the bundle context after usage.
      */
+    @Deprecated
     public MockSlingHttpServletRequest() {
-        this(MockSling.newResourceResolver());
+        this(MockOsgi.newBundleContext());
+    }
+
+    /**
+     * Instantiate with default resource resolver
+     */
+    public MockSlingHttpServletRequest(BundleContext bundleContext) {
+        this(MockSling.newResourceResolver(bundleContext));
     }
 
     /**
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java
index 9f5bebd..c4098b7 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java
@@ -44,10 +44,10 @@ public class MockSlingScriptHelperTest {
 
     @Before
     public void setUp() throws Exception {
-        this.resourceResolver = MockSling.newResourceResolver();
+        this.bundleContext = MockOsgi.newBundleContext();
+        this.resourceResolver = MockSling.newResourceResolver(bundleContext);
         this.request = new MockSlingHttpServletRequest(this.resourceResolver);
         this.response = new MockSlingHttpServletResponse();
-        this.bundleContext = MockOsgi.newBundleContext();
         this.scriptHelper = MockSling.newSlingScriptHelper(this.request, 
this.response, this.bundleContext);
     }
     
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
index c129ee1..391cce6 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
@@ -36,12 +36,10 @@ import org.apache.sling.api.scripting.SlingBindings;
 import org.apache.sling.commons.mime.MimeTypeService;
 import org.apache.sling.models.annotations.Model;
 import org.apache.sling.settings.SlingSettingsService;
-import org.apache.sling.testing.mock.sling.MockSling;
 import org.apache.sling.testing.mock.sling.ResourceResolverType;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.apache.sling.testing.mock.sling.loader.ContentLoader;
 import org.apache.sling.testing.mock.sling.services.MockMimeTypeService;
-import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -112,11 +110,9 @@ public abstract class AbstractSlingContextImplTest {
     public void testSlingModelsOsgiService() {
         context.registerService(new MockMimeTypeService());
 
-        ResourceResolver resolver = MockSling.newResourceResolver();
-        OsgiServiceModel model = resolver.adaptTo(OsgiServiceModel.class);
+        OsgiServiceModel model = 
context.resourceResolver().adaptTo(OsgiServiceModel.class);
         assertNotNull(model.getMimeTypeService());
         assertEquals("text/html", 
model.getMimeTypeService().getMimeType("html"));
-        resolver.close();
     }
 
     @Test
@@ -127,9 +123,8 @@ public abstract class AbstractSlingContextImplTest {
 
     @Test
     public void testAdaptToInterface() {
-        MockSlingHttpServletRequest request = new 
MockSlingHttpServletRequest();
-        request.setAttribute("prop1", "myValue");
-        ServiceInterface model = request.adaptTo(ServiceInterface.class);
+        context.request().setAttribute("prop1", "myValue");
+        ServiceInterface model = 
context.request().adaptTo(ServiceInterface.class);
         assertNotNull(model);
         assertEquals("myValue", model.getPropValue());
     }
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java
index 13df440..d935bbb 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java
@@ -28,10 +28,8 @@ import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.mime.MimeTypeService;
 import org.apache.sling.models.annotations.Model;
-import org.apache.sling.testing.mock.sling.MockSling;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.apache.sling.testing.mock.sling.services.MockMimeTypeService;
-import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -49,9 +47,8 @@ public class ModelAdapterFactoryUtilTest {
 
     @Test
     public void testRequestAttribute() {
-        MockSlingHttpServletRequest request = new 
MockSlingHttpServletRequest();
-        request.setAttribute("prop1", "myValue");
-        RequestAttributeModel model = 
request.adaptTo(RequestAttributeModel.class);
+        context.request().setAttribute("prop1", "myValue");
+        RequestAttributeModel model = 
context.request().adaptTo(RequestAttributeModel.class);
         assertNotNull(model);
         assertEquals("myValue", model.getProp1());
     }
@@ -60,26 +57,22 @@ public class ModelAdapterFactoryUtilTest {
     public void testOsgiService() {
         context.registerService(MimeTypeService.class, new 
MockMimeTypeService(), null);
 
-        ResourceResolver resolver = MockSling.newResourceResolver();
-        OsgiServiceModel model = resolver.adaptTo(OsgiServiceModel.class);
+        OsgiServiceModel model = 
context.resourceResolver().adaptTo(OsgiServiceModel.class);
         assertNotNull(model);
         assertNotNull(model.getMimeTypeService());
         assertEquals("text/html", 
model.getMimeTypeService().getMimeType("html"));
-        resolver.close();
     }
 
     @Test
     public void testInvalidAdapt() {
-        MockSlingHttpServletRequest request = new 
MockSlingHttpServletRequest();
-        OsgiServiceModel model = request.adaptTo(OsgiServiceModel.class);
+        OsgiServiceModel model = 
context.request().adaptTo(OsgiServiceModel.class);
         assertNull(model);
     }
 
     @Test
     public void testAdaptToInterface() {
-        MockSlingHttpServletRequest request = new 
MockSlingHttpServletRequest();
-        request.setAttribute("prop1", "myValue");
-        ServiceInterface model = request.adaptTo(ServiceInterface.class);
+        context.request().setAttribute("prop1", "myValue");
+        ServiceInterface model = 
context.request().adaptTo(ServiceInterface.class);
         assertNotNull(model);
         assertEquals("myValue", model.getPropValue());
     }
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
index 71b93b7..427e338 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
@@ -27,12 +27,14 @@ import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.testing.mock.osgi.MockOsgi;
 import org.apache.sling.testing.mock.sling.MockSling;
 import org.apache.sling.testing.mock.sling.ResourceResolverType;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.apache.sling.testing.mock.sling.loader.ContentLoader;
 import org.junit.Rule;
 import org.junit.Test;
+import org.osgi.framework.BundleContext;
 
 /**
  * Validates correct registering and mapping of JCR namespaces, esp. the sling 
namespace. 
@@ -46,7 +48,8 @@ public abstract class AbstractJcrNamespaceTest {
     
     @Test
     public void testSling4362() throws RepositoryException {
-        ResourceResolver resolver = 
MockSling.newResourceResolver(getResourceResolverType());
+        BundleContext bundleContext = MockOsgi.newBundleContext();
+        ResourceResolver resolver = 
MockSling.newResourceResolver(getResourceResolverType(), bundleContext);
         
         ContentLoader contentLoader = new ContentLoader(resolver);
         contentLoader.json("/json-import-samples/SLING-4362.json", 
context.uniqueRoot().content() + "/foo");
@@ -56,6 +59,8 @@ public abstract class AbstractJcrNamespaceTest {
         ValueMap props = ResourceUtil.getValueMap(resource);
         assertEquals("fooType", props.get(SLING_RESOURCE_TYPE_PROPERTY));
         assertEquals("fooType", resource.getResourceType());
+        
+        MockOsgi.shutdown(bundleContext);
     }
 
     @Test
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java
index 3ab99ad..953f52d 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java
@@ -87,7 +87,7 @@ public class MockSlingHttpServletRequestTest {
 
     @Test
     public void testDefaultResourceResolver() {
-        assertNotNull(new MockSlingHttpServletRequest().getResourceResolver());
+        assertNotNull(new 
MockSlingHttpServletRequest(bundleContext).getResourceResolver());
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to