JcrNamespaceRegistry provideRegistryFromBundle()

in src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/JcrNamespaceRegistryProvider.java [64:86]


    JcrNamespaceRegistry provideRegistryFromBundle() throws IOException {
        try {
            JcrNamespaceRegistry registry = new JcrNamespaceRegistry();
            for (Map.Entry<String, String> entry : predefinedNamespaceUriByPrefix.entrySet()) {
                registry.registerNamespace(entry.getKey(), entry.getValue());
            }

            // parse Sling-Namespaces header (https://github.com/apache/sling-org-apache-sling-jcr-base/blob/66be360910c265473799635fcac0e23895898913/src/main/java/org/apache/sling/jcr/base/internal/loader/Loader.java#L192)
            String namespacesDefinitionHeader = manifest.getMainAttributes().getValue(NAMESPACES_BUNDLE_HEADER);
            if (namespacesDefinitionHeader != null) {
                registerNamespacesIntoRegistry(registry, namespacesDefinitionHeader);
            }

            // parse Sling-Nodetypes header
            String typesHeader = manifest.getMainAttributes().getValue(NODETYPES_BUNDLE_HEADER);
            if (typesHeader != null) {
                registerCndIntoRegistry(registry, typesHeader);
            }
            return registry;
        } catch (final RepositoryException | ParseException e) {
            throw new IOException(e.getMessage(), e);
        }
    }