将版本控制的节点复制到另一个存储库工作区



当前正在运行的存储库,用于将旧文件移动到归档存储库。

能够复制文档节点。版本节点复制出现问题。

尝试迭代,不太确定如何复制版本的所有属性:

 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:添加资源

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上运行

您可以使用RepositoryCopier API。基本上,它允许您在不同的存储库中移动数据。有关更多信息,请查看:https://jackrabbit.apache.org/api/1.6/org/apache/jackrabbit/core/RepositoryCopier.html

最新更新