private void initialize() throws IOException { ZipEntry entry = in.getNextEntry(); if (NuxeoArchiveReader.isMarkerEntry(entry)) { delegate = new NuxeoArchiveReader(in, false); } else { // not a nuxeo archive file File root = null; try { root = Framework.createTempFile("nuxeo-import-", ".unzip"); Framework.trackFile(root, root); root.delete(); root.mkdirs(); extract(in, entry, root); while ((entry = in.getNextEntry()) != null) { extract(in, entry, root); } } finally { in.close(); } delegate = new XMLDirectoryReader(root); } }
@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); } }
10); reader.close(); reader = new NuxeoArchiveReader(tmp);
@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(); } } }
DocumentReader reader = new NuxeoArchiveReader(source.getFile()); ExportedDocument root = reader.read(); IdRef rootRef = new IdRef(root.getId()); reader = new NuxeoArchiveReader(source.getFile());
DocumentReader reader = new NuxeoArchiveReader(source.getFile()); ExportedDocument root = reader.read(); String parentPath = context.getParentPath(); reader = new NuxeoArchiveReader(source.getFile());
@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); }