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 Object implements ExecuteStreamHandler
Copies standard output and error of subprocesses to standard output and error of the parent process.
Since:
Ant 1.2
  • Constructor Details

    • PumpStreamHandler

      public PumpStreamHandler(OutputStream out, OutputStream err, InputStream input, boolean nonBlockingRead)
      Construct a new PumpStreamHandler.
      Parameters:
      out - the output OutputStream, must not be null.
      err - the error OutputStream, must not be null.
      input - the input InputStream.
      nonBlockingRead - set it to true if the input should be read with simulated non blocking IO.
    • PumpStreamHandler

      public PumpStreamHandler(OutputStream out, OutputStream err, InputStream input)
      Construct a new PumpStreamHandler.
      Parameters:
      out - the output OutputStream, must not be null.
      err - the error OutputStream, must not be null.
      input - the input InputStream.
    • PumpStreamHandler

      public PumpStreamHandler(OutputStream out, OutputStream err)
      Construct a new PumpStreamHandler.
      Parameters:
      out - the output OutputStream, must not be null.
      err - the error OutputStream, must not be null.
    • PumpStreamHandler

      public PumpStreamHandler(OutputStream outAndErr)
      Construct a new PumpStreamHandler.
      Parameters:
      outAndErr - the output/error OutputStream, must not be null.
    • PumpStreamHandler

      public PumpStreamHandler()
      Construct a new PumpStreamHandler.
  • Method Details

    • setProcessOutputStream

      public void setProcessOutputStream(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(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(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
    • finish

      protected final void finish(Thread t)
      Waits for a thread to finish while trying to make it finish quicker by stopping the pumper (if the thread is a ThreadWithPumper instance) or interrupting the thread.
      Parameters:
      t - Thread
      Since:
      Ant 1.8.0
    • getErr

      protected OutputStream getErr()
      Get the error stream.
      Returns:
      OutputStream.
    • getOut

      protected OutputStream getOut()
      Get the output stream.
      Returns:
      OutputStream.
    • createProcessOutputPump

      protected void createProcessOutputPump(InputStream is, OutputStream os)
      Create the pump to handle process output.
      Parameters:
      is - the InputStream.
      os - the OutputStream.
    • createProcessErrorPump

      protected void createProcessErrorPump(InputStream is, 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 Thread createPump(InputStream is, 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 Thread createPump(InputStream is, 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 Thread createPump(InputStream is, 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 to true 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