]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-3414: Adding a utility method that exports a Nuuxeo document instance -using...
authorRichard Millet <richard.millet@berkeley.edu>
Wed, 19 Jan 2011 23:40:21 +0000 (23:40 +0000)
committerRichard Millet <richard.millet@berkeley.edu>
Wed, 19 Jan 2011 23:40:21 +0000 (23:40 +0000)
services/common/pom.xml
services/common/src/main/java/org/collectionspace/services/nuxeo/util/NuxeoUtils.java

index 64b3e3367f252484f50afccb29b45e2d5b6ba9bb..6a33c1846381b64cde05b39b2f5f96e384d46fe0 100644 (file)
             <artifactId>nuxeo-core-facade</artifactId>\r
             <version>${nuxeo.core.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.nuxeo.ecm.core</groupId>\r
+            <artifactId>nuxeo-core-io</artifactId>\r
+            <version>${nuxeo.core.version}</version>\r
+        </dependency>\r
         <dependency>\r
             <groupId>org.nuxeo.runtime</groupId>\r
             <artifactId>nuxeo-runtime-osgi</artifactId>\r
index 91e775a62a5dfb560bd9ece02ecf749d25afa9d5..05e178fc2b505815e34bcaff433eee67fb3b3ac8 100644 (file)
@@ -20,6 +20,7 @@ package org.collectionspace.services.nuxeo.util;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.File;
 
 import java.io.Serializable;
 import java.util.Map;
@@ -34,6 +35,7 @@ import org.nuxeo.ecm.core.api.DocumentModel;
 import org.nuxeo.ecm.core.api.DocumentModelList;
 import org.nuxeo.ecm.core.api.ClientException;
 import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
+import org.nuxeo.ecm.core.api.CoreSession;
 import org.nuxeo.ecm.core.api.DocumentRef;
 import org.nuxeo.ecm.core.api.IdRef;
 import org.nuxeo.ecm.core.api.PathRef;
@@ -42,6 +44,7 @@ import org.nuxeo.ecm.core.api.model.DocumentPart;
 
 import org.nuxeo.ecm.core.io.DocumentPipe;
 import org.nuxeo.ecm.core.io.DocumentReader;
+import org.nuxeo.ecm.core.io.impl.plugins.DocumentTreeReader;
 import org.nuxeo.ecm.core.io.DocumentWriter;
 import org.nuxeo.ecm.core.io.impl.DocumentPipeImpl;
 import org.nuxeo.ecm.core.io.impl.plugins.SingleDocumentReader;
@@ -63,6 +66,40 @@ public class NuxeoUtils {
     /** The logger. */
     private static Logger logger = LoggerFactory.getLogger(NuxeoUtils.class);
 
+    public static void exportDocModel(DocumentModel src) {
+       DocumentReader reader = null;
+       DocumentWriter writer = null;
+
+       CoreSession repoSession = src.getCoreSession();
+       try { 
+         reader = new SingleDocumentReader(repoSession, src);
+               
+         // inline all blobs
+//       ((DocumentTreeReader)reader).setInlineBlobs(true);
+         File tmpFile = new File("/tmp/nuxeo_export-" +
+                         System.currentTimeMillis() + ".zip");
+         System.out.println(tmpFile.getAbsolutePath());
+         writer = new XMLDocumentWriter(tmpFile);
+               
+         // creating a pipe
+         DocumentPipe pipe = new DocumentPipeImpl();
+               
+         // optionally adding a transformer
+//       pipe.addTransformer(new MyTransformer());
+         pipe.setReader(reader);
+         pipe.setWriter(writer); pipe.run();
+               
+       } catch (Exception x) {
+               x.printStackTrace();
+       } finally { 
+         if (reader != null) {
+           reader.close(); 
+         } 
+         if (writer != null) { 
+           writer.close();
+         }
+       }       
+    }
     /**
      * getDocument retrieve org.dom4j.Document from Nuxeo DocumentModel
      * @param repoSession