Search in sources :

Example 16 with NodeId

use of org.apache.jackrabbit.spi.NodeId in project jackrabbit by apache.

the class BatchTest method testAddNode.

public void testAddNode() throws RepositoryException {
    NodeId nid = getNodeId(testPath);
    Batch b = rs.createBatch(si, nid);
    b.addNode(nid, resolver.getQName("aNode"), NameConstants.NT_UNSTRUCTURED, null);
    b.addProperty(nid, resolver.getQName("aString"), rs.getQValueFactory().create("ba", PropertyType.STRING));
    b.addProperty(nid, resolver.getQName("aName"), new QValue[] { rs.getQValueFactory().create(NameConstants.JCR_ENCODING), rs.getQValueFactory().create(NameConstants.JCR_DATA) });
    b.addProperty(nid, resolver.getQName("aBinary"), rs.getQValueFactory().create(new byte[] { 'a', 'b', 'c' }));
    rs.submit(b);
    NodeId id = rs.getIdFactory().createNodeId(nid, resolver.getQPath("aNode"));
    Iterator<? extends ItemInfo> it = rs.getItemInfos(si, id);
    while (it.hasNext()) {
        ItemInfo info = it.next();
        if (info.denotesNode()) {
            NodeInfo nInfo = (NodeInfo) info;
            assertEquals(NameConstants.NT_UNSTRUCTURED, nInfo.getNodetype());
            Iterator<ChildInfo> childIt = nInfo.getChildInfos();
            assertTrue(childIt == null || !childIt.hasNext());
            assertEquals(id, nInfo.getId());
        }
    }
    b = rs.createBatch(si, nid);
    b.remove(id);
    rs.submit(b);
}
Also used : Batch(org.apache.jackrabbit.spi.Batch) ItemInfo(org.apache.jackrabbit.spi.ItemInfo) NodeInfo(org.apache.jackrabbit.spi.NodeInfo) NodeId(org.apache.jackrabbit.spi.NodeId) ChildInfo(org.apache.jackrabbit.spi.ChildInfo)

Example 17 with NodeId

use of org.apache.jackrabbit.spi.NodeId in project jackrabbit by apache.

the class DavPropertyTest method testVersion.

public void testVersion() throws Exception {
    NodeId nid = getNodeId("/test");
    Batch b = rs.createBatch(si, nid);
    b.setMixins(nid, new Name[] { NameConstants.MIX_VERSIONABLE });
    rs.submit(b);
    NodeId vID = rs.checkin(si, nid);
    String uri = rs.getItemUri(vID, si);
    DavPropertyNameSet set = doPropFindNames(uri);
    DavPropertyNameSet expected = new DavPropertyNameSet(BASE_SET);
    expected.addAll(EXISTING_ITEM_BASE_SET);
    expected.addAll(NODE_SET);
    expected.addAll(VERSION_SET);
    expected.add(JCR_PARENT);
    expected.add(JCR_UUID);
    /*
         Expected property names

        {DAV:}getlastmodified
        {DAV:}version-name
        {http://www.day.com/jcr/webdav/1.0}definition
        {DAV:}comment
        {http://www.day.com/jcr/webdav/1.0}references
        {http://www.day.com/jcr/webdav/1.0}parent
        {DAV:}displayname
        {http://www.day.com/jcr/webdav/1.0}workspaceName
        {http://www.day.com/jcr/webdav/1.0}subscriptiondiscovery
        {http://www.day.com/jcr/webdav/1.0}uuid
        {DAV:}checkout-set
        {DAV:}predecessor-set
        {http://www.day.com/jcr/webdav/1.0}name
        {DAV:}current-user-privilege-set
        {http://www.day.com/jcr/webdav/1.0}primarynodetype
        {DAV:}version-history
        {DAV:}successor-set
        {DAV:}lockdiscovery
        {DAV:}resourcetype
        {DAV:}workspace
        {http://www.day.com/jcr/webdav/1.0}depth
        {http://www.day.com/jcr/webdav/1.0}index
        {DAV:}label-name-set
        {DAV:}supportedlock
        {DAV:}supported-method-set
        {DAV:}iscollection
        {http://www.day.com/jcr/webdav/1.0}weakreferences
        {DAV:}creator-displayname
        {DAV:}getcontenttype
        {DAV:}creationdate
        {DAV:}supported-report-set
        {http://www.day.com/jcr/webdav/1.0}mixinnodetypes
        {http://www.day.com/jcr/webdav/1.0}path
        */
    assertPropertyNames(expected, set);
    DavPropertyNameSet all = doPropFindAll(uri);
    expected.remove(DeltaVConstants.COMMENT);
    expected.remove(DeltaVConstants.CREATOR_DISPLAYNAME);
    expected.remove(DeltaVConstants.SUPPORTED_METHOD_SET);
    expected.remove(DeltaVConstants.SUPPORTED_REPORT_SET);
    expected.remove(DeltaVConstants.WORKSPACE);
    expected.remove(SecurityConstants.CURRENT_USER_PRIVILEGE_SET);
    expected.remove(ObservationConstants.SUBSCRIPTIONDISCOVERY);
    expected.remove(JCR_DEFINITION);
    expected.remove(JCR_INDEX);
    expected.remove(JCR_REFERENCES);
    expected.remove(JCR_WEAK_REFERENCES);
    expected.remove(JCR_UUID);
    expected.remove(VersionResource.VERSION_NAME);
    expected.remove(VersionResource.LABEL_NAME_SET);
    expected.remove(VersionResource.PREDECESSOR_SET);
    expected.remove(VersionResource.SUCCESSOR_SET);
    expected.remove(VersionResource.VERSION_HISTORY);
    expected.remove(VersionResource.CHECKOUT_SET);
    /*
        Expected all-props

        {DAV:}getlastmodified
        {http://www.day.com/jcr/webdav/1.0}depth
        {http://www.day.com/jcr/webdav/1.0}workspaceName
        {DAV:}displayname
        {http://www.day.com/jcr/webdav/1.0}parent
        {DAV:}supportedlock
        {DAV:}iscollection
        {DAV:}getcontenttype
        {http://www.day.com/jcr/webdav/1.0}name
        {DAV:}creationdate
        {http://www.day.com/jcr/webdav/1.0}mixinnodetypes
        {http://www.day.com/jcr/webdav/1.0}path
        {http://www.day.com/jcr/webdav/1.0}primarynodetype
        {DAV:}lockdiscovery
        {DAV:}resourcetype
         */
    assertPropertyNames(expected, all);
    DavPropertyNameSet props = new DavPropertyNameSet();
    props.add(DeltaVConstants.COMMENT);
    props.add(DeltaVConstants.CREATOR_DISPLAYNAME);
    props.add(DeltaVConstants.SUPPORTED_METHOD_SET);
    props.add(DeltaVConstants.SUPPORTED_REPORT_SET);
    props.add(DeltaVConstants.WORKSPACE);
    props.add(SecurityConstants.CURRENT_USER_PRIVILEGE_SET);
    props.add(ObservationConstants.SUBSCRIPTIONDISCOVERY);
    props.add(JCR_DEFINITION);
    props.add(JCR_INDEX);
    props.add(JCR_REFERENCES);
    props.add(JCR_WEAK_REFERENCES);
    props.add(JCR_UUID);
    props.add(VersionResource.VERSION_NAME);
    props.add(VersionResource.LABEL_NAME_SET);
    props.add(VersionResource.PREDECESSOR_SET);
    props.add(VersionResource.SUCCESSOR_SET);
    props.add(VersionResource.VERSION_HISTORY);
    props.add(VersionResource.CHECKOUT_SET);
    DavPropertyNameSet result = doPropFindByProp(uri, props);
    assertPropertyNames(props, result);
}
Also used : Batch(org.apache.jackrabbit.spi.Batch) NodeId(org.apache.jackrabbit.spi.NodeId) DavPropertyNameSet(org.apache.jackrabbit.webdav.property.DavPropertyNameSet)

Example 18 with NodeId

use of org.apache.jackrabbit.spi.NodeId in project jackrabbit by apache.

the class URIResolverImpl method buildNodeId.

protected NodeId buildNodeId(NodeId parentId, String baseUri, MultiStatusResponse response, String workspaceName, NamePathResolver resolver) throws RepositoryException {
    IdURICache cache = getCache(workspaceName);
    NodeId nodeId;
    DavPropertySet propSet = response.getProperties(DavServletResponse.SC_OK);
    String uniqueID = service.getUniqueID(propSet);
    if (uniqueID != null) {
        nodeId = service.getIdFactory().createNodeId(uniqueID);
    } else {
        Name qName = service.getQName(propSet, resolver);
        if (NameConstants.ROOT.equals(qName)) {
            nodeId = service.getIdFactory().createNodeId((String) null, service.getPathFactory().getRootPath());
        } else {
            int index = service.getIndex(propSet);
            nodeId = service.getIdFactory().createNodeId(parentId, service.getPathFactory().create(qName, index));
        }
    }
    // cache
    cache.add(resolve(baseUri, response.getHref()), nodeId);
    return nodeId;
}
Also used : DavPropertySet(org.apache.jackrabbit.webdav.property.DavPropertySet) NodeId(org.apache.jackrabbit.spi.NodeId) Name(org.apache.jackrabbit.spi.Name)

Example 19 with NodeId

use of org.apache.jackrabbit.spi.NodeId in project jackrabbit by apache.

the class NodeImpl method checkout.

/**
     * @see Node#checkout()
     */
public void checkout() throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
    checkIsVersionable();
    checkIsLocked();
    if (!isCheckedOut()) {
        if (session.isSupportedOption(Repository.OPTION_ACTIVITIES_SUPPORTED)) {
            NodeImpl activity = (NodeImpl) session.getWorkspace().getVersionManager().getActivity();
            NodeId activityId = (activity == null) ? null : activity.getNodeState().getNodeId();
            session.getVersionStateManager().checkout(getNodeState(), activityId);
        } else {
            session.getVersionStateManager().checkout(getNodeState());
        }
    } else {
        // nothing to do
        log.debug("Node " + safeGetJCRPath() + " is already checked out.");
    }
}
Also used : NodeId(org.apache.jackrabbit.spi.NodeId)

Example 20 with NodeId

use of org.apache.jackrabbit.spi.NodeId in project jackrabbit by apache.

the class NodeImpl method checkpoint.

Version checkpoint() throws RepositoryException {
    checkIsVersionable();
    checkHasPendingChanges();
    checkIsLocked();
    if (!isCheckedOut()) {
        checkout();
        return getBaseVersion();
    } else {
        NodeEntry newVersion;
        if (session.isSupportedOption(Repository.OPTION_ACTIVITIES_SUPPORTED)) {
            NodeImpl activity = (NodeImpl) session.getWorkspace().getVersionManager().getActivity();
            NodeId activityId = (activity == null) ? null : activity.getNodeState().getNodeId();
            newVersion = session.getVersionStateManager().checkpoint(getNodeState(), activityId);
        } else {
            newVersion = session.getVersionStateManager().checkpoint(getNodeState());
        }
        return (Version) getItemManager().getItem(newVersion);
    }
}
Also used : NodeEntry(org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry) Version(javax.jcr.version.Version) NodeId(org.apache.jackrabbit.spi.NodeId)

Aggregations

NodeId (org.apache.jackrabbit.spi.NodeId)80 Batch (org.apache.jackrabbit.spi.Batch)35 Name (org.apache.jackrabbit.spi.Name)32 PropertyInfo (org.apache.jackrabbit.spi.PropertyInfo)23 RepositoryException (javax.jcr.RepositoryException)21 QValue (org.apache.jackrabbit.spi.QValue)21 PropertyId (org.apache.jackrabbit.spi.PropertyId)13 Path (org.apache.jackrabbit.spi.Path)11 NodeInfo (org.apache.jackrabbit.spi.NodeInfo)10 ArrayList (java.util.ArrayList)9 ItemNotFoundException (javax.jcr.ItemNotFoundException)9 DavPropertyNameSet (org.apache.jackrabbit.webdav.property.DavPropertyNameSet)9 IOException (java.io.IOException)6 Node (javax.jcr.Node)5 HttpResponse (org.apache.http.HttpResponse)5 ItemId (org.apache.jackrabbit.spi.ItemId)5 DavException (org.apache.jackrabbit.webdav.DavException)5 InputStream (java.io.InputStream)4 ChildInfo (org.apache.jackrabbit.spi.ChildInfo)4 PathNotFoundException (javax.jcr.PathNotFoundException)3