CMIS保持能力

时间:2013-12-11 13:03:43

标签: java web-services cxf cmis opencmis

我正在使用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

1 个答案:

答案 0 :(得分:2)

抱歉,InMemory存储库不支持Retention&amp;成立。默认情况下,InMemory服务器不会公开保留和保留规范中的预定义类型。如果之后创建了这样的类型,服务器将识别类型和属性,但它不会知道与诸如hold之类的属性相关的语义。实际上,您不应该尝试在运行时添加预定义类型(以cmis开头的那些类型:),因为它们的存在表明是否支持该功能。

为了测试保留并保持InMemory服务器不是合适的服务器。 InMemory服务器仅限于基本功能。

希望这会有所帮助......