Example usage for org.apache.commons.compress.archivers.tar TarArchiveEntry getName

List of usage examples for org.apache.commons.compress.archivers.tar TarArchiveEntry getName

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers.tar TarArchiveEntry getName.

Prototype

public String getName() 

Source Link

Document

Get this entry's name.

Usage

From source file:org.vafer.jdeb.DebMakerTestCase.java

public void testControlFilesVariables() throws Exception {
    File deb = new File("target/test-classes/test-control.deb");
    if (deb.exists() && !deb.delete()) {
        fail("Couldn't delete " + deb);
    }/*from   w w  w  .  j  av a  2  s  .com*/

    Map<String, String> variables = new HashMap<String, String>();
    variables.put("name", "jdeb");
    variables.put("version", "1.0");

    Collection<DataProducer> producers = Arrays.asList(new DataProducer[] { new EmptyDataProducer() });
    DebMaker maker = new DebMaker(new NullConsole(), producers);
    maker.setDeb(deb);
    maker.setControl(new File("target/test-classes/org/vafer/jdeb/deb/control"));
    maker.setResolver(new MapVariableResolver(variables));

    maker.createDeb(Compression.NONE);

    // now reopen the package and check the control files
    assertTrue("package not build", deb.exists());

    boolean found = ArchiveWalker.walkControl(deb, new ArchiveVisitor<TarArchiveEntry>() {
        public void visit(TarArchiveEntry entry, byte[] content) throws IOException {
            if (entry.getName().contains("postinst") || entry.getName().contains("prerm")) {
                String body = new String(content, "ISO-8859-1");
                assertFalse("Variables not replaced in the control file " + entry.getName(),
                        body.contains("[[name]] [[version]]"));
                assertTrue("Expected variables not found in the control file " + entry.getName(),
                        body.contains("jdeb 1.0"));
            }
        }
    });

    assertTrue("Control files not found in the package", found);
}

From source file:org.vafer.jdeb.mapping.LsMapper.java

private Map<String, TarArchiveEntry> parse(final InputStream pInput) throws IOException, ParseError {
    final Map<String, TarArchiveEntry> mapping = new HashMap<String, TarArchiveEntry>();

    final BufferedReader reader = new BufferedReader(new InputStreamReader(pInput));

    boolean first = true;
    while (true) {

        final String base;
        if (first) {
            base = "";
            first = false;/*from   w  ww  . ja  v a 2s.com*/
        } else {
            base = readBase(reader);
            if (base == null) {
                break;
            }
        }

        readTotal(reader);
        final TarArchiveEntry dir = readDir(reader, base);
        mapping.put(dir.getName(), dir);

        while (true) {
            final TarArchiveEntry file = readFile(reader, base);

            if (file == null) {
                break;
            }

            mapping.put(file.getName(), file);
        }
    }

    return mapping;
}

From source file:org.vafer.jdeb.mapping.LsMapper.java

public TarArchiveEntry map(final TarArchiveEntry pEntry) {

    final TarArchiveEntry entry = mapping.get(pEntry.getName());

    if (entry != null) {

        final TarArchiveEntry newEntry = new TarArchiveEntry(entry.getName(), true);
        newEntry.setUserId(entry.getUserId());
        newEntry.setGroupId(entry.getGroupId());
        newEntry.setUserName(entry.getUserName());
        newEntry.setGroupName(entry.getGroupName());
        newEntry.setMode(entry.getMode());
        newEntry.setSize(entry.getSize());

        return newEntry;
    }// w  w  w .  j  a  v  a2  s  . c o m

    return pEntry;
}

From source file:org.vafer.jdeb.mapping.PermMapper.java

public TarArchiveEntry map(final TarArchiveEntry entry) {
    final String name = entry.getName();

    final TarArchiveEntry newEntry = new TarArchiveEntry(prefix + '/' + Utils.stripPath(strip, name), true);

    // Set ownership
    if (uid > -1) {
        newEntry.setUserId(uid);/*w ww.j a  v a 2  s.  c  o m*/
    } else {
        newEntry.setUserId(entry.getUserId());
    }
    if (gid > -1) {
        newEntry.setGroupId(gid);
    } else {
        newEntry.setGroupId(entry.getGroupId());
    }
    if (user != null) {
        newEntry.setUserName(user);
    } else {
        newEntry.setUserName(entry.getUserName());
    }
    if (group != null) {
        newEntry.setGroupName(group);
    } else {
        newEntry.setGroupName(entry.getGroupName());
    }

    // Set permissions
    if (newEntry.isDirectory()) {
        if (dirMode > -1) {
            newEntry.setMode(dirMode);
        } else {
            newEntry.setMode(entry.getMode());
        }
    } else {
        if (fileMode > -1) {
            newEntry.setMode(fileMode);
        } else {
            newEntry.setMode(entry.getMode());

        }
    }

    newEntry.setSize(entry.getSize());

    return newEntry;
}

From source file:org.vafer.jdeb.producers.DataProducerArchive.java

public void produce(final DataConsumer pReceiver) throws IOException {

    InputStream is = new BufferedInputStream(new FileInputStream(archive));

    CompressorInputStream compressorInputStream = null;

    try {/*w ww.j  a v  a 2 s . c  o m*/
        compressorInputStream = new CompressorStreamFactory().createCompressorInputStream(is);
    } catch (CompressorException e) {
        // expected if the input file is a zip archive
    }

    if (compressorInputStream != null) {
        is = new BufferedInputStream(compressorInputStream);
    }

    ArchiveInputStream archiveInputStream = null;

    try {
        archiveInputStream = new ArchiveStreamFactory().createArchiveInputStream(is);
    } catch (ArchiveException e) {
        throw new IOException("Unsupported archive format: " + archive, e);
    }

    EntryConverter converter = null;

    if (archiveInputStream instanceof TarArchiveInputStream) {

        converter = new EntryConverter() {
            public TarArchiveEntry convert(ArchiveEntry entry) {
                TarArchiveEntry src = (TarArchiveEntry) entry;
                TarArchiveEntry dst = new TarArchiveEntry(src.getName(), true);

                dst.setSize(src.getSize());
                dst.setGroupName(src.getGroupName());
                dst.setGroupId(src.getGroupId());
                dst.setUserId(src.getUserId());
                dst.setMode(src.getMode());
                dst.setModTime(src.getModTime());

                return dst;
            }
        };

    } else if (archiveInputStream instanceof ZipArchiveInputStream) {

        converter = new EntryConverter() {
            public TarArchiveEntry convert(ArchiveEntry entry) {
                ZipArchiveEntry src = (ZipArchiveEntry) entry;
                TarArchiveEntry dst = new TarArchiveEntry(src.getName(), true);

                dst.setSize(src.getSize());
                dst.setMode(src.getUnixMode());
                dst.setModTime(src.getTime());

                return dst;
            }
        };

    } else {
        throw new IOException("Unsupported archive format: " + archive);
    }

    try {
        while (true) {

            ArchiveEntry archiveEntry = archiveInputStream.getNextEntry();

            if (archiveEntry == null) {
                break;
            }

            if (!isIncluded(archiveEntry.getName())) {
                continue;
            }

            TarArchiveEntry entry = converter.convert(archiveEntry);

            entry = map(entry);

            if (entry.isDirectory()) {
                pReceiver.onEachDir(entry.getName(), entry.getLinkName(), entry.getUserName(),
                        entry.getUserId(), entry.getGroupName(), entry.getGroupId(), entry.getMode(),
                        entry.getSize());
                continue;
            }
            pReceiver.onEachFile(archiveInputStream, entry.getName(), entry.getLinkName(), entry.getUserName(),
                    entry.getUserId(), entry.getGroupName(), entry.getGroupId(), entry.getMode(),
                    entry.getSize());
        }

    } finally {
        if (archiveInputStream != null) {
            archiveInputStream.close();
        }
    }
}

From source file:org.vafer.jdeb.producers.DataProducerDirectory.java

public void produce(final DataConsumer pReceiver) throws IOException {

    scanner.scan();/* w w w .j a  v  a 2 s .c o  m*/

    final File baseDir = scanner.getBasedir();

    for (String dir : scanner.getIncludedDirectories()) {
        final File file = new File(baseDir, dir);
        String dirname = getFilename(baseDir, file);

        if ("".equals(dirname)) {
            continue;
        }

        if (!isIncluded(dirname)) {
            continue;
        }

        if ('/' != File.separatorChar) {
            dirname = dirname.replace(File.separatorChar, '/');
        }

        if (!dirname.endsWith("/")) {
            dirname += "/";
        }

        TarArchiveEntry entry = new TarArchiveEntry(dirname, true);
        entry.setUserId(0);
        entry.setUserName("root");
        entry.setGroupId(0);
        entry.setGroupName("root");
        entry.setMode(TarArchiveEntry.DEFAULT_DIR_MODE);

        entry = map(entry);

        entry.setSize(0);

        pReceiver.onEachDir(entry.getName(), entry.getLinkName(), entry.getUserName(), entry.getUserId(),
                entry.getGroupName(), entry.getGroupId(), entry.getMode(), entry.getSize());
    }

    for (String f : scanner.getIncludedFiles()) {
        final File file = new File(baseDir, f);
        String filename = getFilename(baseDir, file);

        if (!isIncluded(filename)) {
            continue;
        }

        if ('/' != File.separatorChar) {
            filename = filename.replace(File.separatorChar, '/');
        }

        TarArchiveEntry entry = new TarArchiveEntry(filename, true);
        entry.setUserId(0);
        entry.setUserName("root");
        entry.setGroupId(0);
        entry.setGroupName("root");
        entry.setMode(TarArchiveEntry.DEFAULT_FILE_MODE);

        entry = map(entry);

        entry.setSize(file.length());

        final InputStream inputStream = new FileInputStream(file);
        try {
            pReceiver.onEachFile(inputStream, entry.getName(), entry.getLinkName(), entry.getUserName(),
                    entry.getUserId(), entry.getGroupName(), entry.getGroupId(), entry.getMode(),
                    entry.getSize());
        } finally {
            inputStream.close();
        }
    }
}

From source file:org.vafer.jdeb.producers.DataProducerFile.java

public void produce(final DataConsumer pReceiver) throws IOException {
    String fileName;//w w  w. ja va2 s  .  c  o  m
    if (destinationName != null && destinationName.trim().length() > 0) {
        fileName = destinationName.trim();
    } else {
        fileName = file.getName();
    }

    TarArchiveEntry entry = new TarArchiveEntry(fileName, true);
    entry.setUserId(0);
    entry.setUserName("root");
    entry.setGroupId(0);
    entry.setGroupName("root");
    entry.setMode(TarArchiveEntry.DEFAULT_FILE_MODE);

    entry = map(entry);

    entry.setSize(file.length());

    final InputStream inputStream = new FileInputStream(file);
    try {
        pReceiver.onEachFile(inputStream, entry.getName(), entry.getLinkName(), entry.getUserName(),
                entry.getUserId(), entry.getGroupName(), entry.getGroupId(), entry.getMode(), entry.getSize());
    } finally {
        inputStream.close();
    }

}

From source file:org.vafer.jdeb.producers.DataProducerPathTemplate.java

public void produce(DataConsumer pReceiver) throws IOException {
    for (String literalPath : literalPaths) {
        TarArchiveEntry entry = new TarArchiveEntry(literalPath, true);
        entry.setUserId(0);/*  w w  w .  ja v a2s .  c o m*/
        entry.setUserName("root");
        entry.setGroupId(0);
        entry.setGroupName("root");
        entry.setMode(TarArchiveEntry.DEFAULT_DIR_MODE);

        entry = map(entry);

        entry.setSize(0);

        pReceiver.onEachDir(entry.getName(), entry.getLinkName(), entry.getUserName(), entry.getUserId(),
                entry.getGroupName(), entry.getGroupId(), entry.getMode(), entry.getSize());
    }
}

From source file:org.vafer.jdeb.producers.Producers.java

/**
 * Forwards tar archive entry entry to a consumer.
 * @param consumer the consumer//  w  ww .j  a v a2  s  .  com
 * @param entry the entry to pass
 * @throws IOException
 */
static void produceDirEntry(final DataConsumer consumer, final TarArchiveEntry entry) throws IOException {
    consumer.onEachDir(entry.getName(), entry.getLinkName(), entry.getUserName(), entry.getUserId(),
            entry.getGroupName(), entry.getGroupId(), entry.getMode(), entry.getSize());
}

From source file:org.vafer.jdeb.producers.Producers.java

/**
 * Feeds input stream to data consumer using metadata from tar entry.
 * @param consumer the consumer// ww  w. ja  v a 2s .  c o  m
 * @param inputStream the stream to feed
 * @param entry the entry to use for metadata
 * @throws IOException on consume error
 */
static void produceInputStreamWithEntry(final DataConsumer consumer, final InputStream inputStream,
        final TarArchiveEntry entry) throws IOException {
    try {
        consumer.onEachFile(inputStream, entry.getName(), entry.getLinkName(), entry.getUserName(),
                entry.getUserId(), entry.getGroupName(), entry.getGroupId(), entry.getMode(), entry.getSize());
    } finally {
        IOUtils.closeQuietly(inputStream);
    }
}