Jackrabbit / JCR 2.0中的版本控制属性

时间:2012-12-02 20:16:15

标签: java versioning jackrabbit jcr

我正在使用Jackrabbit / JCR 2.0。

想象一下以下场景:我添加了一个节点,然后我对它进行了签出,编辑了一些属性并进行了登记。然后我再做一次。

接下来,我可以在版本历史记录中看到版本1.0和1.1已创建。如何使其始终增加1,例如1,2,3 ...等?

此外,如果我有类型版本的节点如何获得实际版本化节点(包含我的数据的节点)?

我如何添加和获取其他一些属性winch是版本相关的,如评论或作者(签入的用户)的版本?

1 个答案:

答案 0 :(得分:3)

您必须使用自己的版本号属性,以便可以按需增加它(特别是如果您不是简单版本模式)。 要访问历史版本的历史记录和属性,您必须使用VersionHisoty并使用以下代码获取版本节点:

VersionHistory history = session.getWorkspace().getVersionManager().getVersionHistory("/my/node/path");
// To iterate over all versions
VersionIterator versions = history.getAllVersions();
while (versions.hasNext()) {
  Version version = versions.nextVersion();
}
// Obtain version per name
Version mySpecificVersion = history.getVersion("myVersion");
//Obtain version per label
Version labelisedVersion = history.getVersionByLabel("myLabel");
String myVersionPropertyValue = labelisedVersion.getFrozenNode().getProperty("myProperty").getString();