Package org.apache.slide.content

Examples of org.apache.slide.content.NodeRevisionDescriptor


     * @throws     LabeledRevisionNotFoundException if no revision with the specified
     *                                              label was found.
     */
    public static NodeRevisionDescriptor retrieveLabeledRevision(NamespaceAccessToken nsaToken, SlideToken sToken, Content content, String historyUri, String label) throws SlideException, LabeledRevisionNotFoundException {
       
        NodeRevisionDescriptor labeledRevision = null;
       
        UriHandler historyUriHandler = UriHandler.getUriHandler(historyUri);
        if (historyUriHandler.isHistoryUri()) {
            NodeRevisionDescriptors historyNrds = content.retrieve(sToken, historyUri);
            NodeRevisionDescriptor historyNrd =
                content.retrieve(sToken, historyNrds, NodeRevisionNumber.HIDDEN_0_0);
            NodeProperty versionSet = historyNrd.getProperty(P_VERSION_SET);
            try {
                XMLValue versionSetValue = new XMLValue(versionSet.getValue().toString());
                NodeRevisionDescriptor vrNrd = null;
                NodeProperty labelNameSetProperty = null;
                String labelNameSetString = null;
                Iterator versionSetIterator = versionSetValue.iterator();
                String vrUri = null;
                UriHandler vrUriHandler = null;
                boolean found = false;
                while ( !found && versionSetIterator.hasNext() ) {
                    vrUri = ((Element)versionSetIterator.next()).getText();
                    vrUriHandler = UriHandler.getUriHandler(vrUri);
                    NodeRevisionNumber vrRevisionNumber = new NodeRevisionNumber(vrUriHandler.getVersionName());
                    vrNrd = content.retrieve(sToken, historyNrds, vrRevisionNumber);
                    labelNameSetProperty = vrNrd.getProperty(P_LABEL_NAME_SET);
                    if ( (labelNameSetProperty != null) && (labelNameSetProperty.getValue() != null) ) {
                        labelNameSetString = labelNameSetProperty.getValue().toString();
                        if (labelNameSetString != null) {
                            XMLValue labelNameSet = new XMLValue(labelNameSetString);
                            Iterator labelNameSetIterator = labelNameSet.iterator();
View Full Code Here


       
        String vrUri = null;
       
        NodeRevisionDescriptors revisionDescriptors = content.retrieve(sToken, resourceUri);
        if (!revisionDescriptors.isVersioned()) {
            NodeRevisionDescriptor revisionDescriptor =
                content.retrieve( sToken, revisionDescriptors);
            NodeProperty property = revisionDescriptor.getProperty(P_CHECKED_OUT);
            if ( (property == null) || (property.getValue() == null) ) {
                property = revisionDescriptor.getProperty(P_CHECKED_IN);
            }
            if ( (property != null) && (property.getValue() != null) ) {
               
                try {
                    XMLValue xmlValue = new XMLValue(property.getValue().toString());
View Full Code Here

            try {
                Object result = descriptorCache.get(uri + "-" + revisionNumber);
                if (result != null) {
                    return ((NodeRevisionDescriptor) result).cloneObject();
                } else {
                    NodeRevisionDescriptor revisionDescriptor =
                        revisionDescriptorStore.retrieveRevisionDescriptor(uri, revisionNumber);
                    revisionDescriptor.validate();
                    descriptorCache.put(uri + "-" + revisionNumber, revisionDescriptor);
                    return revisionDescriptor.cloneObject();
                }
            } finally {
                if (isForceStoreEnlistment(uri)) {
                    delist(this);
                }
View Full Code Here

    public void execute(String resourcePath, Element multistatusElm, int depth) throws SlideException, IOException {
        if (depth < 0) {
            return;
        }
       
        NodeRevisionDescriptor nrd = null;
        NodeRevisionDescriptors nrds = null;
        ResourceKind resourceKind = null;
        String versionHistoryUri = null;
        ObjectNode collectionNode = structure.retrieve(slideToken, resourcePath);
        Enumeration children = structure.getChildren(slideToken, collectionNode);
        while (children.hasMoreElements()) {
           
            ObjectNode child = (ObjectNode)children.nextElement();
            if (child.hasChildren()) {
                execute(child.getUri(), multistatusElm, depth-1);
            }
            else {
                nrds = content.retrieve(slideToken, child.getUri());
                nrd = content.retrieve(slideToken, nrds);
                resourceKind = AbstractResourceKind.determineResourceKind(token, child.getUri(), nrd);
                versionHistoryUri = null;
               
                if (resourceKind instanceof VersionControlled) {
                    versionHistoryUri = getHistoryUriOfVCR(nrd);
                }
               
                if (versionHistoryUri != null) {
                    boolean found = false;
                    Iterator iterator = versionHistorySet.iterator();
                    String currentHistoryUri = null;
                    while ( !found && iterator.hasNext() ) {
                        currentHistoryUri = ((Element)iterator.next()).getText();
                        if (currentHistoryUri != null) {
                            currentHistoryUri = WebdavUtils.getSlidePath(currentHistoryUri, contextPath);
                        }
                        found = versionHistoryUri.equals(currentHistoryUri);
                    }
                    if (found) {
                        multistatusElm.addContent(getResponseElement(slideToken, child.getUri(), nrd.getRevisionNumber(), requestedProperties));
                    }
                }
            }
        }
    }
View Full Code Here

        if (revisionDescriptorStore.cacheResults()) {
            Object result = descriptorCache.get(uri + "-" + revisionNumber);
            if (result != null) {
                return ((NodeRevisionDescriptor) result).cloneObject();
            } else {
                NodeRevisionDescriptor revisionDescriptor =
                    revisionDescriptorStore
                    .retrieveRevisionDescriptor(uri, revisionNumber)
                    .cloneObject();
                revisionDescriptor.validate();
                descriptorCache.put(uri + "-" + revisionNumber,
                                    revisionDescriptor);
                return revisionDescriptor;
            }
        } else {
View Full Code Here

        // Retrieving the list of properties
        Enumeration propertyDefinitions =
            revisionDefinition.getConfigurations("property");
       
        // Now creating the new revision descriptor object
        NodeRevisionDescriptor revisionDescriptor = null;
       
        NodeRevisionDescriptors revisionDescriptors = null;
        try {
            revisionDescriptors = accessToken.getContentHelper().retrieve
                (token, uri);
        } catch (ObjectLockedException e) {
            // Ignore
        }
        if ((revisionDescriptors != null)
            && (revisionDescriptors.hasRevisions())) {
            try {
                revisionDescriptor = accessToken.getContentHelper().retrieve
                    (token, revisionDescriptors);
            } catch (RevisionDescriptorNotFoundException e) {
                // Ignore
            } catch (ObjectLockedException e) {
                // Ignore
            }
        }
        if (revisionDescriptor == null) {
            revisionDescriptor = new NodeRevisionDescriptor(0);
        }
       
        while (propertyDefinitions.hasMoreElements()) {
            Configuration propertyDefinition =
                (Configuration) propertyDefinitions.nextElement();
            String propertyName = propertyDefinition.getAttribute("name");
            String propertyValue = propertyDefinition.getValue();
            String propertyNamespace = propertyDefinition.getAttribute
                ("namespace", NodeProperty.DEFAULT_NAMESPACE);
            NodeProperty property = revisionDescriptor.getProperty
                (propertyName, propertyNamespace);
            if (property == null)
                revisionDescriptor.setProperty(propertyName, propertyNamespace,
                                               propertyValue);
        }
       
        NodeRevisionContent revisionContent = null;
       
View Full Code Here

     * @throws   SlideException
     * @throws   IOException
     */
    public void execute(String resourcePath, Element multistatusElm, int depth) throws SlideException, IOException {
        NodeRevisionDescriptors nrds = content.retrieve(slideToken, resourcePath);
        NodeRevisionDescriptor nrd = content.retrieve(slideToken, nrds);
        Enumeration permissions = security.enumeratePermissions(slideToken, resourcePath, true);
        while (permissions != null && permissions.hasMoreElements()) {
            NodePermission p = (NodePermission)permissions.nextElement();
            SubjectNode principalNode = SubjectNode.getSubjectNode(p.getSubjectUri());
            String principalPath = getPrincipalPath(principalNode, nrd);
View Full Code Here

        ViolatedPrecondition violatedPrecondition = null;

        NodeRevisionDescriptors revisionDescriptors =
            content.retrieve(stoken, resourcePath);
        NodeRevisionDescriptor revisionDescriptor =
            content.retrieve(stoken, revisionDescriptors);
        ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(token,
                                                                               revisionDescriptors,
                                                                               revisionDescriptor);
        if ( ! (resourceKind instanceof CheckedInVersionControlled) ) {
            return new ViolatedPrecondition(DeltavConstants.C_MUST_BE_CHECKED_IN_VERSION_CONTROLLED_RESOURCE,
                                            WebdavStatus.SC_CONFLICT);
        }

        if (updateSourceLabel != null) {
            try {
                updateSourcePath = versioningHelper.getLabeledResourceUri(resourcePath, updateLabelName);
            }
            catch (LabeledRevisionNotFoundException e) {
                return new ViolatedPrecondition(DeltavConstants.C_MUST_SELECT_VERSION_IN_HISTORY,
                                                WebdavStatus.SC_CONFLICT);
            }
        }

        String associatedVrUri = versioningHelper.getUriOfAssociatedVR(resourcePath);
        String vcrHistoryUri = UriHandler.getUriHandler(associatedVrUri).getAssociatedHistoryUri();
        UriHandler vrUriHandler = UriHandler.getUriHandler(updateSourcePath);
        boolean isVersionOfVcrHistory = false;
        if (vrUriHandler.isVersionUri() &&
            vcrHistoryUri.equals(vrUriHandler.getAssociatedHistoryUri()) ) {

            NodeRevisionDescriptors vrDescriptors =
                content.retrieve(stoken, updateSourcePath);
            try {
                NodeRevisionDescriptor vrDescriptor =
                    content.retrieve(stoken, vrDescriptors);
                isVersionOfVcrHistory = true;
            }
            catch (RevisionDescriptorNotFoundException e) {
            }
View Full Code Here

     * @param revisionNumber Node revision number
     */
    public NodeRevisionDescriptor retrieveRevisionDescriptor
        (Uri uri, NodeRevisionNumber revisionNumber)
        throws ServiceAccessException, RevisionDescriptorNotFoundException {
        NodeRevisionDescriptor revisionDescriptor = null;
        if (isForceStoreEnlistment(uri)) {
            enlist(revisionDescriptorStore);
            try {
                revisionDescriptor =
                    revisionDescriptorStore.retrieveRevisionDescriptor
                    (uri, revisionNumber);
            } catch (ServiceAccessException e) {
                delist(revisionDescriptorStore, false);
                throw e;
            } catch (RevisionDescriptorNotFoundException e) {
                // Normal read failures aren't considered fatal
                delist(revisionDescriptorStore);
                throw e;
            } catch (Throwable t) {
                delist(revisionDescriptorStore, false);
                // Wrap everything else in a ServiceAccessException
                throw new ServiceAccessException
                    (revisionDescriptorStore, t);
            }
            delist(revisionDescriptorStore);
        } else {
            try {
                revisionDescriptor =
                    revisionDescriptorStore.retrieveRevisionDescriptor
                    (uri, revisionNumber);
            } catch (ServiceAccessException e) {
                throw e;
            } catch (RevisionDescriptorNotFoundException e) {
                throw e;
            } catch (Throwable t) {
                // Wrap everything else in a ServiceAccessException
                throw new ServiceAccessException
                    (revisionDescriptorStore, t);
            }
        }
        revisionDescriptor.validate();
        return revisionDescriptor;
    }
View Full Code Here

       
        String status = new String(HTTP_VERSION + WebdavStatus.SC_OK + " "
                                       + WebdavStatus.getStatusText
                                       (WebdavStatus.SC_OK));
        NodeRevisionDescriptors revisionDescriptors = null;
        NodeRevisionDescriptor revisionDescriptor = null;
       
        boolean isCollection = false;
       
        NodeLock objectLockToken = null;
       
        try {
            Element hrefElement = new Element(E_HREF, DNSP);
           
            VersioningHelper vHelp =  VersioningHelper.getVersioningHelper(
                lightSToken, token, req, resp, getConfig() );
            String resourcePath = object.getUri();
           
            revisionDescriptors =
                content.retrieve(lightSToken, resourcePath);
           
            try {
                revisionDescriptor = content.retrieve(lightSToken,
                                                      revisionDescriptors);
               
                isCollection = WebdavUtils.isCollection(revisionDescriptor);
               
                hrefElement.setText(
                    WebdavUtils.getAbsolutePath(object.getUri(), req,
                                                getConfig()));
               
            } catch (RevisionDescriptorNotFoundException e) {
               
                // The object doesn't have any revision, we create a dummy
                // NodeRevisionDescriptor object
                isCollection = true;
                revisionDescriptor = new NodeRevisionDescriptor(0);
               
                if (!Configuration.useBinding(token.getUri(lightSToken, object.getUri()).getStore())) {
                    revisionDescriptor.setName(new UriPath(object.getUri()).lastSegment());
                }
               
                hrefElement.setText(
                    WebdavUtils.getAbsolutePath(object.getUri(), req,
                                                getConfig()));
            }
           
            responseElement.addContent(hrefElement);
           
            Enumeration lockTokens = lock.enumerateLocks(lightSToken, object.getUri(), true);
           
            if (lockTokens.hasMoreElements()) {
                objectLockToken = (NodeLock) lockTokens.nextElement();
            }
           
        } catch (AccessDeniedException e) {
            if (revisionDescriptor == null) {
                revisionDescriptor = new NodeRevisionDescriptor(0);
            }
        } catch (Exception e) {
            int statusCode = getErrorCode( e );
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
View Full Code Here

TOP

Related Classes of org.apache.slide.content.NodeRevisionDescriptor

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.