private Pack200CompressorInputStream(final InputStream in, final File f, final Pack200Strategy mode, final Map<String, String> props) throws IOException { originalInput = in; streamBridge = mode.newStreamBridge(); try (final JarOutputStream jarOut = new JarOutputStream(streamBridge)) { final Pack200.Unpacker u = Pack200.newUnpacker(); if (props != null) { u.properties().putAll(props); } if (f == null) { u.unpack(new FilterInputStream(in) { @Override public void close() { // unpack would close this stream but we // want to give the user code more control } }, jarOut); } else { u.unpack(f, jarOut); } } }
/** * {@inheritDoc} */ public void unpack( File source, File destination, Map<String, String> props ) throws IOException { InputStream in = null; JarOutputStream out = null; try { in = new FileInputStream( source ); if ( isGzipped( source ) ) { in = new GZIPInputStream( in ); } in = new BufferedInputStream( in ); out = new JarOutputStream( new BufferedOutputStream( new FileOutputStream( destination ) ) ); Pack200.Unpacker unpacker = Pack200.newUnpacker(); unpacker.properties().putAll( props ); unpacker.unpack( in, out ); } finally { IOUtil.close( in ); IOUtil.close( out ); } }
private Pack200.Unpacker createPack200Unpacker(PackFile packFile) { Pack200.Unpacker unpacker = Pack200.newUnpacker(); Map<String, String> defaultUnpackerProperties = unpacker.properties(); Map<String, String> localPackerProperties = packFile.getPack200Properties(); if (localPackerProperties != null) { defaultUnpackerProperties.putAll(localPackerProperties); } return unpacker; } }
private Pack200CompressorInputStream(final InputStream in, final File f, final Pack200Strategy mode, final Map<String, String> props) throws IOException { originalInput = in; streamBridge = mode.newStreamBridge(); try (final JarOutputStream jarOut = new JarOutputStream(streamBridge)) { final Pack200.Unpacker u = Pack200.newUnpacker(); if (props != null) { u.properties().putAll(props); } if (f == null) { u.unpack(new FilterInputStream(in) { @Override public void close() { // unpack would close this stream but we // want to give the user code more control } }, jarOut); } else { u.unpack(f, jarOut); } } }
private Pack200CompressorInputStream(final InputStream in, final File f, final Pack200Strategy mode, final Map<String, String> props) throws IOException { originalInput = in; streamBridge = mode.newStreamBridge(); try (final JarOutputStream jarOut = new JarOutputStream(streamBridge)) { final Pack200.Unpacker u = Pack200.newUnpacker(); if (props != null) { u.properties().putAll(props); } if (f == null) { u.unpack(new FilterInputStream(in) { @Override public void close() { // unpack would close this stream but we // want to give the user code more control } }, jarOut); } else { u.unpack(f, jarOut); } } }