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);
}
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);
}
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;
}
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.");
}
}
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);
}
}
Aggregations