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;