commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Siegfried Goeschl <>
Subject [ANN] commons-exec 1.0 released
Date Thu, 26 Mar 2009 18:34:45 GMT
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
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
  Issue: EXEC-37. Thanks to Sebastien Bazley.
o Using for child process will actually hang your application -
  see JIRA for more details. Since there is no easy fix an
  IllegalRuntimeException is thrown when 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
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
  "PATH", "Path" and "path" would access the same environment variable
  the real name is "Path".  Issue: EXEC-30. Thanks to Benjamin Bentmann.
o Invoking DefaultExecutor.execute(CommandLine command, Map environment)
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
  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.

o Removed commons-logging integration

Have fun!


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message