commons-exec
Siegfried Goeschl
Renamed EnvironmentUtil to EnvironmentUtils to align with other classes
in this project and commons in general. Please note that this change
could break existing clients (but would be rather unlikely).
Make environment variables respect casing rules of platforms. Under Windows
"PATH", "Path" and "path" would access the same environment variable whereas
the real name is "Path".
Invoking DefaultExecutor.execute(CommandLine command, Map environment) using
a 'null' Map results in inheriting all environment variables of the current
process while passing an empty map implies starting the new process with no
environment variables. In short 'null' is not the same as an empty map.
Added one additional test : DefaultExecutorTest.testExecuteWithFancyArg
Using variable substitution within CommandLine broke the regression tests
under Windows. Found also another bug when calling CommandLine.getExecutable()
the result was not substituted at all. As a general rule we do variable
substitution and file separator fixing on the command line executable and
variable substitution but NO file separator fixing for the command line
arguments.
Added convinience method to add two parameters to the CommandLine
using one method invocation.
Implemented better regression test for OpenVMS affecting also
the Executor and CommandLauncher interface.
Added test scripts for OpenVMS - he seems to be the last human
having access to an OpenVMS box ... :-)
With the help of the Apache Commons community I added the first results
of cross-OS testing.
The regression tests now also works on Windows - so it should
work now on Linux, Windows and Mac OS X
Added DebugUtils to improve cross-platform testing.
Removed commons-logging integration
Made DefaultExecutor.launch() protected to enable mocking.
Made ProcessDestroyer optional and pluggable when using Executor.
CommandLine can now expand the given command line by a user-suppied
map. This allows to execute something like "${JAVA_HOME}/bin/java -jar ${myapp}"
Added methods to provide pre-quoted arguments.
Exposing a ExecuteWatchdog.destroy() to kill an asynchrounous process
manually. This formalizes a workaround described in the JIRA
Extending exit value handling to support applications returning an error
code.
Cleaned up the source code to get rid of javadoc errors and
unused imports.
Added a few regression tests for the watchdog since they were missing.