我正在开发代表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号,我如何改变这种行为?...
我的情况下的事务级别:
是的,帕特里克的建议是有效的(斯洛思罗普的建议我没有检查)。我刚刚设置了initialVersion=false
。
Map<String, String> map = new HashMap<String, String>() {
{
put(QNAME_VERSION_LABEL, INITIAL_UPLOADED_VERSION); // 1.1
put(QNAME_AUTO_VERSION, false);
put(QNAME_INITIAL_VERSION, false);
}
};
nodeService.addAspect(nodeRef, QNAME_ASPECT_CM_VERSIONABLE, map);
现在一切都好了。
感谢@Gagravarr的帮助。
问题内容: 如何设置Flutter应用程序的版本名称和版本代码,而不必进入Android和iOS设置? 在我的pubspec.yaml中 但我看不到内部编号的地方。 问题答案: 您可以在 pubspec.yaml 中的同一位置更新版本名称和版本代码号。只需将它们与标志分开即可。例如: 这表示 版本名称是 版本代码是 在新项目的文档中对此进行了描述(但是,如果您正在处理旧项目,则可能已将其删除):
我正在尝试编写一个配置文件语法并让ANTLR4来处理它。我对ANTLR很陌生(这是我第一个使用它的项目)。 在很大程度上,我理解大多数配置文件语法需要做什么(或者至少我认为我需要做什么),但我将要阅读的文件将在大括号内包含任意C代码。以下是一个示例: 类似于: 可能有很多这样的人。我似乎无法让它理解我只想忽略(不跳过)源代码。以下是我迄今为止的语法: 问题是,我在C\U BLOCK lexer规则
我遵循每一个步骤来设置新的版本。 我已经有了,为了更新,我下载了 ....现在当我运行Android Studio时,它说: 错误:配置根项目“empty”时出现问题。 未能解析配置“:classpath”的所有依赖项。找不到com.android.tools.build:gradle:4.1。在以下位置搜索:文件:/c:/程序文件/android/android Studio1/gradle/m
问题内容: 如何在HttpClient上更改受支持的TLS版本? 我正在做: 但是当我检查创建的套接字时,它仍然说支持的协议是TLSv1.0,TLSv1.1和TLSv1.2。 实际上,我只希望它针对此特定HttpClient停止使用TLSv1.2。 问题答案: 解决方案是: 不过,这需要org.apache.httpcomponents.httpclient4.3.x。
在我的机器上,我安装了两个Java版本:(我手动安装的1.6和1.7)。我需要他们两个为不同的项目。但对于Maven,我需要1.7,但我的Maven使用的是1.6 Java版本。
我想在Hostgator共享主机上部署我的Laravel 3项目。Laravel 3所需的最小php是php56。Hostgator中默认的php是php54,低于所需的版本。 我按照这个指令在HG中找到了php56,然后我找到了它。然后我编辑了~/.bashrc。 现在,当我检查php版本时,它清楚地表明它是 PHP 5.6.30(cli)(内置: Mar27 2017 11:42:52)Cop