Package org.apache.tools.ant.taskdefs
Class PumpStreamHandler
java.lang.Object
org.apache.tools.ant.taskdefs.PumpStreamHandler
- All Implemented Interfaces:
ExecuteStreamHandler
- Direct Known Subclasses:
JUnitTask.JUnitLogStreamHandler
,LogStreamHandler
public class PumpStreamHandler extends java.lang.Object implements ExecuteStreamHandler
Copies standard output and error of subprocesses to standard output and
error of the parent process.
- Since:
- Ant 1.2
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
PumpStreamHandler.ThreadWithPumper
Specialized subclass that allows access to the running StreamPumper. -
Constructor Summary
Constructors Constructor Description PumpStreamHandler()
Construct a newPumpStreamHandler
.PumpStreamHandler(java.io.OutputStream outAndErr)
Construct a newPumpStreamHandler
.PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err)
Construct a newPumpStreamHandler
.PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input)
Construct a newPumpStreamHandler
.PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input, boolean nonBlockingRead)
Construct a newPumpStreamHandler
. -
Method Summary
Modifier and Type Method Description protected void
createProcessErrorPump(java.io.InputStream is, java.io.OutputStream os)
Create the pump to handle error output.protected void
createProcessOutputPump(java.io.InputStream is, java.io.OutputStream os)
Create the pump to handle process output.protected java.lang.Thread
createPump(java.io.InputStream is, java.io.OutputStream os)
Creates a stream pumper to copy the given input stream to the given output stream.protected java.lang.Thread
createPump(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted)
Creates a stream pumper to copy the given input stream to the given output stream.protected java.lang.Thread
createPump(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted, boolean nonBlockingIO)
Creates a stream pumper to copy the given input stream to the given output stream.protected void
finish(java.lang.Thread t)
Waits for a thread to finish while trying to make it finish quicker by stopping the pumper (if the thread is aThreadWithPumper
instance) or interrupting the thread.protected java.io.OutputStream
getErr()
Get the error stream.protected java.io.OutputStream
getOut()
Get the output stream.void
setProcessErrorStream(java.io.InputStream is)
Set theInputStream
from which to read the standard error of the process.void
setProcessInputStream(java.io.OutputStream os)
Set theOutputStream
by means of which input can be sent to the process.void
setProcessOutputStream(java.io.InputStream is)
Set theInputStream
from which to read the standard output of the process.void
start()
Start theThread
s.void
stop()
Stop pumping the streams.
-
Constructor Details
-
PumpStreamHandler
public PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input, boolean nonBlockingRead)Construct a newPumpStreamHandler
.- Parameters:
out
- the outputOutputStream
, must not be null.err
- the errorOutputStream
, must not be null.input
- the inputInputStream
.nonBlockingRead
- set it totrue
if the input should be read with simulated non blocking IO.
-
PumpStreamHandler
public PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input)Construct a newPumpStreamHandler
.- Parameters:
out
- the outputOutputStream
, must not be null.err
- the errorOutputStream
, must not be null.input
- the inputInputStream
.
-
PumpStreamHandler
public PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err)Construct a newPumpStreamHandler
.- Parameters:
out
- the outputOutputStream
, must not be null.err
- the errorOutputStream
, must not be null.
-
PumpStreamHandler
public PumpStreamHandler(java.io.OutputStream outAndErr)Construct a newPumpStreamHandler
.- Parameters:
outAndErr
- the output/errorOutputStream
, must not be null.
-
PumpStreamHandler
public PumpStreamHandler()Construct a newPumpStreamHandler
.
-
-
Method Details
-
setProcessOutputStream
public void setProcessOutputStream(java.io.InputStream is)Set theInputStream
from which to read the standard output of the process.- Specified by:
setProcessOutputStream
in interfaceExecuteStreamHandler
- Parameters:
is
- theInputStream
.
-
setProcessErrorStream
public void setProcessErrorStream(java.io.InputStream is)Set theInputStream
from which to read the standard error of the process.- Specified by:
setProcessErrorStream
in interfaceExecuteStreamHandler
- Parameters:
is
- theInputStream
.
-
setProcessInputStream
public void setProcessInputStream(java.io.OutputStream os)Set theOutputStream
by means of which input can be sent to the process.- Specified by:
setProcessInputStream
in interfaceExecuteStreamHandler
- Parameters:
os
- theOutputStream
.
-
start
public void start()Start theThread
s.- Specified by:
start
in interfaceExecuteStreamHandler
-
stop
public void stop()Stop pumping the streams.- Specified by:
stop
in interfaceExecuteStreamHandler
-
finish
protected final void finish(java.lang.Thread t)Waits for a thread to finish while trying to make it finish quicker by stopping the pumper (if the thread is aThreadWithPumper
instance) or interrupting the thread.- Parameters:
t
- Thread- Since:
- Ant 1.8.0
-
getErr
protected java.io.OutputStream getErr()Get the error stream.- Returns:
OutputStream
.
-
getOut
protected java.io.OutputStream getOut()Get the output stream.- Returns:
OutputStream
.
-
createProcessOutputPump
protected void createProcessOutputPump(java.io.InputStream is, java.io.OutputStream os)Create the pump to handle process output.- Parameters:
is
- theInputStream
.os
- theOutputStream
.
-
createProcessErrorPump
protected void createProcessErrorPump(java.io.InputStream is, java.io.OutputStream os)Create the pump to handle error output.- Parameters:
is
- the input stream to copy from.os
- the output stream to copy to.
-
createPump
protected java.lang.Thread createPump(java.io.InputStream is, java.io.OutputStream os)Creates a stream pumper to copy the given input stream to the given output stream.- Parameters:
is
- the input stream to copy from.os
- the output stream to copy to.- Returns:
- a thread object that does the pumping.
-
createPump
protected java.lang.Thread createPump(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted)Creates a stream pumper to copy the given input stream to the given output stream.- Parameters:
is
- the input stream to copy from.os
- the output stream to copy to.closeWhenExhausted
- if true close the inputstream.- Returns:
- a thread object that does the pumping, subclasses
should return an instance of
ThreadWithPumper
.
-
createPump
protected java.lang.Thread createPump(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted, boolean nonBlockingIO)Creates a stream pumper to copy the given input stream to the given output stream.- Parameters:
is
- the input stream to copy from.os
- the output stream to copy to.closeWhenExhausted
- if true close the inputstream.nonBlockingIO
- set it totrue
to use simulated non blocking IO.- Returns:
- a thread object that does the pumping, subclasses
should return an instance of
ThreadWithPumper
. - Since:
- Ant 1.8.2
-