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-1.6.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git

commit 853e02b00aaf0750d56a20ce5d91c644bf6fd3e8
Author: Stefan Seifert <[email protected]>
AuthorDate: Sat Sep 26 21:47:39 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@1705487 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/context/NodeTypeDefinitionScanner.java   | 27 ++++++++++++++++------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
index da5f33a..bec7900 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/context/NodeTypeDefinitionScanner.java
@@ -58,33 +58,46 @@ public final class NodeTypeDefinitionScanner {
         nodeTypeDefinitions = findeNodeTypeDefinitions();
     }
     
+    /**
+     * @return Node type definitions found in classpath as registered in OSGi 
bundle headers
+     */
     public List<String> getNodeTypeDefinitions() {
         return nodeTypeDefinitions;
     }
 
     /**
      * Registers node types found in classpath in JCR repository.
-     * @param Session session
+     * @param session Session
      */
     public void register(Session session) throws RepositoryException {
+      List<String> nodeTypeResources = getNodeTypeDefinitions();
+      register(session, nodeTypeResources);
+    }
+    
+    /**
+     * Registers node types found in classpath in JCR repository.
+     * @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 {
       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 ecact order is 
not known
-      List<String> nodeTypeResources = new 
ArrayList<String>(NodeTypeDefinitionScanner.get().getNodeTypeDefinitions());
+      // try registering node types multiple times because the eyact order is 
not known
       int iteration = 0;
-      while (!nodeTypeResources.isEmpty()) {
-          registerAndRemoveSucceeds(nodeTypeResources, classLoader, 
nodeTypeManager, namespaceRegistry, valueFactory, false);
+      List<String> remainingNodeTypeResources = new 
ArrayList<String>(nodeTypeResources);
+      while (!remainingNodeTypeResources.isEmpty()) {
+          registerAndRemoveSucceeds(remainingNodeTypeResources, classLoader, 
nodeTypeManager, namespaceRegistry, valueFactory, false);
           iteration++;
           if (iteration >= MAX_ITERATIONS) {
               break;
           }
       }
-      if (!nodeTypeResources.isEmpty()) {
-          registerAndRemoveSucceeds(nodeTypeResources, classLoader, 
nodeTypeManager, namespaceRegistry, valueFactory, true);
+      if (!remainingNodeTypeResources.isEmpty()) {
+          registerAndRemoveSucceeds(remainingNodeTypeResources, classLoader, 
nodeTypeManager, namespaceRegistry, valueFactory, true);
       }
     }
     

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to