<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<document xmlns="http://maven.apache.org/changes/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
    <properties>
        <title>Apache Commons Exec Release Notes</title>
    </properties>
    <body>
        <release version="1.4.1" date="20YY-MM-DD" description="Maintenance and feature Release (Java 8 or above)">
            <!-- ADD -->
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
            <!-- FIX -->
            <action dev="ggregory" type="fix" issue="EXEC-122" due-to="Marcono1234">Document PumpStreamHandler stream thread-safety requirements.</action>
            <action dev="ggregory" type="fix" due-to="Marcono1234">Fix CI only running on Ubuntu & improve OS-specific tests #143.</action>
            <!-- UPDATE -->
            <action dev="ggregory" type="update" due-to="Dependabot">Bump org.apache.commons:commons-parent from 65 to 69 #174.</action>
        </release>
        <release version="1.4.0" date="2024-01-01" description="Maintenance and feature Release (Java 8 or above)">
            <!-- ADD -->
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add ShutdownHookProcessDestroyer.isEmpty().</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add DefaultExecuteResultHandler.waitFor(Duration).</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add Watchdog.Watchdog(Duration).</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add ExecuteWatchdog.ExecuteWatchdog(Duration).</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add PumpStreamHandler.setStopTimeout(Duration) and deprecate PumpStreamHandler.setStopTimeout(long).</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add DefaultExecutor.Builder.</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add DaemonExecutor.Builder.</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add ExecuteWatchdog.Builder.</action>
            <action dev="ggregory" type="add" due-to="Gary Gregory">Add Watchdog.Builder.</action>
            <!-- FIX -->
            <action issue="EXEC-105" type="fix" due-to="Dimitrios Efthymiou">Fix code snippet in tutorial page.</action>
            <action issue="EXEC-100" dev="sgoeschl" type="fix" date="2016-01-11">Sync org.apache.commons.exec.OS with the newest Ant source file.</action>
            <action issue="EXEC-64" dev="sebb" type="fix" due-to="Michael Vorburger">DefaultExecutor swallows IOException cause instead of propagating it (work-round for Java 1.5).</action>
            <action dev="ggregory" type="fix" due-to="nullptr">Java-style Array declaration and remove empty finally block #26.</action>
            <action dev="ggregory" type="fix" due-to="John Patrick">Use JUnit 5 assertThrows() #72.</action>
            <action dev="ggregory" type="fix" due-to="step-security-bot, Gary Gregory">[StepSecurity] ci: Harden GitHub Actions #107.</action>
            <action dev="ggregory" type="fix" due-to="Gary Gregory">Port from JUnit 4 to 5.</action>
            <action dev="ggregory" type="fix" due-to="ArdenL-Liu, Gary Gregory">[Javadoc] CommandLine.toCleanExecutable(final String dirtyExecutable) IllegalArgumentException #61.</action>
            <action dev="ggregory" type="fix" due-to="Gary Gregory">ExecuteException propagates its cause to its IOException superclass.</action>
            <action dev="ggregory" type="fix" due-to="Gary Gregory">Propagate exception in DebugUtils.handleException(String, Exception).</action>
            <action dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate StringUtils.toString(String[], String) in favor of String.join(CharSequence, CharSequence...).</action>
            <action issue="EXEC-78" dev="ggregory" type="fix">No need to use System.class.getMethod("getenv",...) any more.</action>
            <action issue="EXEC-70" dev="ggregory" type="fix">Delegate thread creation to java.util.concurrent.ThreadFactory.</action>
            <action dev="ggregory" type="fix" due-to="Gary Gregory">Avoid NullPointerException in MapUtils.prefix(Map, String).</action>
            <!-- REMOVE -->
            <action dev="ggregory" type="remove" due-to="Gary Gregory">Deprecate DefaultExecuteResultHandler.waitFor(long).</action>
            <action dev="ggregory" type="remove" due-to="Gary Gregory">Deprecate ExecuteWatchdog.ExecuteWatchdog(long).</action>
            <action dev="ggregory" type="remove" due-to="Gary Gregory">Deprecate Watchdog.Watchdog(long).</action>
            <action dev="ggregory" type="remove" due-to="Gary Gregory">Drop obsolete and unmaintained Ant build.</action>
            <action dev="ggregory" type="remove" due-to="Gary Gregory">Drop CLIRR plugin, replaced by JApiCmp.</action>
            <!-- UPDATE -->
            <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump github actions #52.</action>
            <action issue="EXEC-111" dev="ggregory" type="update" due-to="Gary Gregory">Update from Java 5 to 6.</action>
            <action dev="ggregory" type="update" due-to="Gary Gregory">Update from Java 7 to 8.</action>
            <action dev="ggregory" type="update" due-to="Gary Gregory">Bump actions/cache from 2 to 3.0.11 #48, #51, #55, #69.</action>
            <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2.3.2 to 3.1.0 #24, #46, #68.</action>
            <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump actions/setup-java from 1.4.0 to 3.8.0 #21, #50, #70, #78.</action>
            <action dev="ggregory" type="update" due-to="Dependabot">Bump junit from 4.13 to 5.9.1 Vintage #23, #33.</action>
            <action dev="ggregory" type="update" due-to="Dependabot">Bump maven-pmd-plugin from 2.7.1 to 3.19.0 #45, #62.</action>
            <action dev="ggregory" type="update" due-to="Dependabot">Bump maven-checkstyle-plugin from 2.13 to 3.2.0 #29, #60.</action>
            <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump commons-parent from 52 to 65, #49, #65, #79, #88, #105, #137.</action>
            <action dev="ggregory" type="update" due-to="Gary Gregory">Bump japicmp-maven-plugin from 0.15.6 to 0.16.0.</action>
        </release>
        <release version="1.3" date="2014-11-02" description="Maintenance and feature Release">
            <action issue="EXEC-69" dev="ggregory" type="add" due-to="Richard Atkins, Michael Vorburger">
                DefaultExecutor async execute prevents shutdown hooks running.
            </action>
            <action issue="EXEC-81" dev="ggregory" type="fix" date="2014-02-04" due-to="Stephen Compall">
                Remove remaining raw types, unchecked conversions
            </action>
            <action issue="EXEC-80" dev="ggregory" type="fix" date="2014-02-04">
                NullPointerException in EnvironmentUtils.toString(map)
            </action>
            <action issue="EXEC-78" dev="sebb" type="update" date="2014-01-11">
                No need to use System.class.getMethod("getenv",...) any more
            </action>
            <action issue="EXEC-77" dev="britter" type="update" date="2014-01-10">
                Update JUnit dependency to 4.11
            </action>
            <action issue="EXEC-76" dev="britter" type="update" date="2014-01-10">
                Update to Java 5
            </action>
        </release>
        <release version="1.2" date="2014-01-02" description="Maintenance and small feature Release">
            <action issue="EXEC-68" dev="ggregory" type="fix" date="2012-10-22"  due-to="Joel McCance">
                Watchdog kills process immediately if timeout is too large.
            </action>
            <action issue="EXEC-57" dev="sgoeschl" type="fix" date="2011-10-10"  due-to="Nickolay Martinov">
                Applied the patch from Nickolay Martinov but the timeout disguises the fact
                that the process might be still running. Therefore added a sanity check in
                order to throw an exception if the timeout for join() was exceeded.
            </action>
            <action issue="EXEC-60" dev="sgoeschl" type="fix" date="2011-10-09"  due-to="Peter Kofler">
                Fixed deadlock by calling the timeout observers outside of the synchronized block thereby
                removing a prerequisite of a deadlock. Also added a test case to demonstrate that this
                problem is fixed (which of course can not guarantee the absence of a dead lock).
            </action>
            <action issue="EXEC-55" dev="sgoeschl" type="add" date="2011-02-21"  due-to="Dominik Stadler">
                Set names for started threads.
            </action>
            <action issue="EXEC-52" dev="sebb" type="fix" date="2011-02-26"  due-to="Nickolay Martinov">
                Tests fail on HP-UX, because it uses a different syntax for the ping command.
            </action>
            <action issue="EXEC-49" dev="sgoeschl" type="fix" date="2010-11-05" due-to="Kevin Telford">
                "Write dead end" IOException when using Piped streams w/PumpStreamHandler.
                When encountering a PipedOutputStream we will automatically close it to avoid
                the exception.
            </action>
            <action issue="EXEC-34" dev="simonetripodi" type="fix" date="2011-11-30" due-to="Marco Ferrante">
                Race condition prevent watchdog working using ExecuteStreamHandler.
                Patch submittd by Kristian Rosenvold.
            </action>
        </release>
        <release version="1.1" date="2010-10-08" description="Maintenance Release">
            <action dev="sebb" type="fix" date="2010-10-05" >
                OpenVMS now uses symbols instead of logicals for environment variables.
            </action>
            <action dev="sgoeschl" type="add" date="2010-09-21" >
                Adding 'Argument' class and quote the arguments after expansion.                
            </action>
            <action dev="sgoeschl" type="add" date="2010-09-02" >
                Reverting changes of [EXEC-41] because the patch does not fix the problem.
                Also added test case for the broken patch.
            </action>
            <action dev="sgoeschl" type="add" date="2010-08-17" >
                Added TutorialTest as a playground for new user and removed
                similar code from DefaultExecutorTest.
            </action>
            <action dev="sgoeschl" type="fix" date="2010-08-16" >
                String substitution handles now java.io.File instances in order
                to create a cross-platform file name.            
            </action>
            <action dev="sgoeschl" type="fix" date="2010-08-16" >
                The 'forever.bat' accidentally overwrite the 'forever.txt' instead of
                appending.
            </action>
            <action dev="sgoeschl" type="update" date="2010-08-16" >
                DefaultExecutor() now sets the working directory with the current working
                directory.
            </action>
            <action dev="sgoeschl" type="update" date="2010-08-15">
                Added 'DefaultExecutorTest#testStdInHandling' to show how
                commons-exec can feed the 'stdin' of a child process.
            </action>
            <action dev="sgoeschl" type="update" date="2010-08-15" issue="EXEC-42" due-to="Konrad Windzus">
                Improved the documentation.
            </action>
            <action dev="sgoeschl" type="update" date="2010-08-15" issue="EXEC-41" due-to="Ernest Mishkin">
                Added a PumpStreamHandler.setAlwaysWaitForStreamThreads() which allows to skip
                joining with the pumper threads. Having said that - using that flag is for the
                desperate because it could leave up to three worker threads behind but there
                might be situations where this is the only escape.
            </action>
            <action dev="sgoeschl" type="fix" date="2010-08-15" issue="EXEC-46" due-to="Zimmermann Nir">
                Process.waitFor should clear interrupt status when throwing InterruptedException
            </action>
            <action dev="sgoeschl" type="update" date="2010-06-01">
                Added 'DefaultExecuteResultHandler'
            </action>
            <action dev="sgoeschl" type="update" date="2010-06-01" issue="EXEC-42" due-to="Pablo Hoertner">
                Added a new section to the tutorial to show working with asynchronous
                processes. Thanks to Pablo for providing this documentation update.
            </action>
            <action dev="sgoeschl" type="fix" date="2010-05-31" issue="EXEC-44">
                Because the ExecuteWatchdog is the only way to destroy asynchronous processes,
                it should be possible to set it to an infinite timeout, for processes which
                should not timeout, but manually destroyed under some circumstances.
            </action>
        </release>
        <release version="1.0.1" date="2009-09-28" description="Maintenance Release">
            <action dev="henrib" type="fix" date="2009-09-25" issue="EXEC-33">
                On a Mac, the unit tests never finish. Culprit is InputStreamPumper which
                sets its stop member in the run method; however, run might really be executed
                after the stopProcessing method is called if the process
                thread completes before the InputStreamPumper starts.
            </action>
            <action dev="sgoeschl" type="fix" due-to="Peter Henderson" issue="EXEC-40">
                Fixes NullPointerException in DefaultExecutor.setExitValues().
            </action>
            <action dev="sgoeschl" type="fix" due-to="Milos Kleint" issue="EXEC-33">
                Copies all data from an System.input stream to an output stream of
                the executed process.
            </action>
        </release>
        <release version="1.0" date="2009-03-15" description="First Public Release">
            <action dev="sgoeschl" type="fix" due-to="Sebastien Bazley" issue="EXEC-37">
                Removed useless synchronized statement in
                OpenVmsProcessingEnvironment.createProcEnvironment
            </action>
            <action dev="sgoeschl" type="fix" issue="EXEC-33">
                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.
            </action>
            <action dev="sgoeschl" type="fix" due-to="Luc Maisonobe" issue="EXEC-35">
                Fixing a few findbugs issues.
            </action>
            <action dev="sgoeschl" type="fix" due-to="Marco Ferrante" issue="EXEC-32">
                Handle null streams consistently.
            </action>
            <action dev="sgoeschl" type="fix">
                After a long discussion we decided to stick to following groupId
                "org.apache.commons" instead of "commons-exec".
            </action>
            <action dev="sgoeschl" type="fix" due-to="Kevin Jackson">
                The Ant build now works even when junit is not on the classpath
            </action>
            <action dev="sgoeschl" type="fix">
                Fixed broken "groupId" from "org.apache.commons" to "commons-exec"
            </action>
            <action dev="sgoeschl" type="fix" issue="EXEC-27" due-to="Benjamin Bentmann">
                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).
            </action>
            <action dev="sgoeschl" type="fix" issue="EXEC-30" due-to="Benjamin Bentmann">
                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".
            </action>
            <action dev="sgoeschl" type="fix" issue="EXEC-31" due-to="Benjamin Bentmann">
                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.
            </action>
            <action dev="sgoeschl" type="add" issue="EXEC-26" due-to="Benjamin Bentmann">
                Added one additional test : DefaultExecutorTest.testExecuteWithFancyArg
            </action>
            <action dev="sgoeschl" issue="EXEC-25" type="fix">
                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.
            </action>
            <action dev="sgoeschl" type="add">
                Added convinience method to add two parameters to the CommandLine
                using one method invocation.
            </action>
            <action dev="sgoeschl" type="fix">
                Implemented better regression test for OpenVMS affecting also
                the Executor and CommandLauncher interface.
            </action>
            <action dev="sebb" type="add">
                Added test scripts for OpenVMS - he seems to be the last human
                having access to an OpenVMS box ... :-)
            </action>
            <action dev="sgoeschl" type="add" due-to="Simone Gianni,Bindul Bhowmik,Niall Pemberton,Sebastian Bazley">
                With the help of the Apache Commons community I added the first results
                of cross-OS testing.
            </action>
            <action dev="sgoeschl" type="add">
                The regression tests now also works on Windows - so it should
                work now on Linux, Windows and Mac OS X
            </action>
            <action dev="sgoeschl" type="add">
                Added DebugUtils to improve cross-platform testing.
            </action>
            <action dev="sgoeschl" type="remove">
                Removed commons-logging integration
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-62" due-to="Jeremy Lacoste">
                Made DefaultExecutor.launch() protected to enable mocking.
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-107" due-to="Niklas Gustavsson">
                Made ProcessDestroyer optional and pluggable when using Executor.
            </action>
            <action dev="sgoeschl" type="add">
                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}"
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-192" due-to="Reinhold Fuereder">
                Added methods to provide pre-quoted arguments.
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-193" due-to="Reinhold Fuereder">
                Exposing a ExecuteWatchdog.destroy() to kill an asynchrounous process
                manually. This formalizes a workaround described in the JIRA
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-203">
                Extending exit value handling to support applications returning an error
                code.
            </action>
            <action dev="sgoeschl" type="fix" issue="SANDBOX-204">
                Cleaned up the source code to get rid of javadoc errors and
                unused imports.
            </action>
            <action dev="sgoeschl" type="add" issue="SANDBOX-204">
                Added a few regression tests for the watchdog since they were missing.
            </action>
        </release>
    </body>
</document>
