List of usage examples for org.apache.commons.compress.archivers.cpio CpioArchiveEntry setSize
public void setSize(final long size)
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); if (customizer != null) { customizer.accept(entry);//from w ww . j ava2s .c o m } 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); if (customizer != null) { customizer.accept(entry);//from w ww . j a va2s . co m } 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 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); if (customizer != null) { customizer.accept(entry);// w w w .j ava 2 s . co m } this.archiveStream.putArchiveEntry(entry); this.archiveStream.write(bytes); this.archiveStream.closeArchiveEntry(); return new Result(bytes.length, null); }