我正在开发代表Surf WebScript的内容上传器。说“updater”可能更为正确,因为内容已存在于存储库中,但可能没有cm:versionable
方面。我需要更新此内容并设置正确的版本号(例如,任意)。
我注意到第一次上传总是得到数字1.0
。
例如,假设内容模型没有cm:versionable
方面。我可以通过这种方式添加它并指定我需要的版本号(1.1
):
if(!nodeService.hasAspect(nodeRef, QNAME_ASPECT_VERSIONABLE)) {
Map<String, String> map = new HashMap<String, String>() {
{
put(QNAME_VERSION_LABEL, INITIAL_UPLOADED_VERSION); // 1.1
put(QNAME_AUTO_VERSION, false);
}
};
nodeService.addAspect(nodeRef, QNAME_ASPECT_VERSIONABLE, map);
// SKIPPED
我使用的常量:
final String NS_ALF_CONTENT_MODEL = "http://www.alfresco.org/model/content/1.0";
final String ASPECT_CM_VERSIONABLE = "versionable";
final String PROP_VERSION_LABEL = "versionLabel";
final String PROP_AUTO_VERSION = "autoVersion";
final String INITIAL_UPLOADED_VERSION = "1.1";
final QName QNAME_ASPECT_VERSIONABLE = QName.createQName(NS_ALF_CONTENT_MODEL, ASPECT_CM_VERSIONABLE);
final QName QNAME_VERSION_LABEL = QName.createQName(NS_ALF_CONTENT_MODEL, PROP_VERSION_LABEL);
final QName QNAME_AUTO_VERSION = QName.createQName(NS_ALF_CONTENT_MODEL, PROP_AUTO_VERSION);
当我调试这个解决方案时,我可以看到我得到了我需要的版本。
但是,当我查看节点浏览器中的节点属性时,我看到cm:versionLabel == 1.0
。
根据我使用的逻辑,所有下一次上传都会得到正确的数字。
为什么第一次上传的版本始终具有数字1.0,如何更改此行为?
在我的情况下transaction level:<transaction>required</transaction>
我非常感谢这些信息。
谢谢大家。
是的,qazxsw poi建议工作(qazxsw poi建议我没有检查)。我刚刚设置了Patrik's。
Slothrop's
现在一切都好。
initialVersion = false
感谢@Gagravarr的帮助。