throw new IllegalArgumentException("Method must be set on zipArchiveEntry: " + zipArchiveEntry); final ZipArchiveEntryRequest zipArchiveEntryRequest = createZipArchiveEntryRequest(zipArchiveEntry, source); return new Callable<Object>() { @Override
/** * Create a ZipArchiveEntryRequest * @param zipArchiveEntry The entry to use * @param payloadSupplier The payload that will be added to the zip entry. * @return The newly created request */ public static ZipArchiveEntryRequest createZipArchiveEntryRequest(final ZipArchiveEntry zipArchiveEntry, final InputStreamSupplier payloadSupplier) { return new ZipArchiveEntryRequest(zipArchiveEntry, payloadSupplier); }
/** * Add an archive entry to this scatter stream. * * @param zipArchiveEntryRequest The entry to write. * @throws IOException If writing fails */ public void addArchiveEntry(final ZipArchiveEntryRequest zipArchiveEntryRequest) throws IOException { try (final InputStream payloadStream = zipArchiveEntryRequest.getPayloadStream()) { streamCompressor.deflate(payloadStream, zipArchiveEntryRequest.getMethod()); } items.add(new CompressedEntry(zipArchiveEntryRequest, streamCompressor.getCrc32(), streamCompressor.getBytesWrittenForLastEntry(), streamCompressor.getBytesRead())); }
/** * Update the original {@link ZipArchiveEntry} with sizes/crc * Do not use this methods from threads that did not create the instance itself ! * @return the zipArchiveEntry that is basis for this request */ public ZipArchiveEntry transferToArchiveEntry(){ final ZipArchiveEntry entry = zipArchiveEntryRequest.getZipArchiveEntry(); entry.setCompressedSize(compressedSize); entry.setSize(size); entry.setCrc(crc); entry.setMethod(zipArchiveEntryRequest.getMethod()); return entry; } }
/** * Update the original {@link ZipArchiveEntry} with sizes/crc * Do not use this methods from threads that did not create the instance itself ! * @return the zipArchiveEntry that is basis for this request */ public ZipArchiveEntry transferToArchiveEntry(){ final ZipArchiveEntry entry = zipArchiveEntryRequest.getZipArchiveEntry(); entry.setCompressedSize(compressedSize); entry.setSize(size); entry.setCrc(crc); entry.setMethod(zipArchiveEntryRequest.getMethod()); return entry; } }
private ZipArchiveEntryRequest createEntry( final ZipArchiveEntry zipArchiveEntry, final InputStreamSupplier inputStreamSupplier ) throws IOException { // if we re-compress the zip files there is no need to look at the input stream if ( compressAddedZips ) { return createZipArchiveEntryRequest( zipArchiveEntry, inputStreamSupplier ); } // otherwise we should inspect the first four bites to see if the input stream is zip file or not InputStream is = inputStreamSupplier.get(); byte[] header = new byte[4]; try { int read = is.read( header ); int compressionMethod = zipArchiveEntry.getMethod(); if ( isZipHeader( header ) ) { compressionMethod = ZipEntry.STORED; } zipArchiveEntry.setMethod( compressionMethod ); return createZipArchiveEntryRequest( zipArchiveEntry, prependBytesToStream( header, read, is ) ); } catch ( IOException e ) { IOUtil.close( is ); throw e; } }
/** * Add an archive entry to this scatter stream. * * @param zipArchiveEntryRequest The entry to write. * @throws IOException If writing fails */ public void addArchiveEntry(final ZipArchiveEntryRequest zipArchiveEntryRequest) throws IOException { try (final InputStream payloadStream = zipArchiveEntryRequest.getPayloadStream()) { streamCompressor.deflate(payloadStream, zipArchiveEntryRequest.getMethod()); } items.add(new CompressedEntry(zipArchiveEntryRequest, streamCompressor.getCrc32(), streamCompressor.getBytesWrittenForLastEntry(), streamCompressor.getBytesRead())); }
/** * Create a ZipArchiveEntryRequest * @param zipArchiveEntry The entry to use * @param payloadSupplier The payload that will be added to the zip entry. * @return The newly created request */ public static ZipArchiveEntryRequest createZipArchiveEntryRequest(final ZipArchiveEntry zipArchiveEntry, final InputStreamSupplier payloadSupplier) { return new ZipArchiveEntryRequest(zipArchiveEntry, payloadSupplier); }
directories.addArchiveEntry( createZipArchiveEntryRequest( zipArchiveEntry, createInputStreamSupplier( payload ) ) ); metaInfDir.addArchiveEntry( createZipArchiveEntryRequest( zipArchiveEntry, createInputStreamSupplier( payload ) ) ); manifest.addArchiveEntry( createZipArchiveEntryRequest( zipArchiveEntry, createInputStreamSupplier( payload ) ) );
throw new IllegalArgumentException("Method must be set on zipArchiveEntry: " + zipArchiveEntry); final ZipArchiveEntryRequest zipArchiveEntryRequest = createZipArchiveEntryRequest(zipArchiveEntry, source); return new Callable<Object>() { @Override
public void addEntry(ZipArchiveEntry zipArchiveEntry, InputStreamSupplier streamSupplier) throws IOException { if (zipArchiveEntry.isDirectory() && !zipArchiveEntry.isUnixSymlink()) dirs.addArchiveEntry(ZipArchiveEntryRequest.createZipArchiveEntryRequest(zipArchiveEntry, streamSupplier)); else scatterZipCreator.addArchiveEntry(zipArchiveEntry, streamSupplier); }