Releases: fleipold/jproc
Release 2.8.1
Bugfix to avoid occasional stacktrace on timeout of command.
Release 2.8.0
Allow clear environment of inherited variables (#28).
Release 2.7.0
Add method to pass env map with multiple variables to the process's environment.
Release 2.6.2
Fixing license entry in the pom.
Release 2.6.1
Bugfix to kill process on thread interruption.
Release 2.6.0
OutputConsumer Support for Standard Error
Now the OutputConsumer abstraction can also be used for standard error.
Improved Handling and Message
We get a real error message when two mutually exclusive
methods are called on the builder. The exception also gets
thrown as soon as the second method is called, i.e. it
is now in the place where the offence happens.
Release 2.5.1
Re-releasing 2.5 with proper version number.
Release 2.5
Rework Exception Message
Now we also include STDOUT into the ExcptionMessage when a process terminates
with an unexpected status code.
This helps with programs that return error messages on STDOUT rather than
STDERR.
To make the output clearer, the overall format of the message was reworked:
- It now includes the full commandline string prefixed with a $-sign.
- The lines after the first line are indented to make clear that they belong to the exception.
- If present and available standard out and standard error are included and prefixed with
"STDOUT:" and "STDERR:" respectively.
Here is an example invoking git commit with no staged changes:
Exception in thread "main" org.buildobjects.process.ExternalProcessFailureException: External process `git` terminated with unexpected exit status 1 after 39ms:
$ git commit -m '1st commit'
STDOUT: On branch master
STDOUT:
STDOUT: Initial commit
STDOUT:
STDOUT: nothing to commit (create/copy files and use "git add" to track)
Renamed ProcString to CommandLine
The command line representation of the invocation has previously been
called procString
. It was now renamed to commandLine
and the old
methods have been deprecated.
Make getProcString available on Builder
This makes getProcString
which is currently only on ProcResult
available on ProcBuilder
.
Also, it fixes escaping for arguments. Now it is safer to paste the output of getProcString
straight into the shell. Note that the escaping is really naïve and only works for whitespace and the delimiter character.
This fix introduces an incompatibility, because the ProcResult#getProcString now
uses single quotes for escaping arguments containing whitespace.
Fixing API Visibility
In previous versions ProcBuilder#withInput(String)
and
ProcBuilder#withInput(byte[])
were not public. This has now been fixed.