* root location}.
*/
public DavResource createResource(DavResourceLocator locator, DavSession session) throws DavException {
JcrDavSession.checkImplementation(session);
JcrDavSession sessionImpl = (JcrDavSession)session;
DavResource resource;
try {
resource = createResourceForItem(locator, sessionImpl);
} catch (RepositoryException e) {
log.info("Creating resource for non-existing repository item ...");
if (locator.isRootLocation()) {
resource = new RootCollection(locator, sessionImpl, this);
} else {
// todo: is this correct?
resource = new VersionControlledItemCollection(locator, sessionImpl, this, null);
}
}
// todo: currently transactionId is set manually after creation > to be improved.
resource.addLockManager(txMgr);
((ObservationResource)resource).init(subsMgr);
return resource;
}