Package org.codehaus.groovy.runtime
Class ProcessGroovyMethods
java.lang.Object
org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
org.codehaus.groovy.runtime.ProcessGroovyMethods
This class defines new groovy methods which appear on normal JDK
classes related to process management.
Static methods are used with the first parameter being the destination class,
i.e.
public static String reverse(String self)
provides a reverse()
method for String
.
NOTE: While this class contains many 'public' static methods, it is primarily regarded as an internal class (its internal package name suggests this also). We value backwards compatibility of these methods when used within Groovy but value less backwards compatibility at the Java method call level. I.e. future versions of Groovy may remove or move a method call in this file but would normally aim to keep the method available from within Groovy.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
A Runnable which waits for a process to complete together with a notification scheme allowing another thread to wait a maximum number of seconds for the process to complete before killing it.Nested classes/interfaces inherited from class org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
DefaultGroovyMethodsSupport.RangeInfo
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Thread
consumeProcessErrorStream
(Process self, OutputStream err) Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer.static Thread
consumeProcessErrorStream
(Process self, Appendable error) Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer.static void
consumeProcessOutput
(Process self) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static void
consumeProcessOutput
(Process self, OutputStream output, OutputStream error) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static void
consumeProcessOutput
(Process self, Appendable output, Appendable error) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static Thread
consumeProcessOutputStream
(Process self, OutputStream output) Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer.static Thread
consumeProcessOutputStream
(Process self, Appendable output) Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer.static InputStream
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.static InputStream
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.static OutputStream
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.static String
Read the text of the output stream of the Process.static OutputStream
Overloads the left shift operator to provide an append mechanism to pipe into a Processstatic Writer
Overloads the left shift operator (<<) to provide an append mechanism to pipe data to a Process.static Process
Overrides the or operator to allow one Process to asynchronously pipe data to another Process.static Process
Allows one Process to asynchronously pipe data to another Process.static void
waitForOrKill
(Process self, long numberOfMillis) Wait for the process to finish during a certain amount of time, otherwise stops the process.static void
waitForProcessOutput
(Process self) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static void
waitForProcessOutput
(Process self, OutputStream output, OutputStream error) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static void
waitForProcessOutput
(Process self, Appendable output, Appendable error) Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer.static void
withOutputStream
(Process self, Closure closure) Creates a new buffered OutputStream as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.static void
withWriter
(Process self, Closure closure) Creates a new BufferedWriter as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.Methods inherited from class org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders
-
Constructor Details
-
ProcessGroovyMethods
public ProcessGroovyMethods()
-
-
Method Details
-
getIn
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.- Parameters:
self
- a Process instance- Returns:
- the InputStream for the process
- Since:
- 1.0
-
getText
Read the text of the output stream of the Process.- Parameters:
self
- a Process instance- Returns:
- the text of the output
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
getErr
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.- Parameters:
self
- a Process instance- Returns:
- the error InputStream for the process
- Since:
- 1.0
-
getOut
An alias method so that a process appears similar to System.out, System.in, System.err; you can use process.in, process.out, process.err in a similar fashion.- Parameters:
self
- a Process instance- Returns:
- the OutputStream for the process
- Since:
- 1.0
-
leftShift
Overloads the left shift operator (<<) to provide an append mechanism to pipe data to a Process.- Parameters:
self
- a Process instancevalue
- a value to append- Returns:
- a Writer
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
leftShift
Overloads the left shift operator to provide an append mechanism to pipe into a Process- Parameters:
self
- a Process instancevalue
- data to append- Returns:
- an OutputStream
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
waitForOrKill
Wait for the process to finish during a certain amount of time, otherwise stops the process.- Parameters:
self
- a ProcessnumberOfMillis
- the number of milliseconds to wait before stopping the process- Since:
- 1.0
-
consumeProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The stream data is thrown away but blocking due to a full output buffer is avoided. Use this method if you don't care about the standard or error output and just want the process to run silently - use carefully however, because since the stream data is thrown away, it might be difficult to track down when something goes wrong. For this, two Threads are started, so this method will return immediately.- Parameters:
self
- a Process- Since:
- 1.0
-
consumeProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. For this, two Threads are started, so this method will return immediately.- Parameters:
self
- a Processoutput
- an Appendable to capture the process stdouterror
- an Appendable to capture the process stderr- Since:
- 1.7.5
-
consumeProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. For this, two Threads are started, so this method will return immediately.- Parameters:
self
- a Processoutput
- an OutputStream to capture the process stdouterror
- an OutputStream to capture the process stderr- Since:
- 1.5.2
-
waitForProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The stream data is thrown away but blocking due to a full output buffer is avoided. Use this method if you don't care about the standard or error output and just want the process to run silently - use carefully however, because since the stream data is thrown away, it might be difficult to track down when something goes wrong. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the output and error streams are closed.- Parameters:
self
- a Process- Since:
- 1.6.5
-
waitForProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the output and error streams are closed.- Parameters:
self
- a Processoutput
- an Appendable to capture the process stdouterror
- an Appendable to capture the process stderr- Since:
- 1.7.5
-
waitForProcessOutput
Gets the output and error streams from a process and reads them to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. For this, two Threads are started, but join()ed, so we wait. As implied by the waitFor... name, we also wait until we finish as well. Finally, the output and error streams are closed.- Parameters:
self
- a Processoutput
- an OutputStream to capture the process stdouterror
- an OutputStream to capture the process stderr- Since:
- 1.6.5
-
consumeProcessErrorStream
Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer. The processed stream data is appended to the supplied OutputStream. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processerr
- an OutputStream to capture the process stderr- Returns:
- the Thread
- Since:
- 1.5.2
-
consumeProcessErrorStream
Gets the error stream from a process and reads it to keep the process from blocking due to a full buffer. The processed stream data is appended to the supplied Appendable. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processerror
- an Appendable to capture the process stderr- Returns:
- the Thread
- Since:
- 1.7.5
-
consumeProcessOutputStream
Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied Appendable. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processoutput
- an Appendable to capture the process stdout- Returns:
- the Thread
- Since:
- 1.7.5
-
consumeProcessOutputStream
Gets the output stream from a process and reads it to keep the process from blocking due to a full output buffer. The processed stream data is appended to the supplied OutputStream. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processoutput
- an OutputStream to capture the process stdout- Returns:
- the Thread
- Since:
- 1.5.2
-
withWriter
Creates a new BufferedWriter as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processclosure
- a closure- Since:
- 1.5.2
-
withOutputStream
Creates a new buffered OutputStream as stdin for this process, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. A new Thread is started, so this method will return immediately.- Parameters:
self
- a Processclosure
- a closure- Since:
- 1.5.2
-
pipeTo
Allows one Process to asynchronously pipe data to another Process.- Parameters:
left
- a Process instanceright
- a Process to pipe output to- Returns:
- the second Process to allow chaining
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
-
or
Overrides the or operator to allow one Process to asynchronously pipe data to another Process.- Parameters:
left
- a Process instanceright
- a Process to pipe output to- Returns:
- the second Process to allow chaining
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.1
-