2014-10-07 140 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

相關問題