public void addVersionLabel(String path, String versionName, String versionLabel) {
try {
Node node = (Node) session.getItem(path);
checkIfNodeLocked(path);
if (!node.isNodeType("mix:versionable")) {
throw new VersionException("The object " + path + "is not versionable");
}
VersionHistory history = node.getVersionHistory();
history.addVersionLabel(versionName, versionLabel, false);
} catch (ClassCastException cce) {
throw new ObjectContentManagerException("Cannot retrieve an object from a property path " + path);
} catch (PathNotFoundException pnfe) {
throw new ObjectContentManagerException("Cannot retrieve an object at path " + path, pnfe);
} catch (javax.jcr.version.VersionException ve) {
throw new VersionException("Impossible to add a new version label to " + path + " - version name : " + versionName, ve);
} catch (UnsupportedRepositoryOperationException uroe) {
throw new VersionException("Impossible to add a new version label to " + path + " - version name : " + versionName, uroe);
} catch (javax.jcr.RepositoryException e) {
throw new org.apache.jackrabbit.ocm.exception.RepositoryException(e);
}
}