The commons-exec-team is pleased to announce the commons-exec-1.0 release! A library to reliably execute external processes from within the JVM Changes in this version include: New features: ----------------------------------------------------------------------------- o Added one additional test : DefaultExecutorTest.testExecuteWithFancyArg Issue: EXEC-26. Thanks to Benjamin Bentmann. o Added convinience method to add two parameters to the CommandLine using one method invocation. o Added test scripts for OpenVMS - he seems to be the last human having access to an OpenVMS box ... :-) o With the help of the Apache Commons community I added the first results of cross-OS testing. Thanks to Simone Gianni, Bindul Bhowmik, Niall Pemberton, Sebastian Bazley. o The regression tests now also works on Windows - so it should work now on Linux, Windows and Mac OS X o Added DebugUtils to improve cross-platform testing. o Made DefaultExecutor.launch() protected to enable mocking. Issue: SANDBOX-62. Thanks to Jeremy Lacoste. o Made ProcessDestroyer optional and pluggable when using Executor. Issue: SANDBOX-107. Thanks to Niklas Gustavsson. o 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}" o Added methods to provide pre-quoted arguments. Issue: SANDBOX-192. Thanks to Reinhold Fuereder. o Exposing a ExecuteWatchdog.destroy() to kill an asynchrounous process manually. This formalizes a workaround described in the JIRA Issue: SANDBOX-193. Thanks to Reinhold Fuereder. o Extending exit value handling to support applications returning an error code. Issue: SANDBOX-203. o Added a few regression tests for the watchdog since they were missing. Issue: SANDBOX-204. Fixed Bugs: ----------------------------------------------------------------------------- o Removed useless synchronized statement in OpenVmsProcessingEnvironment.createProcEnvironment Issue: EXEC-37. Thanks to Sebastien Bazley. o Using System.in for child process will actually hang your application - see JIRA for more details. Since there is no easy fix an IllegalRuntimeException is thrown when System.in is passed. Issue: EXEC-33. o Fixing a few findbugs issues. Issue: EXEC-35. Thanks to Luc Maisonobe. o Handle null streams consistently. Issue: EXEC-32. Thanks to Marco Ferrante. o After a long discussion we decided to stick to following groupId "org.apache.commons" instead of "commons-exec". o The Ant build now works even when junit is not on the classpath Thanks to Kevin Jackson. o Fixed broken "groupId" from "org.apache.commons" to "commons-exec" o 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). Issue: EXEC-27. Thanks to Benjamin Bentmann. o 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". Issue: EXEC-30. Thanks to Benjamin Bentmann. o 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. Issue: EXEC-31. Thanks to Benjamin Bentmann. o 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. Issue: EXEC-25. o Implemented better regression test for OpenVMS affecting also the Executor and CommandLauncher interface. o Cleaned up the source code to get rid of javadoc errors and unused imports. Issue: SANDBOX-204. Removed: o Removed commons-logging integration Have fun! -commons-exec-team