private Map parseNodeTypesFromResource()

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


    private Map<String, NodeTypeTemplate> parseNodeTypesFromResource(
            String resource,
            ClassLoader classLoader,
            DefinitionBuilderFactory<NodeTypeTemplate, NamespaceRegistry> factory) {
        try (InputStream is = classLoader.getResourceAsStream(resource)) {
            if (is == null) {
                return Map.of();
            }
            CompactNodeTypeDefReader<NodeTypeTemplate, NamespaceRegistry> cndReader =
                    new CompactNodeTypeDefReader<>(new InputStreamReader(is), resource, factory);
            Map<String, NodeTypeTemplate> result = new HashMap<>();
            for (NodeTypeTemplate template : cndReader.getNodeTypeDefinitions()) {
                result.put(template.getName(), template);
            }
            return result;
        } catch (Throwable ex) {
            log.warn("Failed to parse CND resource: " + resource, ex);
            return Map.of();
        }
    }