Package javax.jcr

Examples of javax.jcr.NamespaceRegistry


     */
    public static boolean checkNameFormat(String name, Session session) throws RepositoryException {
        if (name == null || name.length() == 0) {
            return false;
        } else {
            NamespaceRegistry nsr = session.getWorkspace().getNamespaceRegistry();
            boolean prefixOk = true;
            // validate name element
            Matcher matcher = PATTERN_NAME.matcher(name);
            // validate namespace prefixes if present
            String[] split = name.split(":");
            if (split.length > 1) {
                String prefix = split[0];
                try {
                    nsr.getURI(prefix);
                } catch (NamespaceException nse) {
                    prefixOk = false;
                }
            }
            return matcher.matches() && prefixOk;
View Full Code Here


        if (jcrPath == null || jcrPath.length() == 0) {
            return false;
        } else if (jcrPath.equals("/")) {
            return true;
        } else {
            NamespaceRegistry nsr = session.getWorkspace().getNamespaceRegistry();
            boolean match = false;
            boolean prefixOk = true;
            // split path into path elements and validate each of them
            String[] elems = jcrPath.split("/", -1);
            for (int i = jcrPath.startsWith("/") ? 1 : 0; i < elems.length; i++) {
                // validate path element
                String elem = elems[i];
                Matcher matcher = PATTERN_PATH.matcher(elem);
                match = matcher.matches();
                if (!match) {
                    break;
                }
                // validate namespace prefixes if present
                String[] split = elem.split(":");
                if (split.length > 1) {
                    String prefix = split[0];
                    try {
                        nsr.getURI(prefix);
                    } catch (NamespaceException nse) {
                        prefixOk = false;
                        break;
                    }
                }
View Full Code Here

        mixShareable = superuser.getNamespacePrefix(NS_MIX_URI) + ":shareable";
        ntQuery = superuser.getNamespacePrefix(NS_NT_URI) + ":query";

        // setup custom namespaces
        if (isSupported(Repository.LEVEL_2_SUPPORTED)) {
            NamespaceRegistry nsReg = superuser.getWorkspace().getNamespaceRegistry();
            String namespaces = getProperty(RepositoryStub.PROP_NAMESPACES);
            if (namespaces != null) {
                String[] prefixes = namespaces.split(" ");
                for (int i = 0; i < prefixes.length; i++) {
                    String uri = getProperty(RepositoryStub.PROP_NAMESPACES + "." + prefixes[i]);
                    if (uri != null) {
                        try {
                            nsReg.getPrefix(uri);
                        } catch (NamespaceException e) {
                            // not yet registered
                            nsReg.registerNamespace(prefixes[i], uri);
                        }
                    }
                }
            }
            vf = superuser.getValueFactory();
View Full Code Here

     * {@inheritDoc}
     */
    public Map getRegisteredNamespaces(SessionInfo sessionInfo)
            throws RepositoryException {
        SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
        NamespaceRegistry nsReg = sInfo.getSession().getWorkspace().getNamespaceRegistry();
        Map namespaces = new HashMap();
        String[] prefixes = nsReg.getPrefixes();
        for (int i = 0; i < prefixes.length; i++) {
            namespaces.put(prefixes[i], nsReg.getURI(prefixes[i]));
        }
        return namespaces;
    }
View Full Code Here

     */
    public void registerNamespace(SessionInfo sessionInfo,
                                  String prefix,
                                  String uri) throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException {
        Session session = getSessionInfoImpl(sessionInfo).getSession();
        NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry();
        nsReg.registerNamespace(prefix, uri);
    }
View Full Code Here

     * {@inheritDoc}
     */
    public void unregisterNamespace(SessionInfo sessionInfo, String uri)
            throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException {
        Session session = getSessionInfoImpl(sessionInfo).getSession();
        NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry();
        nsReg.unregisterNamespace(nsReg.getPrefix(uri));
    }
View Full Code Here

     */
    private Query getQuery(SearchInfo sInfo)
            throws InvalidQueryException, RepositoryException, DavException {

        Session session = getRepositorySession();
        NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry();
        Node rootNode = session.getRootNode();
        QueryManager qMgr = getRepositorySession().getWorkspace().getQueryManager();

        // test if query is defined by requested repository node
        String itemPath = locator.getRepositoryPath();
        if (itemPath != null && !rootNode.getPath().equals(itemPath)) {
            String qNodeRelPath = itemPath.substring(1);
            if (rootNode.hasNode(qNodeRelPath)) {
                Node qNode = rootNode.getNode(qNodeRelPath);
                if (qNode.isNodeType(JcrConstants.NT_QUERY)) {
                    return qMgr.getQuery(qNode);
                }
            }
        }

        Query q;
        if (sInfo != null) {
            // apply namespace mappings to session
            Map<String, String> namespaces = sInfo.getNamespaces();
            try {
                for (Map.Entry<String, String> entry : namespaces.entrySet()) {
                    String prefix = entry.getKey();
                    String uri = entry.getValue();
                    session.setNamespacePrefix(prefix, uri);
                }
                q = qMgr.createQuery(sInfo.getQuery(), sInfo.getLanguageName());

                if (SearchInfo.NRESULTS_UNDEFINED != sInfo.getNumberResults()) {
                    q.setLimit(sInfo.getNumberResults());
                }
                if (SearchInfo.OFFSET_UNDEFINED != sInfo.getOffset()) {
                    q.setOffset(sInfo.getOffset());
                }
            } finally {
                // reset namespace mappings
                for (String uri : namespaces.values()) {
                    try {
                        session.setNamespacePrefix(nsReg.getPrefix(uri), uri);
                    } catch (RepositoryException e) {
                        log.warn("Unable to reset mapping of namespace: " + uri);
                    }
                }
            }
View Full Code Here

    public void setProperty(DavProperty<?> property) throws DavException {
        if (ItemResourceConstants.JCR_NAMESPACES.equals(property.getName())) {
            NamespacesProperty nsp = new NamespacesProperty(property);
            try {
                Map<String, String> changes = new HashMap<String, String>(nsp.getNamespaces());
                NamespaceRegistry nsReg = getRepositorySession().getWorkspace().getNamespaceRegistry();
                for (String prefix : nsReg.getPrefixes()) {
                    if (!changes.containsKey(prefix)) {
                        // prefix not present amongst the new values any more > unregister
                        nsReg.unregisterNamespace(prefix);
                    } else if (changes.get(prefix).equals(nsReg.getURI(prefix))) {
                        // present with same uri-value >> no action required
                        changes.remove(prefix);
                    }
                }

                // try to register any prefix/uri pair that has a changed uri or
                // it has not been present before.
                for (String prefix : changes.keySet()) {
                    String uri = changes.get(prefix);
                    nsReg.registerNamespace(prefix, uri);
                }
            } catch (RepositoryException e) {
                throw new JcrDavException(e);
            }
        } else {
View Full Code Here

    @Override
    protected void initProperties() {
        super.initProperties();
        try {
            // init workspace specific properties
            NamespaceRegistry nsReg = getRepositorySession().getWorkspace().getNamespaceRegistry();
            DavProperty<?> namespacesProp = new NamespacesProperty(nsReg);
            properties.add(namespacesProp);
        } catch (RepositoryException e) {
            log.error("Failed to access NamespaceRegistry: " + e.getMessage());
        }
View Full Code Here

            return source.getNamespaceRegistry().getPrefix(uri) + ":" + local;
        }
    }

    private void copyNamespaces(NodeBuilder root) throws RepositoryException {
        NamespaceRegistry sourceRegistry = source.getNamespaceRegistry();
        NodeBuilder system = root.child(JCR_SYSTEM);
        NodeBuilder namespaces = system.child("rep:namespaces");

        Set<String> defaults = ImmutableSet.of(
                NamespaceRegistry.NAMESPACE_EMPTY,
                NamespaceRegistry.NAMESPACE_JCR,
                NamespaceRegistry.NAMESPACE_MIX,
                NamespaceRegistry.NAMESPACE_NT,
                NamespaceRegistry.NAMESPACE_XML,
                NamespaceConstants.NAMESPACE_SV,
                NamespaceConstants.NAMESPACE_REP);
        logger.info("Copying registered namespaces");
        for (String uri : sourceRegistry.getURIs()) {
            if (!defaults.contains(uri)) {
                namespaces.setProperty(sourceRegistry.getPrefix(uri), uri);
            }
        }
    }
View Full Code Here

TOP

Related Classes of javax.jcr.NamespaceRegistry

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.