Class PumpStreamHandler

    • 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 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.
      PumpStreamHandler​(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input, boolean nonBlockingRead)
      Construct a new PumpStreamHandler.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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 a ThreadWithPumper 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 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,
                                 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​(java.io.OutputStream out,
                                 java.io.OutputStream err,
                                 java.io.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​(java.io.OutputStream out,
                                 java.io.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​(java.io.OutputStream outAndErr)
        Construct a new PumpStreamHandler.
        Parameters:
        outAndErr - the output/error OutputStream, must not be null.
      • 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.
      • 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 a ThreadWithPumper 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 - 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, 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 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