0

古いファイルをアーカイブ リポジトリに移動するための現在実行中のリポジトリ。

ドキュメント ノードをコピーできます。問題は、バージョン ノードのコピーにあります。

バージョンのすべてのプロパティをコピーする方法がよくわからないため、反復しようとしています:

 VersionManager versionManager1 =    
     oldChildNode.getSession().getWorkspace().getVersionManager();
    versionManager1.checkout(oldChildNode.getPath());
    VersionHistory versionHistory1 = versionManager1.getVersionHistory(oldChildNode.getPath());
VersionIterator versions = versionHistory1.getAllVersions();
 while (versions.hasNext()) {
  try {
       Version versionedNode = versions.nextVersion();
        NodeIterator nodeIterator = versionedNode.getNodes();
        System.out.println(" Version is :: " + versionedNode.getName());
        while (nodeIterator.hasNext()) {
            Node currentNode = nodeIterator.nextNode();
            System.out.println(" JCR Title :: " + currentNode.getName());
        }
        }catch(UnsupportedRepositoryOperationException jcrexce){
       logger.info("Exception while accessing versioned nodes >> ");
       jcrexce.printStackTrace();
   } catch(PathNotFoundException pexec){
      pexec.printStackTrace();
     }
 }

ドキュメント ノード --> nt:resource が追加されます

Structure:
/**
 * Document node
 */
[et:document] > nt:file, mix:title, mix:versionable, mix:shareable
+ * (nt:file) VERSION
- et:tags multiple
- et:role multiple
- et:docUserList multiple
- et:id (LONG)
- et:favourites (BOOLEAN)
- et:lastAccessed (STRING)
- et:lastAccessedOn (DATE)
- et:documentSize (LONG)
- et:fileOwnerName (STRING)
- et:fileOwnerId (STRING)
- * (undefined)

バージョン管理されたノードを移動する方法に関する指針はありますか (ワークスペースのコピーではなく、リポジトリから別のリポジトリに)?

Jackrabbit 2.8.0 を使用した Java 1.6 での実行

4

1 に答える 1

0

そのために RepositoryCopier API を使用できます。基本的に、異なるリポジトリ間でデータを移動できます。詳細については、 https ://jackrabbit.apache.org/api/1.6/org/apache/jackrabbit/core/RepositoryCopier.html をご覧ください。

于 2016-04-22T19:03:24.580 に答える