Versionierung mit Jackrabbit 2.2.5

Da das Example von Jackrabbit über Versionierung veraltet ist und ich keine neueren Informationen auf der Apache Seite gefunden habe, eine von mir aktualisierte Variante:

public void versioningBasics (Node parentNode, Session session)
throws RepositoryException {
//create versionable node
Node n = parentNode.addNode("childNode", "nt:unstructured");
n.addMixin("mix:versionable");
n.setProperty("anyProperty", "Blah");
session.save();
VersionManager versionManager = session.getWorkspace().getVersionManager();
Version firstVersion = versionManager.checkin(n.getPath());
//add new version
Node child = parentNode.getNode("childNode");
versionManager.checkout(child.getPath());
child.setProperty("anyProperty", "Blah2");
session.save();
versionManager.checkin(child.getPath());
//print version history
VersionHistory history =
versionManager.getVersionHistory(child.getPath());
for (VersionIterator it = history.getAllVersions(); it.hasNext();) {
Version version = (Version) it.next();
System.out.println(version.getCreated().getTime());
}
//restoring old version
versionManager.checkout(child.getPath());
versionManager.restore(firstVersion, true);
}

Das Orginal findet ihr unter http://wiki.apache.org/jackrabbit/ExamplesPage#Versioning_Basics. In den nächsten Wochen wird es in diesem Blog mehr über Jackrabbit geben.