private void defineNamespacePrefixes()

in src/main/java/org/apache/sling/jcr/base/internal/loader/Loader.java [103:125]


    private void defineNamespacePrefixes(final Bundle bundle, final Session session, final List<NamespaceEntry> entries)
    throws RepositoryException {
        for(final NamespaceEntry entry : entries) {

            // the namespace prefixing is a little bit tricky:
            String mappedPrefix = null;
            // first, we check if the namespace is registered with a prefix
            try {
                mappedPrefix = session.getNamespacePrefix(entry.namespace);
            } catch (final NamespaceException ne) {
                try {
                    session.getWorkspace().getNamespaceRegistry().registerNamespace(entry.prefix, entry.namespace);
                } catch (final NamespaceException ne2) {
                    logger.warn("Unable to register namespace {}:{} from bundle {} : {}",
                            new Object[] {entry.prefix, entry.namespace, entry.prefix, getBundleIdentifier(bundle), ne2.getMessage()});
                }
            }
            if ( mappedPrefix != null && !mappedPrefix.equals(entry.prefix ) ) {
                logger.warn("Namespace for {} is already registered with prefix {}. Ignoring prefix {} from bundle {}",
                        new Object[] {entry.namespace, mappedPrefix, entry.prefix, getBundleIdentifier(bundle)});
            }
        }
    }