This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-jackrabbit-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit e5e5ef2db24e77a14e333159dee2f3d20143b0dc Author: Stefan Seifert <[email protected]> AuthorDate: Sat Sep 26 15:30:02 2015 +0000 SLING-5064 sling-mock: Register JCR node types for OSGi bundles in class path git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock-jackrabbit@1705475 13f79535-47bb-0310-9956-ffa450edef68 --- .../JackrabbitMockResourceResolverAdapter.java | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java index 601a36c..90fa6ef 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java @@ -19,10 +19,12 @@ 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; /** @@ -38,10 +40,33 @@ public class JackrabbitMockResourceResolverAdapter implements ResourceResolverTy @Override public SlingRepository newSlingRepository() { try { - return RepositoryProvider.instance().getRepository(); + SlingRepository slingRepository = RepositoryProvider.instance().getRepository(); + registerJcrNodeTypes(slingRepository); + return slingRepository; } 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(); + } + } + } + } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
