You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/05/22 06:06:12 UTC
svn commit: r1680992 - in /webservices/axiom/trunk:
modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/
modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/
testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/ t...
Author: veithen
Date: Fri May 22 04:06:11 2015
New Revision: 1680992
URL: http://svn.apache.org/r1680992
Log:
Unify the CloseSensor* and Counting* stream wrappers and define a common interface.
Added:
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedInputStream.java
- copied, changed from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorInputStream.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedOutputStream.java
- copied, changed from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorOutputStream.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedReader.java
- copied, changed from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorReader.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java (with props)
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedWriter.java
- copied, changed from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorWriter.java
Removed:
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorInputStream.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorOutputStream.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorReader.java
webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorWriter.java
Modified:
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithInputStream.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithReader.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/TestBuild.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/sr/TestCloseWithoutCaching.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestWriteTextTo.java
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java Fri May 22 04:06:11 2015
@@ -26,7 +26,7 @@ import java.util.Random;
import org.apache.axiom.blob.WritableBlob;
import org.apache.axiom.blob.WritableBlobFactory;
-import org.apache.axiom.testutils.io.CloseSensorInputStream;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
import org.apache.commons.io.IOUtils;
public class TestReadFrom extends SizeSensitiveWritableBlobTestCase {
@@ -39,7 +39,7 @@ public class TestReadFrom extends SizeSe
Random random = new Random();
byte[] data = new byte[size];
random.nextBytes(data);
- CloseSensorInputStream in = new CloseSensorInputStream(new ByteArrayInputStream(data));
+ InstrumentedInputStream in = new InstrumentedInputStream(new ByteArrayInputStream(data));
assertThat(blob.readFrom(in)).isEqualTo(size);
assertThat(in.isClosed()).isFalse();
InputStream in2 = blob.getInputStream();
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java Fri May 22 04:06:11 2015
@@ -25,7 +25,7 @@ import java.util.Random;
import org.apache.axiom.blob.WritableBlob;
import org.apache.axiom.blob.WritableBlobFactory;
-import org.apache.axiom.testutils.io.CloseSensorOutputStream;
+import org.apache.axiom.testutils.io.InstrumentedOutputStream;
public class TestWriteTo extends SizeSensitiveWritableBlobTestCase {
private final boolean usesReadFromSupport;
@@ -44,7 +44,7 @@ public class TestWriteTo extends SizeSen
out.write(data);
out.close();
ByteArrayOutputStreamWithReadFromSupport baos = new ByteArrayOutputStreamWithReadFromSupport();
- CloseSensorOutputStream closeSensor = new CloseSensorOutputStream(baos);
+ InstrumentedOutputStream closeSensor = new InstrumentedOutputStream(baos);
blob.writeTo(baos);
assertThat(closeSensor.isClosed()).isFalse();
assertThat(baos.toByteArray()).isEqualTo(data);
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java Fri May 22 04:06:11 2015
@@ -23,7 +23,7 @@ import java.io.InputStream;
import javax.xml.stream.XMLStreamReader;
-import org.apache.axiom.testutils.io.CloseSensorInputStream;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
/**
* Tests that {@link XMLStreamReader#close()} doesn't close the underlying {@link InputStream}.
@@ -34,7 +34,7 @@ public class TestCloseInputStream extend
}
protected void runTest() throws Throwable {
- CloseSensorInputStream in = new CloseSensorInputStream(new ByteArrayInputStream("<root/>".getBytes("UTF-8")));
+ InstrumentedInputStream in = new InstrumentedInputStream(new ByteArrayInputStream("<root/>".getBytes("UTF-8")));
XMLStreamReader reader = staxImpl.newNormalizedXMLInputFactory().createXMLStreamReader(in);
reader.close();
assertFalse(in.isClosed());
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java Fri May 22 04:06:11 2015
@@ -23,7 +23,7 @@ import java.io.StringReader;
import javax.xml.stream.XMLStreamReader;
-import org.apache.axiom.testutils.io.CloseSensorReader;
+import org.apache.axiom.testutils.io.InstrumentedReader;
/**
* Tests that {@link XMLStreamReader#close()} doesn't close the underlying {@link Reader}.
@@ -34,7 +34,7 @@ public class TestCloseReader extends Dia
}
protected void runTest() throws Throwable {
- CloseSensorReader in = new CloseSensorReader(new StringReader("<root/>"));
+ InstrumentedReader in = new InstrumentedReader(new StringReader("<root/>"));
XMLStreamReader reader = staxImpl.newNormalizedXMLInputFactory().createXMLStreamReader(in);
reader.close();
assertFalse(in.isClosed());
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithInputStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithInputStream.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithInputStream.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithInputStream.java Fri May 22 04:06:11 2015
@@ -21,7 +21,7 @@ package org.apache.axiom.ts.om.builder;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.testutils.io.CloseSensorInputStream;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
import org.apache.axiom.ts.AxiomTestCase;
import org.apache.axiom.ts.xml.XMLSample;
@@ -31,7 +31,7 @@ public class TestCloseWithInputStream ex
}
protected void runTest() throws Throwable {
- CloseSensorInputStream in = new CloseSensorInputStream(XMLSample.SIMPLE.getAsStream());
+ InstrumentedInputStream in = new InstrumentedInputStream(XMLSample.SIMPLE.getAsStream());
try {
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), in);
builder.getDocument().build();
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithReader.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithReader.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCloseWithReader.java Fri May 22 04:06:11 2015
@@ -23,7 +23,7 @@ import java.io.StringReader;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.testutils.io.CloseSensorReader;
+import org.apache.axiom.testutils.io.InstrumentedReader;
import org.apache.axiom.ts.AxiomTestCase;
public class TestCloseWithReader extends AxiomTestCase {
@@ -32,7 +32,7 @@ public class TestCloseWithReader extends
}
protected void runTest() throws Throwable {
- CloseSensorReader in = new CloseSensorReader(new StringReader("<root><child/></root>"));
+ InstrumentedReader in = new InstrumentedReader(new StringReader("<root><child/></root>"));
try {
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), in);
builder.getDocument().build();
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java Fri May 22 04:06:11 2015
@@ -31,8 +31,8 @@ import org.apache.axiom.om.OMOutputForma
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.util.StAXParserConfiguration;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
import org.apache.axiom.ts.AxiomTestCase;
-import org.apache.commons.io.input.CountingInputStream;
/**
* Tests that the content of the root part of an XOP/MTOM message is not buffered (i.e. read
@@ -60,17 +60,17 @@ public class TestRootPartStreaming exten
orgRoot.serialize(baos, format);
// Parse the message and monitor the number of bytes read
- CountingInputStream in = new CountingInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ InstrumentedInputStream in = new InstrumentedInputStream(new ByteArrayInputStream(baos.toByteArray()));
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(factory,
StAXParserConfiguration.DEFAULT,
new Attachments(in, format.getContentType()));
OMElement root = builder.getDocumentElement();
- int count1 = in.getCount();
+ long count1 = in.getCount();
XMLStreamReader reader = root.getXMLStreamReader(false);
while (reader.hasNext()) {
reader.next();
}
- int count2 = in.getCount();
+ long count2 = in.getCount();
// We expect that after requesting the document element, only a small part (corresponding to
// the size of the parser buffer) should have been read:
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/TestBuild.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/TestBuild.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/TestBuild.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/TestBuild.java Fri May 22 04:06:11 2015
@@ -22,9 +22,9 @@ import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
import org.apache.axiom.ts.AxiomTestCase;
import org.apache.axiom.ts.xml.XMLSample;
-import org.apache.commons.io.input.CountingInputStream;
public class TestBuild extends AxiomTestCase {
public TestBuild(OMMetaFactory metaFactory) {
@@ -33,13 +33,13 @@ public class TestBuild extends AxiomTest
@Override
protected void runTest() throws Throwable {
- CountingInputStream in = new CountingInputStream(XMLSample.LARGE.getAsStream());
+ InstrumentedInputStream in = new InstrumentedInputStream(XMLSample.LARGE.getAsStream());
OMDocument doc = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), in).getDocument();
assertFalse(doc.isComplete());
- int countBeforeBuild = in.getCount();
+ long countBeforeBuild = in.getCount();
doc.build();
assertTrue(doc.isComplete());
- int countAfterBuild = in.getCount();
+ long countAfterBuild = in.getCount();
assertTrue(countAfterBuild > countBeforeBuild);
OMNode node = doc.getFirstOMChild();
while (node != null) {
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/sr/TestCloseWithoutCaching.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/sr/TestCloseWithoutCaching.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/sr/TestCloseWithoutCaching.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/document/sr/TestCloseWithoutCaching.java Fri May 22 04:06:11 2015
@@ -29,8 +29,8 @@ import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.testutils.io.InstrumentedInputStream;
import org.apache.axiom.ts.AxiomTestCase;
-import org.apache.commons.io.input.CountingInputStream;
/**
* Tests the behavior of {@link XMLStreamReader#close()} on the {@link XMLStreamReader} returned by
@@ -52,12 +52,12 @@ public class TestCloseWithoutCaching ext
}
writer.write("</a></root>");
writer.close();
- CountingInputStream in = new CountingInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ InstrumentedInputStream in = new InstrumentedInputStream(new ByteArrayInputStream(baos.toByteArray()));
OMDocument doc = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), in).getDocument();
XMLStreamReader reader = doc.getXMLStreamReaderWithoutCaching();
reader.next();
reader.next();
- int count = in.getCount();
+ long count = in.getCount();
reader.close();
assertEquals(count, in.getCount());
}
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestWriteTextTo.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestWriteTextTo.java?rev=1680992&r1=1680991&r2=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestWriteTextTo.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestWriteTextTo.java Fri May 22 04:06:11 2015
@@ -27,7 +27,7 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMText;
-import org.apache.axiom.testutils.io.CloseSensorWriter;
+import org.apache.axiom.testutils.io.InstrumentedWriter;
import org.apache.axiom.ts.AxiomTestCase;
/**
@@ -45,7 +45,7 @@ public class TestWriteTextTo extends Axi
OMElement element = factory.createOMElement(new QName("a"));
factory.createOMText(element, "test");
StringWriter sw = new StringWriter();
- CloseSensorWriter out = new CloseSensorWriter(sw);
+ InstrumentedWriter out = new InstrumentedWriter(sw);
element.writeTextTo(out, true);
assertEquals(element.getText(), sw.toString());
assertFalse(out.isClosed());
Copied: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedInputStream.java (from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorInputStream.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedInputStream.java?p2=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedInputStream.java&p1=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorInputStream.java&r1=1680148&r2=1680992&rev=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorInputStream.java (original)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedInputStream.java Fri May 22 04:06:11 2015
@@ -24,15 +24,27 @@ import java.io.InputStream;
import org.apache.commons.io.input.ProxyInputStream;
/**
- * {@link InputStream} wrapper that remembers if {@link InputStream#close()} has been called.
+ * {@link InputStream} wrapper that implements {@link InstrumentedStream}.
*/
-public class CloseSensorInputStream extends ProxyInputStream {
+public final class InstrumentedInputStream extends ProxyInputStream implements InstrumentedStream {
+ private long count;
private boolean closed;
- public CloseSensorInputStream(InputStream parent) {
+ public InstrumentedInputStream(InputStream parent) {
super(parent);
}
+ @Override
+ protected void afterRead(int n) {
+ if (n != -1) {
+ count += n;
+ }
+ }
+
+ public long getCount() {
+ return count;
+ }
+
public void close() throws IOException {
closed = true;
super.close();
Copied: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedOutputStream.java (from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorOutputStream.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedOutputStream.java?p2=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedOutputStream.java&p1=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorOutputStream.java&r1=1680148&r2=1680992&rev=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorOutputStream.java (original)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedOutputStream.java Fri May 22 04:06:11 2015
@@ -23,13 +23,26 @@ import java.io.OutputStream;
import org.apache.commons.io.output.ProxyOutputStream;
-public class CloseSensorOutputStream extends ProxyOutputStream {
+/**
+ * {@link OutputStream} wrapper that implements {@link InstrumentedStream}.
+ */
+public final class InstrumentedOutputStream extends ProxyOutputStream implements InstrumentedStream {
+ private long count;
private boolean closed;
- public CloseSensorOutputStream(OutputStream proxy) {
+ public InstrumentedOutputStream(OutputStream proxy) {
super(proxy);
}
+ @Override
+ protected void beforeWrite(int n) {
+ count += n;
+ }
+
+ public long getCount() {
+ return count;
+ }
+
public void close() throws IOException {
closed = true;
super.close();
Copied: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedReader.java (from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorReader.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedReader.java?p2=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedReader.java&p1=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorReader.java&r1=1680148&r2=1680992&rev=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorReader.java (original)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedReader.java Fri May 22 04:06:11 2015
@@ -24,15 +24,27 @@ import java.io.Reader;
import org.apache.commons.io.input.ProxyReader;
/**
- * {@link Reader} wrapper that remembers if {@link Reader#close()} has been called.
+ * {@link Reader} wrapper that implements {@link InstrumentedStream}.
*/
-public class CloseSensorReader extends ProxyReader {
+public final class InstrumentedReader extends ProxyReader implements InstrumentedStream {
+ private long count;
private boolean closed;
- public CloseSensorReader(Reader parent) {
+ public InstrumentedReader(Reader parent) {
super(parent);
}
+ @Override
+ protected void afterRead(int n) {
+ if (n != -1) {
+ count += n;
+ }
+ }
+
+ public long getCount() {
+ return count;
+ }
+
public void close() throws IOException {
closed = true;
super.close();
Added: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java?rev=1680992&view=auto
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java (added)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java Fri May 22 04:06:11 2015
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.testutils.io;
+
+import java.io.Closeable;
+
+/**
+ * Stream that counts the number of bytes/characters read/written and that remembers if
+ * {@link Closeable#close()} has been called.
+ */
+public interface InstrumentedStream extends Closeable {
+ long getCount();
+ boolean isClosed();
+}
Propchange: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedStream.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedWriter.java (from r1680148, webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorWriter.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedWriter.java?p2=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedWriter.java&p1=webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorWriter.java&r1=1680148&r2=1680992&rev=1680992&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/CloseSensorWriter.java (original)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/io/InstrumentedWriter.java Fri May 22 04:06:11 2015
@@ -24,15 +24,25 @@ import java.io.Writer;
import org.apache.commons.io.output.ProxyWriter;
/**
- * {@link Writer} wrapper that remembers if {@link Writer#close()} has been called.
+ * {@link Writer} wrapper that implements {@link InstrumentedStream}.
*/
-public class CloseSensorWriter extends ProxyWriter {
+public final class InstrumentedWriter extends ProxyWriter implements InstrumentedStream {
+ private long count;
private boolean closed;
- public CloseSensorWriter(Writer parent) {
+ public InstrumentedWriter(Writer parent) {
super(parent);
}
+ @Override
+ protected void beforeWrite(int n) {
+ count += n;
+ }
+
+ public long getCount() {
+ return count;
+ }
+
public void close() throws IOException {
closed = true;
super.close();