Search in sources :

Example 61 with ArchiveEntry

use of org.apache.commons.compress.archivers.ArchiveEntry in project uPortal by Jasig.

the class JaxbPortalDataHandlerService method importDataArchive.

/**
 * Extracts the archive resource and then runs the batch-import process on it.
 */
private void importDataArchive(final Resource resource, final ArchiveInputStream resourceStream, BatchImportOptions options) {
    final File tempDir = Files.createTempDir();
    try {
        ArchiveEntry archiveEntry;
        while ((archiveEntry = resourceStream.getNextEntry()) != null) {
            final File entryFile = new File(tempDir, archiveEntry.getName());
            if (!archiveEntry.isDirectory()) {
                entryFile.getParentFile().mkdirs();
                IOUtils.copy(new CloseShieldInputStream(resourceStream), new FileOutputStream(entryFile));
            }
        }
        importDataDirectory(tempDir, null, options);
    } catch (IOException e) {
        throw new RuntimeException("Failed to extract data from '" + resource + "' to '" + tempDir + "' for batch import.", e);
    } finally {
        FileUtils.deleteQuietly(tempDir);
    }
}
Also used : FileOutputStream(java.io.FileOutputStream) ArchiveEntry(org.apache.commons.compress.archivers.ArchiveEntry) IOException(java.io.IOException) File(java.io.File) CloseShieldInputStream(org.apache.tika.io.CloseShieldInputStream)

Example 62 with ArchiveEntry

use of org.apache.commons.compress.archivers.ArchiveEntry in project winery by eclipse.

the class Generator method addFilesRecursively.

/**
 * Recursive Helper function for packageProject()
 *
 * @param folderOrFile to add into the archive
 * @param baseDir      the base directory, which is to be stripped from the file name
 * @param zos          ArchiveOutputStream to add the files to
 */
private void addFilesRecursively(File folderOrFile, String baseDir, ArchiveOutputStream zos) {
    if (folderOrFile.isFile()) {
        String nameOfFileInZip = folderOrFile.getAbsolutePath().replace(baseDir, "");
        Generator.LOGGER.trace("Adding " + folderOrFile + " as " + nameOfFileInZip);
        ArchiveEntry archiveEntry = new ZipArchiveEntry(nameOfFileInZip);
        try (InputStream is = new FileInputStream(folderOrFile)) {
            zos.putArchiveEntry(archiveEntry);
            IOUtils.copy(is, zos);
            zos.closeArchiveEntry();
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        Generator.LOGGER.trace("Adding folder " + folderOrFile);
        for (File childFile : folderOrFile.listFiles()) {
            this.addFilesRecursively(childFile, baseDir, zos);
        }
    }
}
Also used : FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ZipArchiveEntry(org.apache.commons.compress.archivers.zip.ZipArchiveEntry) ZipArchiveEntry(org.apache.commons.compress.archivers.zip.ZipArchiveEntry) ArchiveEntry(org.apache.commons.compress.archivers.ArchiveEntry) JarFile(java.util.jar.JarFile) File(java.io.File) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException)

Aggregations

ArchiveEntry (org.apache.commons.compress.archivers.ArchiveEntry)62 File (java.io.File)24 FileInputStream (java.io.FileInputStream)24 IOException (java.io.IOException)22 TarArchiveInputStream (org.apache.commons.compress.archivers.tar.TarArchiveInputStream)20 ZipArchiveEntry (org.apache.commons.compress.archivers.zip.ZipArchiveEntry)19 ZipArchiveInputStream (org.apache.commons.compress.archivers.zip.ZipArchiveInputStream)17 InputStream (java.io.InputStream)16 FileOutputStream (java.io.FileOutputStream)11 TarArchiveEntry (org.apache.commons.compress.archivers.tar.TarArchiveEntry)11 BufferedInputStream (java.io.BufferedInputStream)9 ByteArrayOutputStream (java.io.ByteArrayOutputStream)9 Path (java.nio.file.Path)9 ArchiveInputStream (org.apache.commons.compress.archivers.ArchiveInputStream)9 ArchiveStreamFactory (org.apache.commons.compress.archivers.ArchiveStreamFactory)9 ByteArrayInputStream (java.io.ByteArrayInputStream)8 ArchiveException (org.apache.commons.compress.archivers.ArchiveException)6 OutputStream (java.io.OutputStream)5 TarArchiveOutputStream (org.apache.commons.compress.archivers.tar.TarArchiveOutputStream)5 BufferedOutputStream (java.io.BufferedOutputStream)4