2012-09-03 44 views
1

我知道可以在JCR存儲庫中對各個節點進行版本控制。但是如果我擁有由小型單獨片段的層次結構組成的文檔,則會在更大的片段池中將節點別名添加到節點中。我想爲文檔中的所有節點拍攝快照,並在編輯文檔的所有客戶端之間共享當前層次結構狀態的信息。這是可能的與JCR,你能給我一些關於如何做到這一點的指針?版本控制JCR中的節點層次結構?

回答

1

是的,它是可能的(並且很容易)整個版本的子圖。子圖頂部的節點應該使用mixin,或者通過節點的主類型或mixin類型的超類型顯式或隱式地執行。子圖中沒有其他節點需要標記爲可版本化;事實上,如果他們中沒有一個擁有它,那麼它會容易得多。

默認情況下,屬性定義和子節點定義的所有「關於父版本控制」行爲是COPY,這將很好地工作。

然後,只需獲得VersionManager的JCR Session(通過會議的工作空間),並檢查節點:

javax.jcr.Node subgraphRoot = ... 
javax.jcr.VersionManager vmgr = session.getWorkspace().getVersionManager(); 
vmgr.checkin(subgraphRoot.getPath()); 

檢查出來進行修改也很簡單:

vmgr.checkout(subgraphRoot.getPath());