You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/20 14:41:32 UTC
[sling-org-apache-sling-jcr-repository-it-resource-versioning]
03/13: SLING-848;
Updated API version to 2.9.0. Use MockJcrResourceResolverFactory
implementation from the Sling Mock in versioning IT
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-repository-it-resource-versioning.git
commit 891e303e0c77053f370949badd55c38a31f655e9
Author: tomekr <to...@unknown>
AuthorDate: Tue Feb 24 09:33:51 2015 +0000
SLING-848; Updated API version to 2.9.0. Use MockJcrResourceResolverFactory implementation from the Sling Mock in versioning IT
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1661870 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 2 +-
.../jcr/resource/it/ResourceVersioningTest.java | 7 +-
.../mock/sling/MockJcrResourceResolverFactory.java | 135 ---------------------
.../testing/mock/sling/MockResolverProvider.java | 23 ++++
4 files changed, 26 insertions(+), 141 deletions(-)
diff --git a/pom.xml b/pom.xml
index c3ebe71..44429e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,7 +72,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9.0</version>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/src/test/java/org/apache/sling/jcr/resource/it/ResourceVersioningTest.java b/src/test/java/org/apache/sling/jcr/resource/it/ResourceVersioningTest.java
index 0c45c1c..2589fcc 100644
--- a/src/test/java/org/apache/sling/jcr/resource/it/ResourceVersioningTest.java
+++ b/src/test/java/org/apache/sling/jcr/resource/it/ResourceVersioningTest.java
@@ -35,9 +35,7 @@ import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.commons.testing.jcr.RepositoryProvider;
-import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.testing.mock.sling.MockJcrResourceResolverFactory;
+import org.apache.sling.testing.mock.sling.MockResolverProvider;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -54,8 +52,7 @@ public class ResourceVersioningTest {
@Before
public void setUp() throws Exception {
- SlingRepository repository = RepositoryProvider.instance().getRepository();
- resolver = new MockJcrResourceResolverFactory(repository).getAdministrativeResourceResolver(null);
+ resolver = MockResolverProvider.getResourceResolver();
session = resolver.adaptTo(Session.class);
versionManager = session.getWorkspace().getVersionManager();
registerNamespace("sling", "http://sling.apache.org/jcr/sling/1.0");
diff --git a/src/test/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java b/src/test/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
deleted file mode 100644
index 96b0732..0000000
--- a/src/test/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.testing.mock.sling;
-
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory;
-import org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper;
-import org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl;
-import org.apache.sling.resourceresolver.impl.ResourceAccessSecurityTracker;
-import org.apache.sling.resourceresolver.impl.ResourceResolverImpl;
-import org.apache.sling.resourceresolver.impl.helper.ResourceResolverContext;
-import org.apache.sling.testing.mock.osgi.MockOsgi;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.component.ComponentContext;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Mock {@link ResourceResolver} implementation. Simulates OSGi environment and
- * initiates real Sling ResourceResolver and JCR implementation, but with a
- * mocked JCR repository implementation underneath.
- */
-public class MockJcrResourceResolverFactory implements ResourceResolverFactory {
-
- private final SlingRepository slingRepository;
-
- public MockJcrResourceResolverFactory(final SlingRepository repository) {
- this.slingRepository = repository;
- }
-
- private ResourceResolver getResourceResolverInternal(Map<String, Object> authenticationInfo, boolean isAdmin) throws LoginException {
- // setup mock OSGi environment
- BundleContext bundleContext = MockOsgi.newBundleContext();
-
- Dictionary<String, Object> resourceProviderFactoryFactoryProps = new Hashtable<String, Object>();
- resourceProviderFactoryFactoryProps.put(Constants.SERVICE_VENDOR, "sling-mock");
- resourceProviderFactoryFactoryProps.put(Constants.SERVICE_DESCRIPTION, "sling-mock");
- resourceProviderFactoryFactoryProps.put("resource.resolver.manglenamespaces", true);
- resourceProviderFactoryFactoryProps.put("resource.resolver.searchpath", new String[] { "/apps", "/libs" });
- ComponentContext resourceProviderComponentContext = MockOsgi.newComponentContext(bundleContext, resourceProviderFactoryFactoryProps);
-
- // setup mocked JCR environment
- bundleContext.registerService(SlingRepository.class.getName(), this.slingRepository, null);
- bundleContext.registerService(PathMapper.class.getName(), new PathMapper(), null);
-
- // setup real sling JCR resource provider implementation for use in
- // mocked context
- JcrResourceProviderFactory jcrResourceProviderFactory = new JcrResourceProviderFactory();
- MockOsgi.injectServices(jcrResourceProviderFactory, bundleContext);
- MockOsgi.activate(jcrResourceProviderFactory, bundleContext, ImmutableMap.<String, Object> of());
-
- ResourceProvider resourceProvider;
- if (isAdmin) {
- resourceProvider = jcrResourceProviderFactory.getAdministrativeResourceProvider(authenticationInfo);
- }
- else {
- resourceProvider = jcrResourceProviderFactory.getResourceProvider(authenticationInfo);
- }
-
- Dictionary<Object, Object> resourceProviderProps = new Hashtable<Object, Object>();
- resourceProviderProps.put(ResourceProvider.ROOTS, new String[] { "/" });
- bundleContext.registerService(ResourceProvider.class.getName(), resourceProvider, resourceProviderProps);
- ServiceReference resourceProviderServiceReference = bundleContext.getServiceReference(ResourceProvider.class.getName());
-
- // setup real sling resource resolver implementation for use in mocked
- // context
- MockResourceResolverFactoryActivator activator = new MockResourceResolverFactoryActivator();
- activator.bindResourceProvider(resourceProvider,
- getServiceReferenceProperties(resourceProviderServiceReference));
- activator.activate(resourceProviderComponentContext);
- CommonResourceResolverFactoryImpl commonFactoryImpl = new CommonResourceResolverFactoryImpl(activator);
- ResourceResolverContext context = new ResourceResolverContext(true, authenticationInfo, new ResourceAccessSecurityTracker());
- ResourceResolverImpl resourceResolver = new ResourceResolverImpl(commonFactoryImpl, context);
- return resourceResolver;
- }
-
- private Map<String, Object> getServiceReferenceProperties(final ServiceReference serviceReference) {
- Map<String, Object> props = new HashMap<String, Object>();
- String[] keys = serviceReference.getPropertyKeys();
- for (String key : keys) {
- props.put(key, serviceReference.getProperty(key));
- }
- return props;
- }
-
- @Override
- public ResourceResolver getResourceResolver(final Map<String, Object> authenticationInfo) throws LoginException {
- return getResourceResolverInternal(authenticationInfo, false);
- }
-
- @Override
- public ResourceResolver getAdministrativeResourceResolver(final Map<String, Object> authenticationInfo)
- throws LoginException {
- return getResourceResolverInternal(authenticationInfo, true);
- }
-
- // part of Sling API 2.7
- public ResourceResolver getServiceResourceResolver(final Map<String, Object> authenticationInfo)
- throws LoginException {
- return getResourceResolverInternal(authenticationInfo, true);
- }
-
- // part of Sling API 2.8
- public ResourceResolver getThreadResourceResolver() {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/src/test/java/org/apache/sling/testing/mock/sling/MockResolverProvider.java b/src/test/java/org/apache/sling/testing/mock/sling/MockResolverProvider.java
new file mode 100644
index 0000000..00a2bbd
--- /dev/null
+++ b/src/test/java/org/apache/sling/testing/mock/sling/MockResolverProvider.java
@@ -0,0 +1,23 @@
+package org.apache.sling.testing.mock.sling;
+
+import javax.jcr.RepositoryException;
+
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.commons.testing.jcr.RepositoryProvider;
+import org.apache.sling.jcr.api.SlingRepository;
+import org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper;
+import org.apache.sling.testing.mock.osgi.MockOsgi;
+import org.osgi.framework.BundleContext;
+
+public class MockResolverProvider {
+ private MockResolverProvider() {
+ }
+
+ public static ResourceResolver getResourceResolver() throws RepositoryException, LoginException {
+ final SlingRepository repository = RepositoryProvider.instance().getRepository();
+ final BundleContext bundleContext = MockOsgi.newBundleContext();
+ bundleContext.registerService(PathMapper.class.getName(), new PathMapper(), null);
+ return new MockJcrResourceResolverFactory(repository, bundleContext).getAdministrativeResourceResolver(null);
+ }
+}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.