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]>.

Reply via email to