org.apache.tools.ant.taskdefs
Class PumpStreamHandler

java.lang.Object
  extended by 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

Constructor Summary
PumpStreamHandler()
          Construct a new PumpStreamHandler.
PumpStreamHandler(java.io.OutputStream outAndErr)
          Construct a new PumpStreamHandler.
PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err)
          Construct a new PumpStreamHandler.
PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input)
          Construct a new PumpStreamHandler.
 
Method Summary
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.io.OutputStream getErr()
          Get the error stream.
protected  java.io.OutputStream getOut()
          Get the output stream.
 void setProcessErrorStream(java.io.InputStream is)
          Set the InputStream from which to read the standard error of the process.
 void setProcessInputStream(java.io.OutputStream os)
          Set the OutputStream by means of which input can be sent to the process.
 void setProcessOutputStream(java.io.InputStream is)
          Set the InputStream from which to read the standard output of the process.
 void start()
          Start the Threads.
 void stop()
          Stop pumping the streams.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PumpStreamHandler

public PumpStreamHandler(java.io.OutputStream out,
                         java.io.OutputStream err,
                         java.io.InputStream input)
Construct a new PumpStreamHandler.

Parameters:
out - the output OutputStream.
err - the error OutputStream.
input - the input InputStream.

PumpStreamHandler

public PumpStreamHandler(java.io.OutputStream out,
                         java.io.OutputStream err)
Construct a new PumpStreamHandler.

Parameters:
out - the output OutputStream.
err - the error OutputStream.

PumpStreamHandler

public PumpStreamHandler(java.io.OutputStream outAndErr)
Construct a new PumpStreamHandler.

Parameters:
outAndErr - the output/error OutputStream.

PumpStreamHandler

public PumpStreamHandler()
Construct a new PumpStreamHandler.

Method Detail

setProcessOutputStream

public void setProcessOutputStream(java.io.InputStream is)
Set the InputStream from which to read the standard output of the process.

Specified by:
setProcessOutputStream in interface ExecuteStreamHandler
Parameters:
is - the InputStream.

setProcessErrorStream

public void setProcessErrorStream(java.io.InputStream is)
Set the InputStream from which to read the standard error of the process.

Specified by:
setProcessErrorStream in interface ExecuteStreamHandler
Parameters:
is - the InputStream.

setProcessInputStream

public void setProcessInputStream(java.io.OutputStream os)
Set the OutputStream by means of which input can be sent to the process.

Specified by:
setProcessInputStream in interface ExecuteStreamHandler
Parameters:
os - the OutputStream.

start

public void start()
Start the Threads.

Specified by:
start in interface ExecuteStreamHandler

stop

public void stop()
Stop pumping the streams.

Specified by:
stop in interface ExecuteStreamHandler

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 - the InputStream.
os - the OutputStream.

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.