Repository: commons-compress Updated Branches: refs/heads/COMPRESS-207 ffc026d06 -> e848f8053
make all CompressorOutputStreams count written bytes Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/e848f805 Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/e848f805 Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/e848f805 Branch: refs/heads/COMPRESS-207 Commit: e848f805373f8cda5e7e3ba6df7a9fb8b685653b Parents: ffc026d Author: Stefan Bodewig <bode...@apache.org> Authored: Sun Apr 10 06:19:05 2016 +0200 Committer: Stefan Bodewig <bode...@apache.org> Committed: Sun Apr 10 06:22:25 2016 +0200 ---------------------------------------------------------------------- src/changes/changes.xml | 4 ++++ .../commons/compress/compressors/CompressorInputStream.java | 3 +++ .../commons/compress/compressors/CompressorOutputStream.java | 7 ++++++- .../compressors/bzip2/BZip2CompressorOutputStream.java | 2 ++ .../compressors/deflate/DeflateCompressorOutputStream.java | 2 ++ .../compress/compressors/gzip/GzipCompressorOutputStream.java | 1 + .../compressors/pack200/Pack200CompressorOutputStream.java | 3 +++ .../compress/compressors/xz/XZCompressorOutputStream.java | 2 ++ 8 files changed, 23 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 2e0dfc2..12538fd 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -44,6 +44,10 @@ The <action> type attribute can be add,update,fix,remove. <body> <release version="1.12" date="not released, yet" description="Release 1.12 - API compatible to 1.11 but requires Java6 at runtime"> + <action type="add" date="2016-04-10"> + The CompressorOutputStreams now provide a count of the + uncompressed bytes written to the stream. + </action> <action issue="COMPRESS-349" type="update" date="2016-04-09" dev="ggregory"> Update requirement from Java 5 to 6. </action> http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java b/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java index 64c4dfa..06e9c45 100644 --- a/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java @@ -88,6 +88,7 @@ public abstract class CompressorInputStream extends InputStream { * <p>Not all streams support progress notifications.</p> * * @param l the listener to add + * @since 1.12 */ public void addCompressionProgressListener(CompressionProgressListener l) { listeners.add(l); @@ -97,6 +98,7 @@ public abstract class CompressorInputStream extends InputStream { * Removes a listener that is notified of decompression progress. * * @param l the listener to remove + * @since 1.12 */ public void removeCompressionProgressListener(CompressionProgressListener l) { listeners.remove(l); @@ -109,6 +111,7 @@ public abstract class CompressorInputStream extends InputStream { * @param streamNumer number of the stream that is getting * processed now * @param compressedBytesRead number of compressed bytes read + * @since 1.12 */ protected void fireProgress(int blockNumber, int streamNumber, long compressedBytesRead) { CompressionProgressEvent e = new CompressionProgressEvent(this, blockNumber, streamNumber, http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/CompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/CompressorOutputStream.java index 28440e0..8b6ad74 100644 --- a/src/main/java/org/apache/commons/compress/compressors/CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/CompressorOutputStream.java @@ -34,6 +34,7 @@ public abstract class CompressorOutputStream extends OutputStream { * <p>Not all streams support progress notifications.</p> * * @param l the listener to add + * @since 1.12 */ public void addCompressionProgressListener(CompressionProgressListener l) { listeners.add(l); @@ -43,6 +44,7 @@ public abstract class CompressorOutputStream extends OutputStream { * Removes a listener that is notified of compression progress. * * @param l the listener to remove + * @since 1.12 */ public void removeCompressionProgressListener(CompressionProgressListener l) { listeners.remove(l); @@ -55,6 +57,7 @@ public abstract class CompressorOutputStream extends OutputStream { * @param streamNumer number of the stream that is getting * processed now * @param compressedBytesWritten number of compressed bytes written + * @since 1.12 */ protected void fireProgress(int blockNumber, int streamNumber, long compressedBytesWritten) { CompressionProgressEvent e = new CompressionProgressEvent(this, blockNumber, streamNumber, @@ -72,14 +75,16 @@ public abstract class CompressorOutputStream extends OutputStream { * Increments the counter of already written bytes. * * @param written the number of bytes written + * @since 1.12 */ protected void count(long written) { bytesWritten += written; } /** - * Returns the current number of bytes written from this stream. + * Returns the current number of bytes written to this stream. * @return the number of written bytes + * @since 1.12 */ public long getBytesWritten() { return bytesWritten; http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java index 9de51d4..22b38f9 100644 --- a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java @@ -394,6 +394,7 @@ public class BZip2CompressorOutputStream extends CompressorOutputStream public void write(final int b) throws IOException { if (this.out != null) { write0(b); + count(1); } else { throw new IOException("closed"); } @@ -632,6 +633,7 @@ public class BZip2CompressorOutputStream extends CompressorOutputStream for (final int hi = offs + len; offs < hi;) { write0(buf[offs++]); } + count(len); } /** http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java index a315605..e417e5e 100644 --- a/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java @@ -57,11 +57,13 @@ public class DeflateCompressorOutputStream extends CompressorOutputStream { @Override public void write(final int b) throws IOException { out.write(b); + count(1); } @Override public void write(final byte[] buf, final int off, final int len) throws IOException { out.write(buf, off, len); + count(len); } /** http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStream.java index af79210..2f5e69e 100644 --- a/src/main/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStream.java @@ -163,6 +163,7 @@ public class GzipCompressorOutputStream extends CompressorOutputStream { } crc.update(buffer, offset, length); + count(length); } } http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java index ca27100..48ff132 100644 --- a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java @@ -101,16 +101,19 @@ public class Pack200CompressorOutputStream extends CompressorOutputStream { @Override public void write(final int b) throws IOException { streamBridge.write(b); + count(1); } @Override public void write(final byte[] b) throws IOException { streamBridge.write(b); + count(b.length); } @Override public void write(final byte[] b, final int from, final int length) throws IOException { streamBridge.write(b, from, length); + count(length); } @Override http://git-wip-us.apache.org/repos/asf/commons-compress/blob/e848f805/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorOutputStream.java index 6e9b70e..0aa9322 100644 --- a/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorOutputStream.java @@ -67,11 +67,13 @@ public class XZCompressorOutputStream extends CompressorOutputStream { @Override public void write(final int b) throws IOException { out.write(b); + count(1); } @Override public void write(final byte[] buf, final int off, final int len) throws IOException { out.write(buf, off, len); + count(len); } /**