mbenson 2004/06/23 12:30:14 Added: src/etc/testcases/taskdefs/exec Tag: ANT_16_BRANCH apply.xml parrot.sh src/etc/testcases/taskdefs/exec/expected Tag: ANT_16_BRANCH utf-8 src/etc/testcases/taskdefs/exec/input Tag: ANT_16_BRANCH iso8859-1 src/etc/testcases/types Tag: ANT_16_BRANCH redirector.xml src/main/org/apache/tools/ant/types Tag: ANT_16_BRANCH RedirectorElement.java src/main/org/apache/tools/ant/util Tag: ANT_16_BRANCH ConcatFileInputStream.java LeadPipeInputStream.java OutputStreamFunneler.java ReaderInputStream.java src/testcases/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH ExecuteOnTest.java src/testcases/org/apache/tools/ant/types Tag: ANT_16_BRANCH RedirectorElementTest.java Log: New files for <redirector> merge. Revision Changes Path No revision No revision 1.3.2.1 +0 -0 ant/src/etc/testcases/taskdefs/exec/apply.xml Index: apply.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/exec/apply.xml,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -r1.3 -r1.3.2.1 1.1.2.1 +0 -0 ant/src/etc/testcases/taskdefs/exec/parrot.sh Index: parrot.sh =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/exec/parrot.sh,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 No revision No revision 1.1.2.1 +0 -0 ant/src/etc/testcases/taskdefs/exec/expected/utf-8 <<Binary file>> No revision No revision 1.1.2.1 +0 -0 ant/src/etc/testcases/taskdefs/exec/input/iso8859-1 <<Binary file>> No revision No revision 1.1.2.1 +0 -0 ant/src/etc/testcases/types/redirector.xml Index: redirector.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/types/redirector.xml,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 No revision No revision 1.2.2.1 +0 -0 ant/src/main/org/apache/tools/ant/types/RedirectorElement.java Index: RedirectorElement.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/RedirectorElement.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 No revision No revision 1.1.2.1 +0 -0 ant/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java Index: ConcatFileInputStream.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 1.1.2.1 +48 -4 ant/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java Index: LeadPipeInputStream.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 --- LeadPipeInputStream.java 27 Mar 2004 21:22:58 -0000 1.1 +++ LeadPipeInputStream.java 23 Jun 2004 19:30:14 -0000 1.1.2.1 @@ -27,6 +27,7 @@ /** * Special <CODE>PipedInputStream</CODE> that will not die * when the writing <CODE>Thread</CODE> is no longer alive. + * @since Ant 1.6.2 */ public class LeadPipeInputStream extends PipedInputStream { private Task managingTask; @@ -39,14 +40,36 @@ } /** + * Construct a new <CODE>LeadPipeInputStream</CODE> + * with the specified buffer size. + * @param size the size of the circular buffer. + */ + public LeadPipeInputStream(int size) { + super(); + setBufferSize(size); + } + + /** * Construct a new <CODE>LeadPipeInputStream</CODE> to pull * from the specified <CODE>PipedOutputStream</CODE>. - * @param src the <CODE>PipedOutputStream</CODE> source. + * @param src the <CODE>PipedOutputStream</CODE> source. */ public LeadPipeInputStream(PipedOutputStream src) throws IOException { super(src); } + /** + * Construct a new <CODE>LeadPipeInputStream</CODE> to pull + * from the specified <CODE>PipedOutputStream</CODE>, using a + * circular buffer of the specified size. + * @param src the <CODE>PipedOutputStream</CODE> source. + * @param size the size of the circular buffer. + */ + public LeadPipeInputStream(PipedOutputStream src, int size) throws IOException { + super(src); + setBufferSize(size); + } + //inherit doc public synchronized int read() throws IOException { int result = -1; @@ -54,9 +77,8 @@ result = super.read(); } catch (IOException eyeOhEx) { if ("write end dead".equalsIgnoreCase(eyeOhEx.getMessage())) { - if (super.in > 0 && super.out < super.buffer.length - && super.out > super.in) { - result = super.buffer[super.out++] & 0xFF; + if (in > 0 && out < buffer.length && out > in) { + result = buffer[out++] & 0xFF; } } else { log("error at LeadPipeInputStream.read(): " @@ -64,6 +86,28 @@ } } return result; + } + + /** + * Set the size of the buffer. + * @param size the new buffer size. Ignored if <= current size. + */ + public synchronized void setBufferSize(int size) { + if (size > buffer.length) { + byte[] newBuffer = new byte[size]; + if (in >= 0) { + if (in > out) { + System.arraycopy(buffer, out, newBuffer, out, in - out); + } else { + int outlen = buffer.length - out; + System.arraycopy(buffer, out, newBuffer, 0, outlen); + System.arraycopy(buffer, 0, newBuffer, outlen, in); + in+= outlen; + out = 0; + } + } + buffer = newBuffer; + } } /** 1.1.2.1 +0 -0 ant/src/main/org/apache/tools/ant/util/OutputStreamFunneler.java Index: OutputStreamFunneler.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/OutputStreamFunneler.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 1.2.2.1 +0 -0 ant/src/main/org/apache/tools/ant/util/ReaderInputStream.java Index: ReaderInputStream.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/ReaderInputStream.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 No revision No revision 1.6.2.1 +0 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/ExecuteOnTest.java Index: ExecuteOnTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/ExecuteOnTest.java,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -u -r1.6 -r1.6.2.1 No revision No revision 1.1.2.1 +0 -0 ant/src/testcases/org/apache/tools/ant/types/RedirectorElementTest.java Index: RedirectorElementTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/types/RedirectorElementTest.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]