0

我正在使用 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:document 的属性 (cmis:secondaryObjectTypeIds) 时,仍然可以删除该文件。

也许这不是正确的方法。

有人可以为我指出正确的方向来实现此功能吗?

我用来添加属性的代码:

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);

谢谢你,米雷兹

4

1 回答 1

2

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

对于测试保留和保留 InMemory 服务器不是合适的服务器。InMemory 服务器仅限于基本功能。

希望这可以帮助...

于 2013-12-11T14:50:22.627 回答