Example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry CpioArchiveEntry

List of usage examples for org.apache.commons.compress.archivers.cpio CpioArchiveEntry CpioArchiveEntry

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry CpioArchiveEntry.

Prototype

public CpioArchiveEntry(final String name) 

Source Link

Document

Creates a CPIOArchiveEntry with a specified name.

Usage

From source file:org.eclipse.packagedrone.utils.rpm.build.PayloadRecorder.java

public Result addFile(final String targetPath, final Path path, final Consumer<CpioArchiveEntry> customizer)
        throws IOException {
    final long size = Files.size(path);

    final CpioArchiveEntry entry = new CpioArchiveEntry(targetPath);
    entry.setSize(size);// ww  w  . j  a va 2 s. c om

    if (customizer != null) {
        customizer.accept(entry);
    }

    this.archiveStream.putArchiveEntry(entry);

    MessageDigest digest;
    try {
        digest = createDigest();
    } catch (final NoSuchAlgorithmException e) {
        throw new IOException(e);
    }

    try (InputStream in = new BufferedInputStream(Files.newInputStream(path))) {
        ByteStreams.copy(new DigestInputStream(in, digest), this.archiveStream);
    }

    this.archiveStream.closeArchiveEntry();

    return new Result(size, digest.digest());
}

From source file:org.eclipse.packagedrone.utils.rpm.build.PayloadRecorder.java

public Result addFile(final String targetPath, final ByteBuffer data,
        final Consumer<CpioArchiveEntry> customizer) throws IOException {
    final long size = data.remaining();

    final CpioArchiveEntry entry = new CpioArchiveEntry(targetPath);
    entry.setSize(size);/*from   www.  j  av  a  2s .c o m*/

    if (customizer != null) {
        customizer.accept(entry);
    }

    this.archiveStream.putArchiveEntry(entry);

    // record digest

    MessageDigest digest;
    try {
        digest = createDigest();
        digest.update(data.slice());
    } catch (final NoSuchAlgorithmException e) {
        throw new IOException(e);
    }

    // write data

    final WritableByteChannel channel = Channels.newChannel(this.archiveStream);
    while (data.hasRemaining()) {
        channel.write(data);
    }

    // close archive entry

    this.archiveStream.closeArchiveEntry();

    return new Result(size, digest.digest());
}

From source file:org.eclipse.packagedrone.utils.rpm.build.PayloadRecorder.java

public Result addDirectory(final String targetPath, final Consumer<CpioArchiveEntry> customizer)
        throws IOException {
    final CpioArchiveEntry entry = new CpioArchiveEntry(targetPath);

    if (customizer != null) {
        customizer.accept(entry);/*from   w w w.  jav a2s  .co m*/
    }

    this.archiveStream.putArchiveEntry(entry);
    this.archiveStream.closeArchiveEntry();

    return new Result(4096, null);
}

From source file:org.eclipse.packagedrone.utils.rpm.build.PayloadRecorder.java

public Result addSymbolicLink(final String targetPath, final String linkTo,
        final Consumer<CpioArchiveEntry> customizer) throws IOException {
    final byte[] bytes = linkTo.getBytes(StandardCharsets.UTF_8);

    final CpioArchiveEntry entry = new CpioArchiveEntry(targetPath);
    entry.setSize(bytes.length);//from   ww  w . java 2  s.  c  o m

    if (customizer != null) {
        customizer.accept(entry);
    }

    this.archiveStream.putArchiveEntry(entry);
    this.archiveStream.write(bytes);
    this.archiveStream.closeArchiveEntry();

    return new Result(bytes.length, null);
}