private void registerNamespaces()

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


    private void registerNamespaces(final Bundle bundle) throws RepositoryException {
        final String definition = bundle.getHeaders().get(NAMESPACES_BUNDLE_HEADER);
        if ( definition != null ) {
            logger.debug("registerNamespaces: Bundle {} tries to register: {}",
                    getBundleIdentifier(bundle), definition);
            final StringTokenizer st = new StringTokenizer(definition, ",");
            final List<NamespaceEntry>entries = new ArrayList<NamespaceEntry>();

            while ( st.hasMoreTokens() ) {
                final String token = st.nextToken().trim();
                int pos = token.indexOf('=');
                if ( pos == -1 ) {
                    logger.warn("registerNamespaces: Bundle {} has an invalid namespace manifest header entry: {}",
                            getBundleIdentifier(bundle), token);
                } else {
                    final String prefix = token.substring(0, pos).trim();
                    final String namespace = token.substring(pos+1).trim();
                    entries.add(new NamespaceEntry(prefix, namespace));
                }
            }
            if ( entries.size() > 0 ) {
                final Session session = this.getSession();
                try {
                    this.defineNamespacePrefixes(bundle, session, entries);
                } finally {
                    this.ungetSession(session);
                }
            }
        }
    }