@ComponentSpecification public interface ProcessUtil
Process
es.ProcessUtilImpl
Modifier and Type | Method and Description |
---|---|
int |
execute(ProcessContext context,
long timeout,
TimeUnit unit,
ProcessBuilder... builders)
This method executes the external
Process es configured by the given builders . |
int |
execute(ProcessContext context,
ProcessBuilder... builders)
This method executes the external
Process es configured by the given builders . |
AsyncProcessExecutor |
executeAsync(ProcessContext context,
ProcessBuilder... builders)
This method executes the external
Process es configured by the given builders as async
task. |
int execute(ProcessContext context, ProcessBuilder... builders) throws IOException, InterruptedException
Process
es configured by the given builders
. If more
than one builder
is given, the according processes are piped. context
- is the context of the process pipe (fist stdin
, last stdout
and
stderr
for all processes as well as a potential timeout).builders
- are the configurations of the Process
(es) to execute. The array needs to have a
length greater than zero.exit-code
of the Process
-pipe configured by the given
builders
.IOException
- if an input/output-error occurred.InterruptedException
- if the calling Thread
was interrupted while waiting for
a Process
to complete.int execute(ProcessContext context, long timeout, TimeUnit unit, ProcessBuilder... builders) throws IOException, TimeoutException, InterruptedException
Process
es configured by the given builders
. If more
than one builder
is given, the according processes are piped. threads
, especially when multiple processes are piped
(2*n+1[+1] threads). Therefore you should NOT use the
singleton
variant of this util except
you are writing a simple command-line client that does a simple job and then terminates. When writing a
server-application or library, that makes such calls repetitive, you should create your own instance of
ProcessUtil
and configure a thread-pool as Executor
.context
- is the context of the process pipe (fist stdin
, last stdout
and
stderr
for all processes as well as a potential timeout).timeout
- is the maximum amount of time to wait for the Process
-pipe to finish.unit
- is the TimeUnit
of the given timeout
argument.builders
- are the configurations of the Process
(es) to execute. The array needs to have a
length greater than zero.exit-code
of the Process
-pipe configured by the given
builders
.IOException
- if an input/output-error occurred.TimeoutException
- if the Process
-pipe did NOT complete before the given timeout
(according to unit
).InterruptedException
- if the calling Thread
was interrupted while waiting for the
Process
-pipe to complete and before the timeout
occurred.AsyncProcessExecutor executeAsync(ProcessContext context, ProcessBuilder... builders) throws IOException
Process
es configured by the given builders
as async
task. If more than one builder
is given, the according processes are piped. threads
, especially when multiple processes are piped
(2*n+1[+1] threads). Therefore you should NOT use the
singleton
variant of this util except
you are writing a simple command-line client that does a simple job and then terminates. When writing a
server-application or library, that makes such calls repetitive, you should create your own instance of
ProcessUtil
and configure a thread-pool as Executor
.context
- is the context of the process pipe (fist stdin
, last stdout
and
stderr
for all processes as well as a potential timeout).builders
- are the configurations of the Process
(es) to execute. The array needs to have a
length greater than zero.exit-code
of the Process
-pipe configured by the given
builders
.IOException
- if an input/output-error occurred while setting up the Process
(es).Copyright © 2001–2016 mmm-Team. All rights reserved.