Class PumpStreamHandler

java.lang.Object
org.apache.commons.exec.PumpStreamHandler
All Implemented Interfaces:
ExecuteStreamHandler

public class PumpStreamHandler extends Object implements ExecuteStreamHandler
Copies standard output and error of sub-processes to standard output and error of the parent process. If output or error stream are set to null, any feedback from that stream will be lost.
  • Constructor Details

    • PumpStreamHandler

      public PumpStreamHandler()
      Construct a new PumpStreamHandler.
    • PumpStreamHandler

      public PumpStreamHandler(OutputStream outAndErr)
      Construct a new PumpStreamHandler.
      Parameters:
      outAndErr - the output/error OutputStream.
    • PumpStreamHandler

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

      public PumpStreamHandler(OutputStream out, OutputStream err, InputStream input)
      Construct a new PumpStreamHandler.
      Parameters:
      out - the output OutputStream.
      err - the error OutputStream.
      input - the input InputStream.
  • Method Details

    • setStopTimeout

      public void setStopTimeout(long timeout)
      Set maximum time to wait until output streams are exchausted when stop() was called.
      Parameters:
      timeout - timeout in milliseconds or zero to wait forever (default)
    • 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() throws IOException
      Stop pumping the streams. When a timeout is specified it it is not guaranteed that the pumper threads are cleanly terminated.
      Specified by:
      stop in interface ExecuteStreamHandler
      Throws:
      IOException - thrown when an I/O exception occurs.