private void registerNodeTypes()

in core/src/main/java/org/apache/sling/testing/mock/sling/NodeTypeDefinitionScanner.java [158:178]


    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 exact order is not known
      int iteration = 0;
      List<String> remainingNodeTypeResources = new ArrayList<String>(nodeTypeResources);
      while (!remainingNodeTypeResources.isEmpty()) {
          registerNodeTypesAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, false);
          iteration++;
          if (iteration >= MAX_ITERATIONS) {
              break;
          }
      }
      if (!remainingNodeTypeResources.isEmpty()) {
          registerNodeTypesAndRemoveSucceeds(remainingNodeTypeResources, classLoader, nodeTypeManager, namespaceRegistry, valueFactory, true);
      }
    }