You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by kr...@apache.org on 2014/12/18 21:58:00 UTC
svn commit: r1646532 - in /commons/proper/compress/trunk/src:
main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
test/java/org/apache/commons/compress/archivers/ZipTestCase.java
Author: krosenvold
Date: Thu Dec 18 20:58:00 2014
New Revision: 1646532
URL: http://svn.apache.org/r1646532
Log:
COMPRESS-296 Parallel compression. Add support for cloning ZipArchiveOutputStream
With these changes it is possible to realize parallel compression. There is one more class coming that coordinates it all
Modified:
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java
Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java?rev=1646532&r1=1646531&r2=1646532&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java Thu Dec 18 20:58:00 2014
@@ -505,6 +505,24 @@ public class ZipArchiveOutputStream exte
}
/**
+ * Make a copy of this stream with all its settings, but point to a new file.
+ * Used for scatter/gather operations to make several streams from a user-supplied master.
+ *
+ * @param newFile The file to use for the copy of this stream
+ * @return A copy of this stream
+ */
+ public ZipArchiveOutputStream cloneWith(File newFile) throws IOException {
+ ZipArchiveOutputStream zos = new ZipArchiveOutputStream(newFile);
+ zos.setCreateUnicodeExtraFields(createUnicodeExtraFields);
+ zos.setMethod(method);
+ zos.setEncoding(encoding);
+ zos.setFallbackToUTF8(fallbackToUTF8);
+ zos.setUseLanguageEncodingFlag(useUTF8Flag);
+ zos.setUseZip64(zip64Mode);
+ return zos;
+ }
+
+ /**
* Ensures all bytes sent to the deflater are written to the stream.
*/
private void flushDeflater() throws IOException {
Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java?rev=1646532&r1=1646531&r2=1646532&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java (original)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java Thu Dec 18 20:58:00 2014
@@ -294,6 +294,18 @@ public final class ZipTestCase extends A
};
+ public void testCloneZipOutputStream( ) throws IOException {
+ File tempDir = createTempDir();
+ File fred = new File(tempDir, "fred");
+ ZipArchiveOutputStream zipArchiveOutputStream = new ZipArchiveOutputStream(fred);
+ File frank = new File(tempDir, "frank");
+ ZipArchiveOutputStream actual = zipArchiveOutputStream.cloneWith(frank);
+ zipArchiveOutputStream.close();
+ actual.close();
+ assertTrue( fred.exists());
+ assertTrue( frank.exists());
+ }
+
public void testCopyRawEntriesFromFile
()
throws IOException {