個々のノードはJCRリポジトリでバージョン管理できることを私は知っています。しかし、小さな個々のスニペットの階層、より大きなスニペットプール内のノードへのエイリアスで構成されるドキュメントがある場合はどうなりますか。ドキュメント内のすべてのノードのスナップショットを取り、ドキュメントを編集しているすべてのクライアント間で階層の現在の状態に関する情報を共有したいと思います。それはJCRで可能ですか、それを行う方法についていくつかの指針を教えていただけますか?
質問する
639 次
1 に答える
1
はい、サブグラフ全体をバージョン管理することは可能です(そして非常に簡単です)。サブグラフの上部にあるjcr:versionable
ノードには、ノードのプライマリタイプまたはミックスインタイプのスーパータイプを介して、明示的または暗黙的にミックスインが含まれている必要があります。サブグラフ内の他のノードをバージョン管理可能としてマークする必要はありません。実際、それらのどれもそれを持っていない場合、それははるかに簡単です。
デフォルトでは、プロパティ定義と子ノード定義のすべての「親バージョン管理時」の動作はでありCOPY
、これは完全に機能します。
次に、(セッションのワークスペースを介して)VersionManager
JCRのを取得し、ノードをチェックインします。Session
javax.jcr.Node subgraphRoot = ...
javax.jcr.VersionManager vmgr = session.getWorkspace().getVersionManager();
vmgr.checkin(subgraphRoot.getPath());
チェックアウトして変更するのも同じくらい簡単です。
vmgr.checkout(subgraphRoot.getPath());
于 2012-09-04T12:39:54.710 に答える