public class ProcessInstanceBuilder extends Object
| Constructor and Description |
|---|
ProcessInstanceBuilder(SpongeEngine engine,
ProcessConfiguration configuration) |
ProcessInstanceBuilder(SpongeEngine engine,
String executable)
Creates a new process instance builder.
|
| Modifier and Type | Method and Description |
|---|---|
ProcessInstanceBuilder |
arguments(List<String> arguments)
Adds the process arguments, ignoring
null elements. |
ProcessInstanceBuilder |
arguments(String... arguments)
Adds the process arguments.
|
ProcessInstance |
build()
Builds the process instance but doesn't run it.
|
ProcessInstanceBuilder |
charset(Charset charset)
Sets the charset of the subprocess streams used if the redirect type is STRING.
|
ProcessInstanceBuilder |
env(Map<String,String> env)
Adds the environment variables.
|
ProcessInstanceBuilder |
env(String name,
String value)
Adds the environment variable.
|
ProcessInstanceBuilder |
errorAsConsumer()
A convenience method to set the process error redirect type
CONSUMER. |
ProcessInstanceBuilder |
errorAsConsumer(Consumer<String> errorLineConsumer)
A convenience method to set the process error redirect type
CONSUMER. |
ProcessInstanceBuilder |
errorAsException()
A convenience method to set the process error redirect type
EXCEPTION. |
ProcessInstanceBuilder |
errorAsFile(String errorFile)
A convenience method to set the process error redirect type
FILE. |
ProcessInstanceBuilder |
errorAsInherit()
A convenience method to set the process error redirect type
INHERIT. |
ProcessInstanceBuilder |
errorAsString()
A convenience method to set the process error redirect type
STRING. |
ProcessInstanceBuilder |
errorLoggingConsumer(BiConsumer<org.slf4j.Logger,String> errorLoggingConsumer)
The logging consumer for the process error output.
|
ProcessInstanceBuilder |
errorRedirect(ErrorRedirect errorRedirect)
Sets the error output redirect type.
|
ProcessInstanceBuilder |
exceptionOnExitCode(boolean exceptionOnExitCode)
If
true, throws exception if the process exit code is not 0. |
ProcessConfiguration |
getConfiguration()
Returns the process configuration.
|
ProcessInstanceBuilder |
inheritIo()
Sets inherit I/O.
|
ProcessInstanceBuilder |
inputAsBinary(byte[] inputBinary)
A convenience method to set the input redirect type
BINARY. |
ProcessInstanceBuilder |
inputAsFile(String inputFile)
A convenience method to set the input redirect type
FILE. |
ProcessInstanceBuilder |
inputAsInherit()
A convenience method to set the input redirect type
INHERIT. |
ProcessInstanceBuilder |
inputAsStream()
A convenience method to set the input redirect type
STREAM. |
ProcessInstanceBuilder |
inputAsString(String inputString)
A convenience method to set the input redirect type
STRING. |
ProcessInstanceBuilder |
inputRedirect(InputRedirect inputRedirect)
Sets the input redirect type.
|
ProcessInstanceBuilder |
name(String name)
Sets the process name.
|
ProcessInstanceBuilder |
outputAsBinary()
A convenience method to set the output redirect type
BINARY. |
ProcessInstanceBuilder |
outputAsConsumer()
A convenience method to set the output redirect type
CONSUMER. |
ProcessInstanceBuilder |
outputAsConsumer(Consumer<String> outputLineConsumer)
A convenience method to set the output redirect type
CONSUMER. |
ProcessInstanceBuilder |
outputAsFile(String outputFile)
A convenience method to set the output redirect type
FILE. |
ProcessInstanceBuilder |
outputAsInherit()
A convenience method to set the output redirect type
INHERIT. |
ProcessInstanceBuilder |
outputAsString()
A convenience method to set the output redirect type
STRING. |
ProcessInstanceBuilder |
outputLoggingConsumer(BiConsumer<org.slf4j.Logger,String> outputLoggingConsumer)
The logging consumer for the process standard output.
|
ProcessInstanceBuilder |
outputLoggingConsumerNone()
Sets the logging consumer for the process standard output to none.
|
ProcessInstanceBuilder |
outputRedirect(OutputRedirect outputRedirect)
Sets the standard output redirect type.
|
ProcessInstanceBuilder |
processBuilderConsumer(Consumer<ProcessBuilder> processBuilderConsumer)
Provides low level access to the Java ProcessBuilder consumer.
|
ProcessInstanceBuilder |
redirectErrorStream(boolean redirectErrorStream)
Merges the error output with the standard output if
true. |
ProcessInstance |
run()
Runs a new process synchronously.
|
ProcessInstance |
runAsync()
Runs a new process asynchronously.
|
ProcessInstanceBuilder |
waitForLineTimeout(Long waitForLineTimeout)
Sets the timeout for waiting for a specific line from the process output stream (in seconds).
|
ProcessInstanceBuilder |
waitForNegativeLineRegexp(String waitForNegativeLineRegexp)
Sets the Java regular expression of a line from the process output stream that signals an error and should cause throwing an
exception.
|
ProcessInstanceBuilder |
waitForPositiveLineRegexp(String waitForPositiveLineRegexp)
Sets the Java regular expression of a line from the process output stream.
|
ProcessInstanceBuilder |
waitSeconds(Long waitSeconds)
Sets the maximum number of seconds to wait after the start of the process.
|
ProcessInstanceBuilder |
workingDir(String workingDir)
Sets the process working directory.
|
public ProcessInstanceBuilder(SpongeEngine engine, String executable)
engine - the engine.executable - the executable.public ProcessInstanceBuilder(SpongeEngine engine, ProcessConfiguration configuration)
public ProcessConfiguration getConfiguration()
public ProcessInstance build()
public ProcessInstance run() throws InterruptedException
If the input redirect type is STREAM you should invoke ProcessInstance.runAsync().
InterruptedException - on interrupted.public ProcessInstance runAsync() throws InterruptedException
If the input redirect type is STREAM you should invoke manually
ProcessInstance.waitForReady() after writing to and closing
the subprocess standard input ProcessInstance.getInput().
InterruptedException - on interrupted.public ProcessInstanceBuilder name(String name)
name - the process name.public ProcessInstanceBuilder arguments(String... arguments)
arguments - the process arguments.public ProcessInstanceBuilder arguments(List<String> arguments)
null elements.arguments - the process arguments.public ProcessInstanceBuilder workingDir(String workingDir)
workingDir - the process working directory. If null (the default value) then the current directory will be used.public ProcessInstanceBuilder env(String name, String value)
name - the environment variable name.value - the environment variable value.public ProcessInstanceBuilder env(Map<String,String> env)
env - the environment variables.public ProcessInstanceBuilder waitSeconds(Long waitSeconds)
waitSeconds - the maximum number of seconds to wait or null (the default value) if the thread shouldn't wait.public ProcessInstanceBuilder inputRedirect(InputRedirect inputRedirect)
InputRedirect.PIPE.inputRedirect - the input redirect type.public ProcessInstanceBuilder outputRedirect(OutputRedirect outputRedirect)
OutputRedirect.PIPE.outputRedirect - the standard output redirect type.public ProcessInstanceBuilder errorRedirect(ErrorRedirect errorRedirect)
ErrorRedirect.PIPE.errorRedirect - the error output redirect type.public ProcessInstanceBuilder charset(Charset charset)
charset - the charset.public ProcessInstanceBuilder waitForPositiveLineRegexp(String waitForPositiveLineRegexp)
waitForNegativeLineRegexp if set).waitForPositiveLineRegexp - the Java regular expression or null if the thread shouldn't wait for a specific line.public ProcessInstanceBuilder waitForNegativeLineRegexp(String waitForNegativeLineRegexp)
waitForNegativeLineRegexp - the Java regular expression or null if the thread shouldn't look for a specific error line.public ProcessInstanceBuilder waitForLineTimeout(Long waitForLineTimeout)
waitForLineTimeout - the timeout for waiting for a specific line or null if the thread could wait indefinitely.public ProcessInstanceBuilder outputLoggingConsumer(BiConsumer<org.slf4j.Logger,String> outputLoggingConsumer)
INFO.outputLoggingConsumer - the logging consumer.public ProcessInstanceBuilder outputLoggingConsumerNone()
public ProcessInstanceBuilder errorLoggingConsumer(BiConsumer<org.slf4j.Logger,String> errorLoggingConsumer)
WARN.errorLoggingConsumer - the logging consumer.public ProcessInstanceBuilder inheritIo()
public ProcessInstanceBuilder processBuilderConsumer(Consumer<ProcessBuilder> processBuilderConsumer)
processBuilderConsumer - the Java ProcessBuilder consumer.public ProcessInstanceBuilder redirectErrorStream(boolean redirectErrorStream)
true. Defaults to false.redirectErrorStream - redirect error stream flag.public ProcessInstanceBuilder exceptionOnExitCode(boolean exceptionOnExitCode)
true, throws exception if the process exit code is not 0. Defaults to true.exceptionOnExitCode - exception on exit code flag.public ProcessInstanceBuilder inputAsInherit()
INHERIT.public ProcessInstanceBuilder inputAsString(String inputString)
STRING.inputString - the input string.public ProcessInstanceBuilder inputAsBinary(byte[] inputBinary)
BINARY.inputBinary - the input binary.public ProcessInstanceBuilder inputAsFile(String inputFile)
FILE.inputFile - the input filename.public ProcessInstanceBuilder inputAsStream()
STREAM.public ProcessInstanceBuilder outputAsInherit()
INHERIT.public ProcessInstanceBuilder outputAsString()
STRING.public ProcessInstanceBuilder outputAsBinary()
BINARY.public ProcessInstanceBuilder outputAsFile(String outputFile)
FILE.outputFile - the output filename.public ProcessInstanceBuilder outputAsConsumer(Consumer<String> outputLineConsumer)
CONSUMER.outputLineConsumer - the line consumer.public ProcessInstanceBuilder outputAsConsumer()
CONSUMER.public ProcessInstanceBuilder errorAsInherit()
INHERIT.public ProcessInstanceBuilder errorAsString()
STRING.public ProcessInstanceBuilder errorAsFile(String errorFile)
FILE.errorFile - the error file.public ProcessInstanceBuilder errorAsException()
EXCEPTION.public ProcessInstanceBuilder errorAsConsumer()
CONSUMER.public ProcessInstanceBuilder errorAsConsumer(Consumer<String> errorLineConsumer)
CONSUMER.errorLineConsumer - the line consumer.Copyright © 2016–2020 Softelnet. All rights reserved.