我正在使用Apache Chemistry和CXF在JAVA中开发通用CMIS 1.1客户端应用程序。
目前我对这里描述的CMIS的保持能力感到不满: http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html#x1-13200016
当我在InMemory存储库中使用id“cmis:rm_hold”创建辅助类型并将此类型添加到属性(cmis:secondaryObjectTypeIds)到任何cmis:document时,文件仍然可以删除。
也许这不是正确的做法。
有人可以指出我正确的方向来实现这个功能吗?
我用来添加属性的代码:
CmisPropertiesType properties = new CmisPropertiesType();
CmisPropertyId propertyId = new CmisPropertyId();
propertyId.setPropertyDefinitionId("cmis:secondaryObjectTypeIds");
propertyId.getValue().add("cmis:rm_hold");
properties.getProperty().add(propertyId);
objectServicePort.updateProperties(
cmisContext.getRepositoryId(),
new Holder<String>(id.getDocId()), null, properties, null);
谢谢你, Miretz
答案 0 :(得分:2)
抱歉,InMemory存储库不支持Retention&amp;成立。默认情况下,InMemory服务器不会公开保留和保留规范中的预定义类型。如果之后创建了这样的类型,服务器将识别类型和属性,但它不会知道与诸如hold之类的属性相关的语义。实际上,您不应该尝试在运行时添加预定义类型(以cmis开头的那些类型:),因为它们的存在表明是否支持该功能。
为了测试保留并保持InMemory服务器不是合适的服务器。 InMemory服务器仅限于基本功能。
希望这会有所帮助......