make all CompressorOutputStreams count written bytes
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 @@
<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>
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 @@
* <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 @@
* 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 @@
* @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,
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 @@
* <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 @@
* 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 @@
* @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 @@
* 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;
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 void write(final int b) throws IOException {
if (this.out != null) {
write0(b);
+ count(1);
} else {
throw new IOException("closed");
}
@@ -632,6 +633,7 @@
for (final int hi = offs + len; offs < hi;) {
write0(buf[offs++]);
}
+ count(len);
}
/**
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 @@
@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);
}
/**
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 @@
}
crc.update(buffer, offset, length);
+ count(length);
}
}
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 @@
@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
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 @@
@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);
}
/**