From: Richard Millet Date: Wed, 19 Jan 2011 23:40:21 +0000 (+0000) Subject: CSPACE-3414: Adding a utility method that exports a Nuuxeo document instance -using... X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=51288268dbe66a8c3e0678c9b97eda0bfcdabb38;p=tmp%2Fjakarta-migration.git CSPACE-3414: Adding a utility method that exports a Nuuxeo document instance -using the Nuxeo export API. --- diff --git a/services/common/pom.xml b/services/common/pom.xml index 64b3e3367..6a33c1846 100644 --- a/services/common/pom.xml +++ b/services/common/pom.xml @@ -247,6 +247,11 @@ nuxeo-core-facade ${nuxeo.core.version} + + org.nuxeo.ecm.core + nuxeo-core-io + ${nuxeo.core.version} + org.nuxeo.runtime nuxeo-runtime-osgi diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/util/NuxeoUtils.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/util/NuxeoUtils.java index 91e775a62..05e178fc2 100644 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/util/NuxeoUtils.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/util/NuxeoUtils.java @@ -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