protected DocumentPipe makePipe(boolean exportAsTree) { if (exportAsTree) { return new DocumentPipeImpl(10); } else { return new DocumentPipeImpl(); } }
protected void readAndWriteDocs(List<DocumentTranslationMap> maps) throws IOException { if (pageSize == 0) { // handle single doc case ExportedDocument doc; while ((doc = reader.read()) != null) { applyTransforms(doc); DocumentTranslationMap map = writer.write(doc); maps.add(map); handleBatchEnd(); } } else { // handle multiple doc case ExportedDocument[] docs; while ((docs = reader.read(pageSize)) != null) { if (docs.length != 0) { applyTransforms(docs); DocumentTranslationMap map = writer.write(docs); if (map != null) { maps.add(map); } handleBatchEnd(); } } } }
@Override public DocumentTranslationMap run() throws IOException { if (reader == null) { throw new IllegalArgumentException("Pipe reader cannot be null"); } if (writer == null) { throw new IllegalArgumentException("Pipe writer cannot be null"); } List<DocumentTranslationMap> maps = new ArrayList<>(); readAndWriteDocs(maps); return DocumentTranslationMapImpl.merge(maps); }
@Override public DocumentTranslationMap importDocuments(DocumentReader customDocReader, DocumentWriter customDocWriter) { try { DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(customDocReader); pipe.setWriter(customDocWriter); DocumentTranslationMap map = pipe.run(); // will need to save session before notifying events, otherwise docs // won't be found // writer.close(); return map; } catch (IOException e) { throw new NuxeoException(e); } }
@Override public DocumentTranslationMap exportDocuments(OutputStream out, DocumentReader customDocReader, String format) { DocumentWriter writer = null; try { DocumentPipe pipe = new DocumentPipeImpl(10); // XXX check format before creating writer writer = new NuxeoArchiveWriter(out); pipe.setWriter(writer); pipe.setReader(customDocReader); List<DocumentTranslationMap> maps = new ArrayList<DocumentTranslationMap>(); DocumentTranslationMap map = pipe.run(); if (map != null) { maps.add(map); } return DocumentTranslationMapImpl.merge(maps); } catch (IOException e) { throw new NuxeoException(e); } finally { // reader will be closed by caller if (writer != null) { writer.close(); } } }
/** * {@inheritDoc} */ public final byte[] exportXMLAsByteArray(DocumentModel doc, CoreSession session) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); DocumentWriter documentWriter = new XMLDocumentWriter(outputStream); DocumentReader documentReader = new TypedSingleDocumentReader(session, doc); DocumentPipe pipe = new DocumentPipeImpl(); pipe.setReader(documentReader); pipe.setWriter(documentWriter); try { pipe.run(); } catch (IOException e) { throw new NuxeoException("Error while trying to export the document to XML.", e); } finally { if (documentReader != null) { documentReader.close(); } if (documentWriter != null) { documentWriter.close(); } } return outputStream.toByteArray(); } }
@Override public void exportDocumentation(CoreSession session, OutputStream out) { try { String query = "SELECT * FROM " + DocumentationItem.TYPE_NAME + " WHERE " + QueryHelper.NOT_DELETED; DocumentModelList docList = session.query(query); DocumentReader reader = new DocumentModelListReader(docList); DocumentWriter writer = new NuxeoArchiveWriter(out); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); pipe.run(); reader.close(); writer.close(); } catch (IOException | NuxeoException e) { log.error("Error while exporting documentation", e); } }
public static void export(List<DocumentModel> docList) { DocumentReader reader = null; DocumentWriter writer = null; Blob blob = null; try { reader = new DocumentModelListReader(docList); blob = Blobs.createBlobWithExtension("zip"); writer = new NuxeoArchiveWriter(blob.getFile()); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); pipe.run(); } catch (IOException e) { log.error("Error during XML export " + e.getMessage()); } finally { if (reader != null) { reader.close(); } if (writer != null) { writer.close(); } } if (blob != null) { ComponentUtils.download(null, null, blob, "export.zip", "workListXML"); if (blob.getFile() != null) { blob.getFile().delete(); } } }
@Override public void importSnapshot(CoreSession session, InputStream is) throws IOException { String importPath = persister.getDistributionRoot(session).getPathAsString(); DocumentReader reader = new NuxeoArchiveReader(is); DocumentWriter writer = new DocumentModelWriter(session, importPath); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); pipe.run(); reader.close(); writer.close(); }
@Override public DocumentTranslationMap importDocuments(InputStream in, DocumentWriter customDocWriter) { DocumentReader reader = null; try { reader = new NuxeoArchiveReader(in); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(customDocWriter); DocumentTranslationMap map = pipe.run(); // will need to save session before notifying events, otherwise docs won't be found customDocWriter.close(); return map; } catch (IOException e) { throw new NuxeoException(e); } finally { if (reader != null) { reader.close(); } // writer will be closed by caller } }
@Override public void importDocumentation(CoreSession session, InputStream is) { try { String importPath = getDocumentationRoot(session).getPathAsString(); DocumentReader reader = new NuxeoArchiveReader(is); DocumentWriter writer = new DocumentModelWriter(session, importPath); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); DocumentTransformer rootCutter = new DocumentTransformer() { @Override public boolean transform(ExportedDocument doc) { doc.setPath(doc.getPath().removeFirstSegments(1)); return true; } }; pipe.addTransformer(rootCutter); pipe.run(); reader.close(); writer.close(); } catch (IOException | NuxeoException e) { log.error("Error while importing documentation", e); } }
DocumentWriter writer = null; try (CloseableCoreSession coreSession = CoreInstance.openCoreSessionSystem(repo)) { DocumentPipe pipe = new DocumentPipeImpl(10);
DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer);
DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer);
@Override public void exportSnapshot(CoreSession session, String key, OutputStream out) throws IOException { DistributionSnapshot snap = getSnapshot(key, session); if (snap == null) { throw new NuxeoException("Unable to find Snapshot " + key); } if (snap.isLive()) { throw new NuxeoException("Can not export a live distribution snapshot : " + key); } RepositoryDistributionSnapshot docSnap = (RepositoryDistributionSnapshot) snap; DocumentModel root = docSnap.getDoc(); DocumentReader reader = new DocumentTreeReader(session, root); DocumentWriter writer = new NuxeoArchiveWriter(out); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); pipe.run(); reader.close(); writer.close(); }
@Override public DocumentTranslationMap importDocuments(InputStream in, String repo, DocumentRef root) { DocumentReader reader = null; DocumentModelWriter writer = null; try (CloseableCoreSession coreSession = CoreInstance.openCoreSessionSystem(repo)) { final DocumentModel dst = coreSession.getDocument(root); reader = new NuxeoArchiveReader(in); writer = new DocumentModelWriter(coreSession, dst.getPathAsString()); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); DocumentTranslationMap map = pipe.run(); coreSession.save(); return map; } catch (IOException e) { throw new NuxeoException(e); } finally { if (reader != null) { reader.close(); } if (writer != null) { writer.close(); } } }
DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer);
DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer);
@Override public DocumentModel importTmpSnapshot(CoreSession session, InputStream is) throws IOException { DocumentModel container = persister.getDistributionRoot(session); DocumentRef tmpRef = new PathRef(container.getPathAsString(), IMPORT_TMP); DocumentModel tmp; if (session.exists(tmpRef)) { tmp = session.getChild(container.getRef(), IMPORT_TMP); session.removeChildren(tmp.getRef()); } else { tmp = session.createDocumentModel(container.getPathAsString(), IMPORT_TMP, "Workspace"); tmp.setPropertyValue("dc:title", "tmpImport"); tmp = session.createDocument(tmp); session.save(); } DocumentReader reader = new NuxeoArchiveReader(is); DocumentWriter writer = new SnapshotWriter(session, tmp.getPathAsString()); DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer); pipe.run(); reader.close(); writer.close(); return session.getChildren(tmp.getRef()).get(0); }
DocumentPipe pipe = new DocumentPipeImpl(10); pipe.setReader(reader); pipe.setWriter(writer);