2014-10-07 114 views
0

要求:
我有一个要求,我需要将存储库中的一些nt:file节点归档,这些节点可以在稍后阶段恢复。 这些nt:file节点一旦存档,如果在存储库中搜索,则不应该可见。 但是,一旦恢复,他们应该变得可搜索。在Jackrabbit Repository中存档文档的最佳方式是什么?

方法:

移动文件夹下的文件夹e.g Temp下相同workspace存档。一旦用户尝试恢复节点,它应该移回到它存在的位置。这看起来像一个正确的方法吗?

  • 如果有人已经实现了这样的功能,一个可以分享 他们的经验和做法,或
  • 什么是可能的选择我要实现这样的功能?

回答

1

将这些节点移动到特定/归档文件夹下听起来不错。

然后,您可以使用访问控制使其对用户不可见,并实施服务以控制的方式将内容移入和移出存档。

要允许用户取消归档文档,您可以在移至归档时留下“影子”节点,并提供足够的信息让授权用户解除归档文档。

+0

感谢您的回复@Bertrand。我对这种方法有一个担忧。节点存档后,如果用户尝试再次添加同一节点,它将被存储。然后如果归档节点被恢复,它将导致“ItemExistsException”。有没有办法,这可以避免? – 2014-10-08 08:23:56

+0

这是留下阴影节点的另一个原因 - 如果将say/content/foo移动到/ archive/foo,则将节点保留在指向归档节点的/ content/foo处,并设置该节点的访问控制,以使用户无法修改/内容/富,甚至不能看到它。 – 2014-10-09 09:36:28

+0

我可以考虑多一个选项,即用布尔属性isDeleted创建'mixinNode'。将'mixinNode'附加到文件节点上,并将其删除。在搜索时,我将排除'isDeleted'属性等于'true'的所有'nt:file'节点您是否发现此方法存在任何问题? – 2014-10-09 09:51:19

相关问题