You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/09/29 00:16:39 UTC
svn commit: r1705787 - in /sling/trunk/testing/mocks:
sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/
sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/
sling-mock-jackr...
Author: sseifert
Date: Mon Sep 28 22:16:38 2015
New Revision: 1705787
URL: http://svn.apache.org/viewvc?rev=1705787&view=rev
Log:
SLING-5064 manual registration of node types no longer required; register namespaces and node types centrally depending on NodeTypeMode
Added:
sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java (with props)
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java
- copied, changed from r1705759, sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java (with props)
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScannerTest.java
- copied, changed from r1705759, sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScannerTest.java
sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/
sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/
sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd (with props)
Removed:
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/resources/
sling/trunk/testing/mocks/sling-mock-oak/src/test/resources/
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScannerTest.java
Modified:
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrNamespaceTest.java
sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/MultipleResourceResolverTest.java
sling/trunk/testing/mocks/sling-mock-oak/pom.xml
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/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderBinaryTest.java
sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonDamTest.java
sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonTest.java
sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/JcrNamespaceTest.java
sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/MultipleResourceResolverTest.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/MockSling.java
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/MultipleResourceResolverTest.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java Mon Sep 28 22:16:38 2015
@@ -19,12 +19,10 @@
package org.apache.sling.testing.mock.sling.jackrabbit;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.testing.jcr.RepositoryProvider;
import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.testing.mock.sling.context.NodeTypeDefinitionScanner;
import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
/**
@@ -40,33 +38,11 @@ public class JackrabbitMockResourceResol
@Override
public SlingRepository newSlingRepository() {
try {
- SlingRepository slingRepository = RepositoryProvider.instance().getRepository();
- registerJcrNodeTypes(slingRepository);
- return slingRepository;
- } catch (RepositoryException ex) {
+ return RepositoryProvider.instance().getRepository();
+ }
+ catch (RepositoryException ex) {
throw new RuntimeException("Unable to get jackrabbit SlingRepository instance.", ex);
}
}
- /**
- * Registers all JCR node types found in classpath.
- * @param slingRepository Sling repository
- */
- @SuppressWarnings("deprecation")
- private static void registerJcrNodeTypes(SlingRepository slingRepository) {
- Session session = null;
- try {
- session = slingRepository.loginAdministrative(null);
- NodeTypeDefinitionScanner.get().register(session);
- }
- catch (RepositoryException ex) {
- throw new RuntimeException("Error registering JCR nodetypes: " + ex.getMessage(), ex);
- }
- finally {
- if (session != null) {
- session.logout();
- }
- }
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.jackrabbit.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderBinaryTest;
@@ -36,20 +28,4 @@ public class ContentLoaderBinaryTest ext
return ResourceResolverType.JCR_JACKRABBIT;
}
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling node types
- try {
- RepositoryUtil.registerSlingNodeTypes(resolver.adaptTo(Session.class));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.jackrabbit.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderJsonDamTest;
@@ -36,23 +28,4 @@ public class ContentLoaderJsonDamTest ex
return ResourceResolverType.JCR_JACKRABBIT;
}
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling and app node types
- try {
- Session session = resolver.adaptTo(Session.class);
- RepositoryUtil.registerSlingNodeTypes(session);
- RepositoryUtil.registerNodeType(session,
- ContentLoaderJsonTest.class.getResourceAsStream("/SLING-INF/nodetypes/app.cnd"));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.jackrabbit.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderJsonTest;
@@ -36,23 +28,4 @@ public class ContentLoaderJsonTest exten
return ResourceResolverType.JCR_JACKRABBIT;
}
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling and app node types
- try {
- Session session = resolver.adaptTo(Session.class);
- RepositoryUtil.registerSlingNodeTypes(session);
- RepositoryUtil.registerNodeType(session,
- ContentLoaderJsonTest.class.getResourceAsStream("/SLING-INF/nodetypes/app.cnd"));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrNamespaceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrNamespaceTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrNamespaceTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrNamespaceTest.java Mon Sep 28 22:16:38 2015
@@ -20,10 +20,7 @@ package org.apache.sling.testing.mock.sl
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.resource.AbstractJcrNamespaceTest;
-import org.junit.Ignore;
-//TEST IS DISABLED currently, it does not work with jackrabbit repository yet
-@Ignore
public class JcrNamespaceTest extends AbstractJcrNamespaceTest {
@Override
Modified: sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/MultipleResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/MultipleResourceResolverTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/MultipleResourceResolverTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/MultipleResourceResolverTest.java Mon Sep 28 22:16:38 2015
@@ -18,22 +18,9 @@
*/
package org.apache.sling.testing.mock.sling.jackrabbit.resource;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.resource.AbstractMultipleResourceResolverTest;
-import org.junit.Ignore;
-//TEST IS DISABLED currently, it does not work with jackrabbit repository yet
-@Ignore
public class MultipleResourceResolverTest extends AbstractMultipleResourceResolverTest {
@Override
@@ -41,23 +28,4 @@ public class MultipleResourceResolverTes
return ResourceResolverType.JCR_JACKRABBIT;
}
- @Override
- protected ResourceResolverFactory newResourceResolerFactory() {
- ResourceResolverFactory factory = MockSling.newResourceResolverFactory(getResourceResolverType());
-
- // register sling node types
- try {
- ResourceResolver resolver = factory.getResourceResolver(null);
- RepositoryUtil.registerSlingNodeTypes(resolver.adaptTo(Session.class));
- } catch (LoginException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return factory;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-oak/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/pom.xml?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/pom.xml (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/pom.xml Mon Sep 28 22:16:38 2015
@@ -62,18 +62,6 @@
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.testing</artifactId>
- <version>2.0.16</version>
- <exclusions>
- <exclusion>
- <groupId>org.jmock</groupId>
- <artifactId>jmock-junit4</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
<!-- Depend on oak-jcr, which pulls in all needed Oak artifacts -->
<dependency>
<groupId>org.apache.jackrabbit</groupId>
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=1705787&r1=1705786&r2=1705787&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 Mon Sep 28 22:16:38 2015
@@ -18,14 +18,9 @@
*/
package org.apache.sling.testing.mock.sling.oak;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
import org.apache.jackrabbit.oak.jcr.Jcr;
import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.testing.mock.sling.context.NodeTypeDefinitionScanner;
import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
/**
@@ -40,30 +35,7 @@ public class OakMockResourceResolverAdap
@Override
public SlingRepository newSlingRepository() {
- SlingRepository slingRepository = new RepositoryUtil.RepositoryWrapper(new Jcr().createRepository());
- registerJcrNodeTypes(slingRepository);
- return slingRepository;
- }
-
- /**
- * Registers all JCR node types found in classpath.
- * @param slingRepository Sling repository
- */
- @SuppressWarnings("deprecation")
- private static void registerJcrNodeTypes(SlingRepository slingRepository) {
- Session session = null;
- try {
- session = slingRepository.loginAdministrative(null);
- NodeTypeDefinitionScanner.get().register(session);
- }
- catch (RepositoryException ex) {
- throw new RuntimeException("Error registering JCR nodetypes: " + ex.getMessage(), ex);
- }
- finally {
- if (session != null) {
- session.logout();
- }
- }
+ return new RepositoryWrapper(new Jcr().createRepository());
}
}
Added: sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java?rev=1705787&view=auto
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java (added)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java Mon Sep 28 22:16:38 2015
@@ -0,0 +1,102 @@
+/*
+ * 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.oak;
+
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+import javax.jcr.Value;
+
+import org.apache.sling.jcr.api.SlingRepository;
+
+public final class RepositoryWrapper implements SlingRepository {
+
+ private static final String ADMIN_NAME = "admin";
+ private static final String ADMIN_PASSWORD = "admin";
+
+ protected final Repository wrapped;
+
+ public RepositoryWrapper(Repository r) {
+ wrapped = r;
+ }
+
+ public String getDescriptor(String key) {
+ return wrapped.getDescriptor(key);
+ }
+
+ public String[] getDescriptorKeys() {
+ return wrapped.getDescriptorKeys();
+ }
+
+ public String getDefaultWorkspace() {
+ return "default";
+ }
+
+ public Session login() throws LoginException, RepositoryException {
+ return wrapped.login();
+ }
+
+ public Session login(Credentials credentials, String workspaceName)
+ throws LoginException, NoSuchWorkspaceException, RepositoryException {
+ return wrapped.login(credentials, (workspaceName == null ? getDefaultWorkspace() : workspaceName));
+ }
+
+ public Session login(Credentials credentials)
+ throws LoginException, RepositoryException {
+ return wrapped.login(credentials);
+ }
+
+ public Session login(String workspaceName)
+ throws LoginException, NoSuchWorkspaceException, RepositoryException {
+ return wrapped.login((workspaceName == null ? getDefaultWorkspace() : workspaceName));
+ }
+
+ public Session loginAdministrative(String workspaceName)
+ throws RepositoryException {
+ final Credentials credentials = new SimpleCredentials(ADMIN_NAME, ADMIN_PASSWORD.toCharArray());
+ return this.login(credentials, (workspaceName == null ? getDefaultWorkspace() : workspaceName));
+ }
+
+ @Override
+ public Session loginService(String subServiceName, String workspaceName)
+ throws LoginException, RepositoryException {
+ return loginAdministrative(workspaceName);
+ }
+
+ public Value getDescriptorValue(String key) {
+ return wrapped.getDescriptorValue(key);
+ }
+
+ public Value[] getDescriptorValues(String key) {
+ return wrapped.getDescriptorValues(key);
+ }
+
+ public boolean isSingleValueDescriptor(String key) {
+ return wrapped.isSingleValueDescriptor(key);
+ }
+
+ public boolean isStandardDescriptor(String key) {
+ return wrapped.isStandardDescriptor(key);
+ }
+
+}
\ No newline at end of file
Propchange: sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Sep 28 22:16:38 2015
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/mocks/sling-mock-oak/src/main/java/org/apache/sling/testing/mock/sling/oak/RepositoryWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderBinaryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderBinaryTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderBinaryTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderBinaryTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.oak.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderBinaryTest;
@@ -36,20 +28,4 @@ public class ContentLoaderBinaryTest ext
return ResourceResolverType.JCR_OAK;
}
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling node types
- try {
- RepositoryUtil.registerSlingNodeTypes(resolver.adaptTo(Session.class));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonDamTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonDamTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonDamTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonDamTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.oak.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderJsonDamTest;
@@ -35,24 +27,5 @@ public class ContentLoaderJsonDamTest ex
protected ResourceResolverType getResourceResolverType() {
return ResourceResolverType.JCR_OAK;
}
-
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling and app node types
- try {
- Session session = resolver.adaptTo(Session.class);
- RepositoryUtil.registerSlingNodeTypes(session);
- RepositoryUtil.registerNodeType(session,
- ContentLoaderJsonTest.class.getResourceAsStream("/SLING-INF/nodetypes/app.cnd"));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
+
}
Modified: sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/contentimport/ContentLoaderJsonTest.java Mon Sep 28 22:16:38 2015
@@ -18,14 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.oak.contentimport;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.loader.AbstractContentLoaderJsonTest;
@@ -36,23 +28,4 @@ public class ContentLoaderJsonTest exten
return ResourceResolverType.JCR_OAK;
}
- @Override
- protected ResourceResolver newResourceResolver() {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- // register sling and app node types
- try {
- Session session = resolver.adaptTo(Session.class);
- RepositoryUtil.registerSlingNodeTypes(session);
- RepositoryUtil.registerNodeType(session,
- ContentLoaderJsonTest.class.getResourceAsStream("/SLING-INF/nodetypes/app.cnd"));
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return resolver;
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/JcrNamespaceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/JcrNamespaceTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/JcrNamespaceTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/JcrNamespaceTest.java Mon Sep 28 22:16:38 2015
@@ -20,10 +20,7 @@ package org.apache.sling.testing.mock.sl
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.resource.AbstractJcrNamespaceTest;
-import org.junit.Ignore;
-//TEST IS DISABLED currently, it does not work with oak repository yet
-@Ignore
public class JcrNamespaceTest extends AbstractJcrNamespaceTest {
@Override
Modified: sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/MultipleResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/MultipleResourceResolverTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/MultipleResourceResolverTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock-oak/src/test/java/org/apache/sling/testing/mock/sling/oak/resource/MultipleResourceResolverTest.java Mon Sep 28 22:16:38 2015
@@ -18,46 +18,14 @@
*/
package org.apache.sling.testing.mock.sling.oak.resource;
-import java.io.IOException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.commons.testing.jcr.RepositoryUtil;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.resource.AbstractMultipleResourceResolverTest;
-import org.junit.Ignore;
-//TEST IS DISABLED currently, it does not work with jackrabbit repository yet
-@Ignore
public class MultipleResourceResolverTest extends AbstractMultipleResourceResolverTest {
@Override
protected ResourceResolverType getResourceResolverType() {
return ResourceResolverType.JCR_OAK;
}
-
- @Override
- protected ResourceResolverFactory newResourceResolerFactory() {
- ResourceResolverFactory factory = MockSling.newResourceResolverFactory(getResourceResolverType());
-
- // register sling node types
- try {
- ResourceResolver resolver = factory.getResourceResolver(null);
- RepositoryUtil.registerSlingNodeTypes(resolver.adaptTo(Session.class));
- } catch (LoginException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (IOException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register sling node types.", ex);
- }
-
- return factory;
- }
-
+
}
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=1705787&r1=1705786&r2=1705787&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 Mon Sep 28 22:16:38 2015
@@ -18,10 +18,7 @@
*/
package org.apache.sling.testing.mock.sling;
-import javax.jcr.NamespaceRegistry;
import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.jcr.api.SlingRepository;
@@ -41,17 +38,6 @@ class MockJcrResourceResolverAdapter imp
@Override
public SlingRepository newSlingRepository() {
Repository repository = MockJcr.newRepository();
-
- try {
- Session session = repository.login();
- NamespaceRegistry namespaceRegistry = session.getWorkspace().getNamespaceRegistry();
- namespaceRegistry.registerNamespace("sling", "http://sling.apache.org/jcr/sling/1.0");
- session.logout();
- }
- catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register namespaces in JCR Mock repository.", ex);
- }
-
return new MockSlingRepository(repository);
}
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=1705787&r1=1705786&r2=1705787&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 Mon Sep 28 22:16:38 2015
@@ -18,6 +18,9 @@
*/
package org.apache.sling.testing.mock.sling;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.adapter.SlingAdaptable;
@@ -76,12 +79,34 @@ public final class MockSling {
factory = new MockNoneResourceResolverFactory(bundleContext);
}
else {
+ registerJcrNodeTypes(repository, type);
factory = new MockJcrResourceResolverFactory(repository, bundleContext);
}
}
return factory;
}
+ /**
+ * Registers all JCR node types found in classpath.
+ * @param slingRepository Sling repository
+ */
+ @SuppressWarnings("deprecation")
+ private static void registerJcrNodeTypes(final SlingRepository slingRepository, final ResourceResolverType type) {
+ Session session = null;
+ try {
+ session = slingRepository.loginAdministrative(null);
+ NodeTypeDefinitionScanner.get().register(session, type.getNodeTypeMode());
+ }
+ catch (RepositoryException ex) {
+ throw new RuntimeException("Error registering JCR nodetypes: " + ex.getMessage(), ex);
+ }
+ finally {
+ if (session != null) {
+ session.logout();
+ }
+ }
+ }
+
private static ResourceResolverTypeAdapter getResourceResolverTypeAdapter(final ResourceResolverType type) {
try {
Class clazz = Class.forName(type.getResourceResolverTypeAdapterClass());
Copied: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java (from r1705759, sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java)
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java?p2=sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java&p1=sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java&r1=1705759&r2=1705787&rev=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java Mon Sep 28 22:16:38 2015
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.sling.testing.mock.sling.context;
+package org.apache.sling.testing.mock.sling;
import java.io.IOException;
import java.io.InputStream;
@@ -34,13 +34,25 @@ import java.util.jar.Manifest;
import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.Value;
import javax.jcr.ValueFactory;
import javax.jcr.Workspace;
+import javax.jcr.nodetype.NodeDefinition;
+import javax.jcr.nodetype.NodeDefinitionTemplate;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.NodeTypeDefinition;
+import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.NodeTypeTemplate;
+import javax.jcr.nodetype.PropertyDefinition;
+import javax.jcr.nodetype.PropertyDefinitionTemplate;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.jackrabbit.commons.cnd.CndImporter;
+import org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader;
+import org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory;
+import org.apache.jackrabbit.commons.cnd.TemplateBuilderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,9 +86,9 @@ public final class NodeTypeDefinitionSca
* Registers node types found in classpath in JCR repository.
* @param session Session
*/
- public void register(Session session) throws RepositoryException {
+ public void register(Session session, NodeTypeMode nodeTypeMode) throws RepositoryException {
List<String> nodeTypeResources = getNodeTypeDefinitions();
- register(session, nodeTypeResources);
+ register(session, nodeTypeResources, nodeTypeMode);
}
/**
@@ -84,25 +96,91 @@ public final class NodeTypeDefinitionSca
* @param session Session
* @param nodeTypeResources List of classpath resource URLs pointing to node type definitions
*/
- public void register(Session session, List<String> nodeTypeResources) throws RepositoryException {
+ public void register(Session session, List<String> nodeTypeResources, NodeTypeMode nodeTypeMode) throws RepositoryException {
+ switch (nodeTypeMode) {
+ case NOT_SUPPORTED:
+ // do nothing
+ break;
+ case NAMESPACES_ONLY:
+ registerNamespaces(session, nodeTypeResources);
+ break;
+ case NODETYPES_REQUIRED:
+ registerNodeTypes(session, nodeTypeResources);
+ break;
+ default:
+ throw new IllegalArgumentException("Node type mode not supported: " + nodeTypeMode);
+ }
+ }
+
+ /**
+ * Registers only the namespaces found in node type definitions in classpath in JCR repository.
+ * @param session Session
+ * @param nodeTypeResources List of classpath resource URLs pointing to node type definitions
+ */
+ private void registerNamespaces(Session session, List<String> nodeTypeResources) throws RepositoryException {
+ ClassLoader classLoader = getClass().getClassLoader();
+ Workspace workspace = session.getWorkspace();
+ NamespaceRegistry namespaceRegistry = workspace.getNamespaceRegistry();
+ ValueFactory valueFactory = session.getValueFactory();
+
+ DefinitionBuilderFactory<NodeTypeTemplate, NamespaceRegistry> factory =
+ new TemplateBuilderFactory(new DummyNodeTypeManager(), valueFactory, namespaceRegistry);
+
+ for (String nodeTypeResource : nodeTypeResources) {
+ InputStream is = classLoader.getResourceAsStream(nodeTypeResource);
+ if (is == null) {
+ continue;
+ }
+ try {
+ Reader reader = new InputStreamReader(is);
+ CompactNodeTypeDefReader<NodeTypeTemplate, NamespaceRegistry> cndReader
+ = new CompactNodeTypeDefReader<NodeTypeTemplate, NamespaceRegistry>(reader, nodeTypeResource, factory);
+ NamespaceRegistry mapping = cndReader.getNamespaceMapping();
+ for (int i=0; i<mapping.getURIs().length; i++) {
+ String uri = mapping.getURIs()[i];
+ String prefix = mapping.getPrefix(uri);
+ try {
+ namespaceRegistry.registerNamespace(prefix, uri);
+ }
+ catch (RepositoryException ex) {
+ // ignore
+ }
+ }
+ }
+ catch (Throwable ex) {
+ log.warn("Unable to parse node type definition: " + nodeTypeResource, ex);
+ }
+ finally {
+ IOUtils.closeQuietly(is);
+ }
+ }
+
+ }
+
+ /**
+ * Registers node types found in classpath in JCR repository.
+ * @param session Session
+ * @param nodeTypeResources List of classpath resource URLs pointing to node type definitions
+ */
+ private void registerNodeTypes(Session session, List<String> nodeTypeResources) throws RepositoryException {
ClassLoader classLoader = getClass().getClassLoader();
Workspace workspace = session.getWorkspace();
NodeTypeManager nodeTypeManager = workspace.getNodeTypeManager();
NamespaceRegistry namespaceRegistry = workspace.getNamespaceRegistry();
ValueFactory valueFactory = session.getValueFactory();
- // try registering node types multiple times because the eyact order is not known
+ // try registering node types multiple times because the exact order is not known
int iteration = 0;
List<String> remainingNodeTypeResources = new ArrayList<String>(nodeTypeResources);
while (!remainingNodeTypeResources.isEmpty()) {
- registerAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, false);
+ registerNodeTypesAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, false);
iteration++;
if (iteration >= MAX_ITERATIONS) {
break;
}
}
if (!remainingNodeTypeResources.isEmpty()) {
- registerAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, true);
+ registerNodeTypesAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, true);
}
}
@@ -115,7 +193,7 @@ public final class NodeTypeDefinitionSca
* @param valueFactory
* @param logError if true, and error is logged if node type registration failed. Otherwise it is ignored.
*/
- private void registerAndRemoveSucceeds(List<String> nodeTypeResources, ClassLoader classLoader,
+ private void registerNodeTypesAndRemoveSucceeds(List<String> nodeTypeResources, ClassLoader classLoader,
NodeTypeManager nodeTypeManager, NamespaceRegistry namespaceRegistry, ValueFactory valueFactory,
boolean logError) {
Iterator<String> nodeTypeResourcesIterator = nodeTypeResources.iterator();
@@ -190,4 +268,291 @@ public final class NodeTypeDefinitionSca
return SINGLETON;
}
+
+ /**
+ * Some dummy classes to allow usage of CompactNodeTypeDefReader with underlying JCR mock
+ */
+ private static class DummyNodeTypeManager implements NodeTypeManager {
+ @Override
+ public NodeType getNodeType(String nodeTypeName) {
+ return null;
+ }
+ @Override
+ public boolean hasNodeType(String name) {
+ return false;
+ }
+ @Override
+ public NodeTypeIterator getAllNodeTypes() {
+ return null;
+ }
+ @Override
+ public NodeTypeIterator getPrimaryNodeTypes() {
+ return null;
+ }
+ @Override
+ public NodeTypeIterator getMixinNodeTypes() {
+ return null;
+ }
+ @Override
+ public NodeTypeTemplate createNodeTypeTemplate() {
+ return new DummyNodeTypeTemplate();
+ }
+ @Override
+ public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) {
+ return new DummyNodeTypeTemplate();
+ }
+ @Override
+ public NodeDefinitionTemplate createNodeDefinitionTemplate() {
+ return new DummyNodeDefinitionTemplate();
+ }
+ @Override
+ public PropertyDefinitionTemplate createPropertyDefinitionTemplate() {
+ return new DummyPropertyDefinitionTemplate();
+ }
+ @Override
+ public NodeType registerNodeType(NodeTypeDefinition ntd, boolean allowUpdate) {
+ return null;
+ }
+ @Override
+ public NodeTypeIterator registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate) {
+ return null;
+ }
+ @Override
+ public void unregisterNodeType(String name) {
+ }
+ @Override
+ public void unregisterNodeTypes(String[] names) {
+ }
+ }
+
+ private static class DummyNodeTypeTemplate implements NodeTypeTemplate {
+ @Override
+ public String getName() {
+ return null;
+ }
+ @Override
+ public String[] getDeclaredSupertypeNames() {
+ return null;
+ }
+ @Override
+ public boolean isAbstract() {
+ return false;
+ }
+ @Override
+ public boolean isMixin() {
+ return false;
+ }
+ @Override
+ public boolean hasOrderableChildNodes() {
+ return false;
+ }
+ @Override
+ public boolean isQueryable() {
+ return false;
+ }
+ @Override
+ public String getPrimaryItemName() {
+ return null;
+ }
+ @Override
+ public PropertyDefinition[] getDeclaredPropertyDefinitions() {
+ return null;
+ }
+ @Override
+ public NodeDefinition[] getDeclaredChildNodeDefinitions() {
+ return null;
+ }
+ @Override
+ public void setName(String name) {
+ }
+ @Override
+ public void setDeclaredSuperTypeNames(String[] names) {
+ }
+ @Override
+ public void setAbstract(boolean abstractStatus) {
+ }
+ @Override
+ public void setMixin(boolean mixin) {
+ }
+ @Override
+ public void setOrderableChildNodes(boolean orderable) {
+ }
+ @Override
+ public void setPrimaryItemName(String name) {
+ }
+ @Override
+ public void setQueryable(boolean queryable) {
+ }
+ @Override
+ public List getPropertyDefinitionTemplates() {
+ return new ArrayList();
+ }
+ @Override
+ public List getNodeDefinitionTemplates() {
+ return new ArrayList();
+ }
+ }
+
+ private static class DummyNodeDefinitionTemplate implements NodeDefinitionTemplate {
+ @Override
+ public NodeType[] getRequiredPrimaryTypes() {
+ return null;
+ }
+ @Override
+ public String[] getRequiredPrimaryTypeNames() {
+ return null;
+ }
+ @Override
+ public NodeType getDefaultPrimaryType() {
+ return null;
+ }
+ @Override
+ public String getDefaultPrimaryTypeName() {
+ return null;
+ }
+ @Override
+ public boolean allowsSameNameSiblings() {
+ return false;
+ }
+ @Override
+ public NodeType getDeclaringNodeType() {
+ return null;
+ }
+ @Override
+ public String getName() {
+ return null;
+ }
+ @Override
+ public boolean isAutoCreated() {
+ return false;
+ }
+ @Override
+ public boolean isMandatory() {
+ return false;
+ }
+ @Override
+ public int getOnParentVersion() {
+ return 0;
+ }
+ @Override
+ public boolean isProtected() {
+ return false;
+ }
+ @Override
+ public void setName(String name) {
+ }
+ @Override
+ public void setAutoCreated(boolean autoCreated) {
+ }
+ @Override
+ public void setMandatory(boolean mandatory) {
+ }
+ @Override
+ public void setOnParentVersion(int opv) {
+ }
+ @Override
+ public void setProtected(boolean protectedStatus) {
+ }
+ @Override
+ public void setRequiredPrimaryTypeNames(String[] names) {
+ }
+ @Override
+ public void setDefaultPrimaryTypeName(String name) {
+ }
+ @Override
+ public void setSameNameSiblings(boolean allowSameNameSiblings) {
+ }
+ }
+
+ private static class DummyPropertyDefinitionTemplate implements PropertyDefinitionTemplate {
+ @Override
+ public int getRequiredType() {
+ return 0;
+ }
+ @Override
+ public String[] getValueConstraints() {
+ return null;
+ }
+ @Override
+ public Value[] getDefaultValues() {
+ return null;
+ }
+ @Override
+ public boolean isMultiple() {
+ return false;
+ }
+ @Override
+ public String[] getAvailableQueryOperators() {
+ return null;
+ }
+ @Override
+ public boolean isFullTextSearchable() {
+ return false;
+ }
+ @Override
+ public boolean isQueryOrderable() {
+ return false;
+ }
+ @Override
+ public NodeType getDeclaringNodeType() {
+ return null;
+ }
+ @Override
+ public String getName() {
+ return null;
+ }
+ @Override
+ public boolean isAutoCreated() {
+ return false;
+ }
+ @Override
+ public boolean isMandatory() {
+ return false;
+ }
+ @Override
+ public int getOnParentVersion() {
+ return 0;
+ }
+ @Override
+ public boolean isProtected() {
+ return false;
+ }
+ @Override
+ public void setName(String name) {
+ }
+ @Override
+ public void setAutoCreated(boolean autoCreated) {
+ }
+ @Override
+ public void setMandatory(boolean mandatory) {
+ }
+ @Override
+ public void setOnParentVersion(int opv) {
+ }
+ @Override
+ public void setProtected(boolean protectedStatus) {
+ }
+ @Override
+ public void setRequiredType(int type) {
+ }
+ @Override
+ public void setValueConstraints(String[] constraints) {
+ }
+ @Override
+ public void setDefaultValues(Value[] defaultValues) {
+ }
+ @Override
+ public void setMultiple(boolean multiple) {
+ }
+ @Override
+ public void setAvailableQueryOperators(String[] operators) {
+ }
+ @Override
+ public void setFullTextSearchable(boolean fullTextSearchable) {
+ }
+ @Override
+ public void setQueryOrderable(boolean queryOrderable) {
+ }
+ }
+
}
Added: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java?rev=1705787&view=auto
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java (added)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java Mon Sep 28 22:16:38 2015
@@ -0,0 +1,41 @@
+/*
+ * 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;
+
+/**
+ * How to handle node types for different {@link ResourceResolverType} types.
+ */
+public enum NodeTypeMode {
+
+ /**
+ * Neither registration of namespaces or node types required (no underlying JCR).
+ */
+ NOT_SUPPORTED,
+
+ /**
+ * Namespaces have to be registered, but nodetypes are not supported.
+ */
+ NAMESPACES_ONLY,
+
+ /**
+ * Nodetypes including namespaces have to be registered.
+ */
+ NODETYPES_REQUIRED
+
+}
Propchange: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Sep 28 22:16:38 2015
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeMode.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java Mon Sep 28 22:16:38 2015
@@ -37,7 +37,7 @@ public enum ResourceResolverType {
* <li>This resource resolver type is very fast.</li>
* </ul>
*/
- RESOURCERESOLVER_MOCK(RRMockMockResourceResolverAdapter.class.getName(), null),
+ RESOURCERESOLVER_MOCK(RRMockMockResourceResolverAdapter.class.getName(), null, NodeTypeMode.NOT_SUPPORTED),
/**
* Uses a simple JCR "in-memory" mock as underlying repository.
@@ -51,7 +51,7 @@ public enum ResourceResolverType {
* <li>This resource resolver type is quite fast.</li>
* </ul>
*/
- JCR_MOCK(MockJcrResourceResolverAdapter.class.getName(), null),
+ JCR_MOCK(MockJcrResourceResolverAdapter.class.getName(), null, NodeTypeMode.NAMESPACES_ONLY),
/**
* Uses a real JCR Jackrabbit repository.
@@ -65,7 +65,7 @@ public enum ResourceResolverType {
* </ul>
*/
JCR_JACKRABBIT("org.apache.sling.testing.mock.sling.jackrabbit.JackrabbitMockResourceResolverAdapter",
- "org.apache.sling:org.apache.sling.testing.sling-mock-jackrabbit"),
+ "org.apache.sling:org.apache.sling.testing.sling-mock-jackrabbit", NodeTypeMode.NODETYPES_REQUIRED),
/**
* Uses a real JCR Jackrabbit Oak repository.
@@ -79,7 +79,7 @@ public enum ResourceResolverType {
* </ul>
*/
JCR_OAK("org.apache.sling.testing.mock.sling.oak.OakMockResourceResolverAdapter",
- "org.apache.sling:org.apache.sling.testing.sling-mock-jackrabbit-oak"),
+ "org.apache.sling:org.apache.sling.testing.sling-mock-jackrabbit-oak", NodeTypeMode.NODETYPES_REQUIRED),
/**
* Provides resource resolver environment without any ResourceProvider.
@@ -89,16 +89,20 @@ public enum ResourceResolverType {
* <li>The performance of this resource resolver type depends on the resource provider registered.</li>
* </ul>
*/
- NONE(MockNoneResourceResolverAdapter.class.getName(), null);
+ NONE(MockNoneResourceResolverAdapter.class.getName(), null, NodeTypeMode.NOT_SUPPORTED);
private final String resourceResolverTypeAdapterClass;
private final String artifactCoordinates;
+ private final NodeTypeMode nodeTypeMode;
+
- private ResourceResolverType(final String resourceResolverTypeAdapterClass, final String artifactCoordinates) {
+ private ResourceResolverType(final String resourceResolverTypeAdapterClass, final String artifactCoordinates,
+ final NodeTypeMode nodeTypeMode) {
this.resourceResolverTypeAdapterClass = resourceResolverTypeAdapterClass;
this.artifactCoordinates = artifactCoordinates;
+ this.nodeTypeMode = nodeTypeMode;
}
String getResourceResolverTypeAdapterClass() {
@@ -109,4 +113,11 @@ public enum ResourceResolverType {
return this.artifactCoordinates;
}
+ /**
+ * @return How JCR namespaces and node types have to be handled.
+ */
+ public NodeTypeMode getNodeTypeMode() {
+ return nodeTypeMode;
+ }
+
}
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java Mon Sep 28 22:16:38 2015
@@ -19,5 +19,5 @@
/**
* Mock implementation of selected Sling APIs.
*/
-@aQute.bnd.annotation.Version("1.4")
+@aQute.bnd.annotation.Version("1.5")
package org.apache.sling.testing.mock.sling;
Copied: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScannerTest.java (from r1705759, sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScannerTest.java)
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScannerTest.java?p2=sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScannerTest.java&p1=sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScannerTest.java&r1=1705759&r2=1705787&rev=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScannerTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScannerTest.java Mon Sep 28 22:16:38 2015
@@ -16,12 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.sling.testing.mock.sling.context;
+package org.apache.sling.testing.mock.sling;
import static org.junit.Assert.assertTrue;
import java.util.List;
+import org.apache.sling.testing.mock.sling.NodeTypeDefinitionScanner;
import org.junit.Test;
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/MultipleResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/MultipleResourceResolverTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/MultipleResourceResolverTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/MultipleResourceResolverTest.java Mon Sep 28 22:16:38 2015
@@ -27,5 +27,5 @@ public class MultipleResourceResolverTes
protected ResourceResolverType getResourceResolverType() {
return ResourceResolverType.JCR_MOCK;
}
-
+
}
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java Mon Sep 28 22:16:38 2015
@@ -26,7 +26,6 @@ import static org.junit.Assert.assertNot
import java.io.IOException;
import java.io.InputStream;
-import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
@@ -37,11 +36,14 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.testing.mock.sling.MockSling;
+import org.apache.sling.testing.mock.sling.NodeTypeDefinitionScanner;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import com.google.common.collect.ImmutableList;
+
public abstract class AbstractContentLoaderJsonDamTest {
private ResourceResolver resourceResolver;
@@ -51,18 +53,13 @@ public abstract class AbstractContentLoa
protected ResourceResolver newResourceResolver() {
ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
- if (getResourceResolverType() == ResourceResolverType.JCR_MOCK) {
- try {
- // dummy namespace registrations to make sure sling JCR resolver
- // does not get mixed up with the prefixes
- NamespaceRegistry namespaceRegistry = resolver.adaptTo(Session.class).getWorkspace()
- .getNamespaceRegistry();
- namespaceRegistry.registerNamespace("sling", "http://mock/sling");
- namespaceRegistry.registerNamespace("app", "http://mock/app");
- namespaceRegistry.registerNamespace("dam", "http://mock/dam");
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register namespaces.", ex);
- }
+ try {
+ NodeTypeDefinitionScanner.get().register(resolver.adaptTo(Session.class),
+ ImmutableList.of("SLING-INF/nodetypes/app.cnd"),
+ getResourceResolverType().getNodeTypeMode());
+ }
+ catch (RepositoryException ex) {
+ throw new RuntimeException("Unable to register namespaces.", ex);
}
return resolver;
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java Mon Sep 28 22:16:38 2015
@@ -26,7 +26,6 @@ import static org.junit.Assert.assertNot
import java.util.Calendar;
import java.util.TimeZone;
-import javax.jcr.NamespaceRegistry;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
@@ -37,11 +36,14 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.testing.mock.sling.MockSling;
+import org.apache.sling.testing.mock.sling.NodeTypeDefinitionScanner;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import com.google.common.collect.ImmutableList;
+
public abstract class AbstractContentLoaderJsonTest {
private ResourceResolver resourceResolver;
@@ -51,18 +53,13 @@ public abstract class AbstractContentLoa
protected ResourceResolver newResourceResolver() {
ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
- if (getResourceResolverType() == ResourceResolverType.JCR_MOCK) {
- try {
- // dummy namespace registrations to make sure sling JCR resolver
- // does not get mixed up with the prefixes
- NamespaceRegistry namespaceRegistry = resolver.adaptTo(Session.class).getWorkspace()
- .getNamespaceRegistry();
- namespaceRegistry.registerNamespace("sling", "http://mock/sling");
- namespaceRegistry.registerNamespace("app", "http://mock/app");
- namespaceRegistry.registerNamespace("dam", "http://mock/dam");
- } catch (RepositoryException ex) {
- throw new RuntimeException("Unable to register namespaces.", ex);
- }
+ try {
+ NodeTypeDefinitionScanner.get().register(resolver.adaptTo(Session.class),
+ ImmutableList.of("SLING-INF/nodetypes/app.cnd"),
+ getResourceResolverType().getNodeTypeMode());
+ }
+ catch (RepositoryException ex) {
+ throw new RuntimeException("Unable to register namespaces.", ex);
}
return resolver;
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrNamespaceTest.java Mon Sep 28 22:16:38 2015
@@ -21,9 +21,7 @@ package org.apache.sling.testing.mock.sl
import static org.apache.sling.jcr.resource.JcrResourceConstants.SLING_RESOURCE_TYPE_PROPERTY;
import static org.junit.Assert.assertEquals;
-import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
@@ -47,16 +45,13 @@ public abstract class AbstractJcrNamespa
protected abstract ResourceResolverType getResourceResolverType();
@Test
- public void testSling4362_WithSlingNamespace() throws RepositoryException {
+ public void testSling4362() throws RepositoryException {
ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
- NamespaceRegistry namespaceRegistry = resolver.adaptTo(Session.class).getWorkspace().getNamespaceRegistry();
- namespaceRegistry.registerNamespace("sling", "http://mock/sling");
-
ContentLoader contentLoader = new ContentLoader(resolver);
- contentLoader.json("/json-import-samples/SLING-4362.json", "/content/foo");
+ contentLoader.json("/json-import-samples/SLING-4362.json", context.uniqueRoot().content() + "/foo");
- Resource resource = resolver.getResource("/content/foo");
+ Resource resource = resolver.getResource(context.uniqueRoot().content() + "/foo");
ValueMap props = ResourceUtil.getValueMap(resource);
assertEquals("fooType", props.get(SLING_RESOURCE_TYPE_PROPERTY));
@@ -64,29 +59,13 @@ public abstract class AbstractJcrNamespa
}
@Test
- public void testSling4362_WithoutSlingNamespace() throws RepositoryException {
- ResourceResolver resolver = MockSling.newResourceResolver(getResourceResolverType());
-
- ContentLoader contentLoader = new ContentLoader(resolver);
- contentLoader.json("/json-import-samples/SLING-4362.json", "/content/foo");
-
- Resource resource = resolver.getResource("/content/foo");
-
- ValueMap props = ResourceUtil.getValueMap(resource);
- assertEquals("fooType", props.get(SLING_RESOURCE_TYPE_PROPERTY));
-
- // since SLING-4773 sling namespace is readly registered in the MockJcrResourceResolverAdapter, so this will still work here
- assertEquals("fooType", resource.getResourceType());
- }
-
- @Test
- public void testSling4362_WithoutSlingNamespace_ViaContextRule() throws RepositoryException {
+ public void testSling4362_ViaContextRule() throws RepositoryException {
ResourceResolver resolver = context.resourceResolver();
ContentLoader contentLoader = new ContentLoader(resolver);
- contentLoader.json("/json-import-samples/SLING-4362.json", "/content/foo");
+ contentLoader.json("/json-import-samples/SLING-4362.json", context.uniqueRoot().content() + "/foo");
- Resource resource = resolver.getResource("/content/foo");
+ Resource resource = resolver.getResource(context.uniqueRoot().content() + "/foo");
ValueMap props = ResourceUtil.getValueMap(resource);
assertEquals("fooType", props.get(SLING_RESOURCE_TYPE_PROPERTY));
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java?rev=1705787&r1=1705786&r2=1705787&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java Mon Sep 28 22:16:38 2015
@@ -18,7 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.resource;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@@ -39,8 +38,9 @@ import com.google.common.collect.Immutab
public abstract class AbstractMultipleResourceResolverTest {
private final BundleContext bundleContext = MockOsgi.newBundleContext();
+
protected abstract ResourceResolverType getResourceResolverType();
-
+
protected ResourceResolverFactory newResourceResolerFactory() {
return MockSling.newResourceResolverFactory(getResourceResolverType(), bundleContext);
}
@@ -48,14 +48,8 @@ public abstract class AbstractMultipleRe
@Test
public void testMultipleResourceResolver() throws Exception {
ResourceResolverFactory factory = newResourceResolerFactory();
- ResourceResolver resolver1 = factory.getResourceResolver(ImmutableMap.<String, Object>of(
- ResourceResolverFactory.USER, "user1"));
- ResourceResolver resolver2 = factory.getResourceResolver(ImmutableMap.<String, Object>of(
- ResourceResolverFactory.USER, "user2"));
-
- // validate user names
- assertEquals("user1", resolver1.getAttribute(ResourceResolverFactory.USER));
- assertEquals("user2", resolver2.getAttribute(ResourceResolverFactory.USER));
+ ResourceResolver resolver1 = factory.getAdministrativeResourceResolver(null);
+ ResourceResolver resolver2 = factory.getAdministrativeResourceResolver(null);
// add a resource in resolver 1
Resource root = resolver1.getResource("/");
Added: sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd?rev=1705787&view=auto
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd (added)
+++ sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd Mon Sep 28 22:16:38 2015
@@ -0,0 +1,26 @@
+//
+// 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.
+//
+<app='http://example.com/jcr/app/1.0'>
+<dam='http://example.com/jcr/dam/1.0'>
+
+[app:Page] > nt:unstructured
+[app:PageContent] > nt:unstructured
+
+[dam:Asset] > nt:unstructured
+[dam:AssetContent] > nt:unstructured
Propchange: sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Sep 28 22:16:38 2015
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/mocks/sling-mock/src/test/resources/SLING-INF/nodetypes/app.cnd
------------------------------------------------------------------------------
svn:mime-type = text/plain