Author: sseifert
Date: Tue Feb 23 01:49:03 2016
New Revision: 1731777

URL: http://svn.apache.org/viewvc?rev=1731777&view=rev
Log:
SLING-5547 Update sling-mock-oak to Sling API 2.11 and Oak 1.3.15

Modified:
    
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
    
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockSlingRepository.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
    
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java

Modified: 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
 Tue Feb 23 01:49:03 2016
@@ -18,13 +18,9 @@
  */
 package org.apache.sling.testing.mock.sling.oak;
 
-import java.util.concurrent.Executor;
-
-import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardExecutor;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
-import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type adapter for Jackrabbit Oak repository.
@@ -32,15 +28,12 @@ import org.osgi.framework.BundleContext;
 public class OakMockResourceResolverAdapter implements 
ResourceResolverTypeAdapter {
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory(BundleContext 
bundleContext) {
+    public ResourceResolverFactory newResourceResolverFactory() {
         return null;
     }
 
     @Override
-    public SlingRepository newSlingRepository(BundleContext bundleContext) {
-        if (bundleContext.getServiceReference(Executor.class) == null) {
-            bundleContext.registerService(Executor.class, new 
WhiteboardExecutor(), null);
-        }
+    public SlingRepository newSlingRepository() {
         return new OakMockSlingRepository();
     }
 

Modified: 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockSlingRepository.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockSlingRepository.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockSlingRepository.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockSlingRepository.java
 Tue Feb 23 01:49:03 2016
@@ -18,8 +18,10 @@
  */
 package org.apache.sling.testing.mock.sling.oak;
 
-import java.lang.reflect.Field;
+import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
 
 import javax.jcr.Credentials;
 import javax.jcr.LoginException;
@@ -38,9 +40,8 @@ import org.apache.jackrabbit.api.Jackrab
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.sling.jcr.api.SlingRepository;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.component.ComponentContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @Component
 @Service(SlingRepository.class)
@@ -49,15 +50,28 @@ public final class OakMockSlingRepositor
     private static final String ADMIN_NAME = "admin";
     private static final String ADMIN_PASSWORD = "admin";
 
-    private Oak oak;
     private Repository repository;
-    
-    private static final Logger log = 
LoggerFactory.getLogger(OakMockSlingRepository.class);
+    private ExecutorService executor;
+    private ScheduledExecutorService scheduledExecutor;
     
     @Activate
-    protected void activate(ComponentContext componentContext) {
-        this.oak = new Oak();
-        Jcr jcr = new Jcr(oak).with(new ExtraSlingContent());
+    protected void activate(BundleContext bundleContext) {
+        executor = Executors.newSingleThreadExecutor();
+        scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
+        
+        if (bundleContext.getServiceReference(Executor.class) == null) {
+            bundleContext.registerService(Executor.class, executor, null);
+        }
+        
+        Oak oak = new Oak()
+                .with(executor)
+                .with(scheduledExecutor);
+        
+        Jcr jcr = new Jcr(oak)
+                .with(new ExtraSlingContent())
+                .with(executor)
+                .with(scheduledExecutor);
+        
         this.repository = jcr.createRepository();
     }
 
@@ -66,24 +80,11 @@ public final class OakMockSlingRepositor
         // shutdown OAK JCR repository
         ((JackrabbitRepository)repository).shutdown();
         
-        // shutdown further OAK executor services via reflection
-        shutdownExecutorService("executor");
-        shutdownExecutorService("scheduledExecutor");
+        // shutdown executors
+        executor.shutdownNow();
+        scheduledExecutor.shutdownNow();
     }
     
-    private void shutdownExecutorService(String fieldName) {
-        try {
-            Field executorField = Oak.class.getDeclaredField(fieldName); 
-            executorField.setAccessible(true);
-            ExecutorService executor = 
(ExecutorService)executorField.get(this.oak);
-            executor.shutdownNow();
-        }
-        catch (Throwable ex) {
-            log.error("Potential Memory leak: Unable to shutdown executor 
service from field '" + fieldName + "' in " + this.oak, ex);
-        }
-    }
-
-
     public String getDescriptor(String key) {
         return repository.getDescriptor(key);
     }

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java
 Tue Feb 23 01:49:03 2016
@@ -21,7 +21,6 @@ package org.apache.sling.testing.mock.sl
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
-import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type adapter for JCR Mocks implementation.
@@ -29,12 +28,12 @@ import org.osgi.framework.BundleContext;
 class MockJcrResourceResolverAdapter implements ResourceResolverTypeAdapter {
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory(BundleContext 
bundleContext) {
+    public ResourceResolverFactory newResourceResolverFactory() {
         return null;
     }
 
     @Override
-    public SlingRepository newSlingRepository(BundleContext bundleContext) {
+    public SlingRepository newSlingRepository() {
         return new MockJcrSlingRepository();
     }
 

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
 Tue Feb 23 01:49:03 2016
@@ -21,7 +21,6 @@ package org.apache.sling.testing.mock.sl
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
-import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type with no resource provider registered.
@@ -29,12 +28,12 @@ import org.osgi.framework.BundleContext;
 class MockNoneResourceResolverAdapter implements ResourceResolverTypeAdapter {
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory(BundleContext 
bundleContext) {
+    public ResourceResolverFactory newResourceResolverFactory() {
         return null;
     }
 
     @Override
-    public SlingRepository newSlingRepository(BundleContext bundleContext) {
+    public SlingRepository newSlingRepository() {
         return null;
     }
 

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
 Tue Feb 23 01:49:03 2016
@@ -69,9 +69,9 @@ public final class MockSling {
     public static ResourceResolverFactory newResourceResolverFactory(final 
ResourceResolverType type,
             final BundleContext bundleContext) {
         ResourceResolverTypeAdapter adapter = 
getResourceResolverTypeAdapter(type);
-        ResourceResolverFactory factory = 
adapter.newResourceResolverFactory(bundleContext);
+        ResourceResolverFactory factory = adapter.newResourceResolverFactory();
         if (factory == null) {
-            SlingRepository repository = 
adapter.newSlingRepository(bundleContext);
+            SlingRepository repository = adapter.newSlingRepository();
             factory = ResourceResolverFactoryInitializer.setUp(repository, 
bundleContext, type.getNodeTypeMode());
         }
         else {

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
 Tue Feb 23 01:49:03 2016
@@ -23,7 +23,6 @@ import org.apache.sling.jcr.api.SlingRep
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
 import org.apache.sling.testing.resourceresolver.MockResourceResolverFactory;
 import 
org.apache.sling.testing.resourceresolver.MockResourceResolverFactoryOptions;
-import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type adapter for Sling Resource Resolver Mock 
implementation.
@@ -41,12 +40,12 @@ class RRMockMockResourceResolverAdapter
     }
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory(BundleContext 
bundleContext) {
+    public ResourceResolverFactory newResourceResolverFactory() {
         return new MockResourceResolverFactory(options);
     }
 
     @Override
-    public SlingRepository newSlingRepository(BundleContext bundleContext) {
+    public SlingRepository newSlingRepository() {
         return null;
     }
 

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
 Tue Feb 23 01:49:03 2016
@@ -20,7 +20,6 @@ package org.apache.sling.testing.mock.sl
 
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
-import org.osgi.framework.BundleContext;
 
 /**
  * SPI interface for resource resolver type implementations to provide a mock
@@ -34,7 +33,7 @@ public interface ResourceResolverTypeAda
      * {@link #newSlingRepository()} has to return a value.
      * @return Resource resolver factory instance or null
      */
-    ResourceResolverFactory newResourceResolverFactory(BundleContext 
bundleContext);
+    ResourceResolverFactory newResourceResolverFactory();
 
     /**
      * Get SlingRepository instance. Can be null if a resource resolver factory
@@ -42,6 +41,6 @@ public interface ResourceResolverTypeAda
      * {@link #newResourceResolverFactory()} has to return a value.
      * @return Sling repository instance or null
      */
-    SlingRepository newSlingRepository(BundleContext bundleContext);
+    SlingRepository newSlingRepository();
 
 }

Modified: 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java?rev=1731777&r1=1731776&r2=1731777&view=diff
==============================================================================
--- 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
 (original)
+++ 
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
 Tue Feb 23 01:49:03 2016
@@ -19,5 +19,5 @@
 /**
  * SPI for hooking in alternative resource type adapter implementations.
  */
[email protected]("2.0")
[email protected]("1.0")
 package org.apache.sling.testing.mock.sling.spi;


Reply via email to