Package javax.jcr

Examples of javax.jcr.NamespaceRegistry


            throws RepositoryException, IOException {
        logger.info("Copying version histories");

        PersistenceManager pm =
                source.getInternalVersionManager().getPersistenceManager();
        NamespaceRegistry nr =source.getNamespaceRegistry();

        NodeBuilder system = root.child(JCR_SYSTEM);
        system.setChildNode(JCR_VERSIONSTORAGE, new JackrabbitNodeState(
                pm, nr, VERSION_STORAGE_NODE_ID));
        system.setChildNode("jcr:activities", new JackrabbitNodeState(
View Full Code Here


    private RestrictionProvider restrictionProvider;
    private PrivilegeBitsProvider bitsProvider;

    protected void registerNamespace(String prefix, String uri) throws Exception {
        NamespaceRegistry nsRegistry = new ReadWriteNamespaceRegistry() {
            @Override
            protected Root getWriteRoot() {
                return root;
            }

            @Override
            protected Tree getReadTree() {
                return root.getTree("/");
            }
        };
        nsRegistry.registerNamespace(prefix, 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 if (ItemResourceConstants.JCR_NODETYPES_CND.equals(property.getName())) {
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

     */
    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

   private void addNamespaces(String repositoryName) throws RepositoryException
   {

      ManageableRepository repository = getRepository(repositoryName);
      NamespaceRegistry nsRegistry = repository.getNamespaceRegistry();

      for (int j = 0; j < addNamespacesPlugins.size(); j++)
      {
         AddNamespacesPlugin plugin = (AddNamespacesPlugin)addNamespacesPlugins.get(j);
         Map<String, String> namespaces = plugin.getNamespaces();
         try
         {
            for (Map.Entry<String, String> namespace : namespaces.entrySet())
            {

               String prefix = namespace.getKey();
               String uri = namespace.getValue();

               // register namespace if not found
               try
               {
                  nsRegistry.getURI(prefix);
               }
               catch (NamespaceException e)
               {
                  nsRegistry.registerNamespace(prefix, uri);
               }
               if (log.isDebugEnabled())
                  log.debug("Namespace is registered " + prefix + " = " + uri);
            }
         }
View Full Code Here

     */
    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

            try {
                // lookup 'prefix' in the session-ns-mappings / namespace-registry
                prefix = s.getNamespacePrefix(uri);
            } catch (NamespaceException e) {
                // namespace uri has not been registered yet
                NamespaceRegistry nsReg = s.getWorkspace().getNamespaceRegistry();
                prefix = propName.getNamespace().getPrefix();
                // avoid trouble with default namespace
                if (prefix == null || "".equals(prefix)) {
                    prefix = "_pre" + nsReg.getPrefixes().length + 1;
                }
                // NOTE: will fail if prefix is already in use in the namespace registry
                nsReg.registerNamespace(prefix, uri);
            }
            if (prefix != null && !"".equals(prefix)) {
                pName = prefix + ":" + pName;
            }
        }
View Full Code Here

    public void setProperty(DavProperty property) throws DavException {
        if (JCR_NAMESPACES.equals(property.getName())) {
            NamespacesProperty nsp = new NamespacesProperty(property);
            try {
                Properties changes = nsp.getNamespaces();
                NamespaceRegistry nsReg = getRepositorySession().getWorkspace().getNamespaceRegistry();
                String[] registeredPrefixes = nsReg.getPrefixes();
                for (int i = 0; i < registeredPrefixes.length; i++) {
                    String prfx = registeredPrefixes[i];
                    if (!changes.containsKey(prfx)) {
                        // prefix not present amongst the new values any more > unregister
                        nsReg.unregisterNamespace(prfx);
                    } else if (changes.get(prfx).equals(nsReg.getURI(prfx))) {
                        // present with same uri-value >> no action required
                        changes.remove(prfx);
                    }
                }

                // try to register any prefix/uri pair that has a changed uri or
                // it has not been present before.
                Iterator prefixIt = changes.keySet().iterator();
                while (prefixIt.hasNext()) {
                    String prefix = (String)prefixIt.next();
                    String uri = (String)changes.get(prefix);
                    nsReg.registerNamespace(prefix, uri);
                }
            } catch (RepositoryException e) {
                throw new JcrDavException(e);
            }
        } else {
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.