<?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

  https://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.
-->

<!--
  This file is used by the maven-changes-plugin to generate the release notes.
  Useful ways of finding items to add to this file are:

  1. Add items when you fix a bug or add a feature (this makes the
  release process easy :-).

  2. Do a JIRA search for tickets closed since the previous release.

  3. Use the report generated by the maven-changelog-plugin to see all
  SVN commits. Set the project.properties' maven.changelog.range
  property to the number of days since the last release.


  The <action> type attribute can be add,update,fix,remove.
-->

<document xmlns="http://maven.apache.org/changes/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
  <properties>
    <title>Apache Commons Daemon Release Notes</title>
  </properties>
  <body>
    <release version="1.6.1" date="2026-06-03" description="Bug fix release">
      <!-- FIX -->
      <action type="fix" dev="markt" due-to="Michael Osipov">jsvc. Correct a packaging error in the 1.6.0 native source tarball for *nix systems.</action>
    </release>
    <release version="1.6.0" date="2026-05-29" description="This is a maintenace release. Adds support for Windows on ARM64.">
      <!-- FIX -->
      <action type="fix" dev="markt" due-to="Alex Dupre, Michael Osipov">jsvc. Fix a regression in 1.5.1 that exposed long standing bugs around the locking and unlocking of pid files. Also fix the locking/unlocking bugs.</action>
      <action type="fix" dev="ggregory" issue="DAEMON-477" due-to="Alexander Pinčuk, Gary Gregory, Mark Thomas">Detaches from console when the service stops #307.</action>
      <!-- ADD -->
      <action type="add" dev="michaelo">
        jsvc. Use FreeBSD's setproctitle(3) to pass -procname similar to daemon(8).
      </action>
      <action type="add" dev="markt" issue="DAEMON-462" due-to="Wolfgang Glas">
        procrun. Add ARM64 support for Windows binaries.
      </action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 93 to 99.</action>
      <action type="update" dev="michaelo">jsvc. Consistently use strerror(3) for log output.</action>
    </release>
    <release version="1.5.1" date="2025-12-16" description="Bug fix release">
      <!-- FIX -->
      <action type="fix" dev="markt">jsvc. Fix compilation warnings.</action>
      <!-- ADD -->
      <action type="add" dev="markt">Procun. Build binaries for Windows using the static hybrid CRT strategy by default.</action>
      <!-- UPDATE -->
    </release>
    <release version="1.5.0" date="2025-11-26" description="This is a maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80).</action>
      <action type="fix" dev="michaelo">Document --enable-preview</action>
      <action type="fix" dev="michaelo">Fix first appearance of --enable-native-access</action>
      <action type="fix" issue="DAEMON-398" dev="jfclere">Procrun. Fix redirection issues on some OS versions by using recommended method to redirect stdout and stderr</action>
      <action type="fix" issue="DAEMON-439" dev="markt">Procrun. Fix updating of startup mode to 'Automatic (delayed)' being incorrectly processed as an update to 'Manual'</action>
      <action type="fix" issue="DAEMON-468" dev="ggregory" due-to="Jean-Frederic Clere, Mark Thomas, Sebb, Gary Gregory">Procrun. Fix timeout handling #238.</action>
      <action type="fix" issue="DAEMON-472" dev="markt">Procrun. Replace RTF version of license header with plain text version of full license in about box for monitor application.</action>
      <action type="fix" issue="DAEMON-475" dev="markt">Procrun. Service should be marked as stopped if the service worker crashes.</action>
      <!-- ADD -->
      <action type="add" dev="michaelo" issue="DAEMON-471">Add support for --enable-native-access Java startup option in jsvc.</action>
      <action type="add" dev="ggregory" due-to="Jean-Frederic Clere, Gary Gregory, Mark Thomas">Add tests for prunsrv on Windows #260.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add Java API compatibility report to the site (JApiCmp).</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 78 to 91 #253, #255, #287.</action>
      <action type="update" dev="markt">Update to use new ASF logo</action>
    </release>
    <release version="1.4.1" date="2025-01-13" description="Bug fix release">
      <!-- FIX -->
      <action dev="michaelo" type="fix">
        Fix several issues around Java OS and header files location detection.
      </action>
      <action dev="markt" type="fix">
        Correct several log messages where an incorrect placeholder led to
        truncation of the inserted values.
      </action>
      <!-- Add -->
      <action issue="DAEMON-460" dev="markt" type="add">
        Add protection to avoid high CPU usage for applications running in JVM
        mode that do not wait for the stop method to be called before the start
        method returns.
      </action>
      <!-- UPDATE -->
      <action dev="ggregory" type="update" due-to="Dependabot">
        Bump org.apache.commons:commons-parent from 71 to 78 #189, #196, #198, #204, #207, #210, #216.
      </action>
      <action dev="michaelo" type="update">
        Remove autogenerated files and rely on autoreconf only.
      </action>
    </release>
    <release version="1.4.0" date="2024-05-24" description="Bug fix release">
      <!-- Fix -->
      <action dev="ggregory" type="fix" due-to="step-security-bot, Gary Gregory">
        [StepSecurity] ci: Harden GitHub Actions #95.
      </action>
      <action issue="DAEMON-429" dev="markt" type="fix">
        Procrun. Enable Control Flow Guard for Windows binaries.
      </action>
      <action issue="DAEMON-461" dev="markt" type="fix">
        Procrun. Better label for command used to start service shown in
        Prunmgr.exe. 
      </action>
      <action dev="markt" type="fix">
        jsvc. Fix warnings when running support/buildconf.sh
      </action>
      <action issue="DAEMON-463" dev="markt" type="fix" due-to="michaelo">
        jsvc. Fix compilation issue with newer compilers.
      </action>
      <action dev="markt" type="fix">
        Procrun. Refactor UAC support so that elevation is only requested for
        actions that require administrator privileges.
      </action>
      <!-- Add -->
      <action type="add" dev="markt">
        Procrun. Add support for hybrid CRT builds.
      </action>
      <action type="add" dev="markt" due-to="huajingyun">
        jsvc. Add support for LoongArch64 support #92.
      </action>
      <!-- Updates -->
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump commons-parent from 57 to 69 #155.
      </action>
      <action type="update" dev="markt">
        The minimum support Java version has been upgraded from Java 7 to Java
        8.
      </action>
      <action type="update" dev="markt">
        Procrun. The minimum Windows versions supported are now Windows 10 and
        Windows Server 2016.
      </action>
      <action type="update" dev="markt">
        Bump commons-parent from 69 to 70.
      </action>
    </release>
    <release version="1.3.4" date="2023-05-12" description="Bug fix release">
      <!-- Fix -->
      <action issue="DAEMON-451" type="fix" dev="markt" due-to="kkolinko">
        Procrun. Configured stack size now applies to the main thread when
        running in JVM mode.
      </action>
      <action issue="DAEMON-452" type="fix" dev="markt">
        Procrun. If the specified log directory does not exist, attempt to
        create any missing parent directories, as well as the specified
        directory, when the service starts.
      </action>
      <action issue="DAEMON-458" type="fix" dev="markt">
        Procrun. Allow Windows service dependencies to be managed by Procrun or
        by 'sc config ...'.
      </action>
      <action issue="DAEMON-459" type="fix" dev="markt" due-to="Klaus Malorny">
        jsvc. Fix DaemonController.reload() only working the first time it is
        called.
      </action>
      <action type="fix" dev="markt" due-to="Eastdong">
        jsvc. Remove incorrent definition 'supported_os' which defined in 
        psupport.m4 file to fix jsvc build error on riscv64. 
      </action>
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump commons-parent from 54 to 57 #71, #91.
      </action>
    </release>
    <release version="1.3.3" date="2022-11-29" description="Bug fix release">
      <!-- Fix -->
      <action issue="DAEMON-450" type="fix" dev="markt" due-to="Norimasa Yamamoto">
        Procrun. Fix creation of duplicate ACL entries on some Windows platforms.
      </action>
      <action type="fix" due-to="jfclere" dev="markt">
        Procrun. Follow-up to ensure all child processes are cleaned up if the
        service does not stop cleanly. #64
      </action>
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/cache from 3.0.8 to 3.0.11 #60.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/checkout from 3.0.2 to 3.1.0 #59.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/setup-java from 3.5.1 to 3.6.0 #63.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump spotbugs-maven-plugin from 4.7.2.0 to 4.7.3.0 #61, #66.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump commons-parent from 55 to 56 #76
      </action>
    </release>
    <release version="1.3.2" date="2022-10-10" description="Bug fix release">
      <!-- Fix -->
      <action type="fix" dev="markt">
        Procrun. Remove noisy INFO log message that triggered logging once per
        minute while the service was running.
      </action>
      <action type="fix" dev="ggregory" due-to="Marc Wrobel">
        Fix typos in Javadoc and comments #50, #51.
      </action>
      <action issue="DAEMOM-446" type="fix" dev="markt">
        Procrun. The DependsOn parameter is no longer ignored when updating the
        service configuration.
      </action>
      <action issue="DAEMOM-448" type="fix" dev="markt">
        Procrun. Fix crash and provide an error level log message when the user
        attempts to start the service without configuring a JVM and none is
        available via the registry.
      </action>
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump actions/cache from 3.0.3 to 3.0.8.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump actions/checkout from 3 to 3.0.2.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump commons-parent from 53 to 54 #55.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump spotbugs-maven-plugin from 4.6.0.0 to 4.7.2.0 #48, #52, #53.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump jacoco-maven-plugin from 0.8.7 to 0.8.8.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump japicmp-maven-plugin from 0.15.4 to 0.16.0.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump JUnit 4 to 5 vintage.
      </action>
    </release>
    <release version="1.3.1" date="2022-05-09" description="Bug fix release">
      <!-- FIX -->
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. Take account of LogLevel setting when logging to standard error
        so the user can opt to see messages at Info level and below.
      </action>
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. Clear expected errors when checking for environment variables
        to prevent the expected errors from polluting subsequent log messages.
      </action>
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. Only configure the logging to be written to a file when
        running as a service.
      </action>
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. Clear logged error on service installation failure to prevent
        the error polluting subsequent log messages.
      </action>
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. When configuring permissions for the logging path, use the
        default path if no explicit logging path is specified.
      </action>
      <action issue="DAEMON-441" type="fix" dev="markt">
        Procrun. When logging issues configuring permissions for the logging
        path, explicitly state when default values are being used rather than
        logging blank values.
      </action>
      <action issue="DAEMON-442" type="fix" dev="markt">
        Procrun. Increase the size limit on the message component of log entries
        to 4096 characters.
      </action>
      <action type="fix" due-to="jfclere" dev="markt">
        Procrun. Ensure child processes are cleaned up if the service does not
        stop cleanly. #39
      </action>
      <action type="fix" due-to="Arturo Bernal" dev="markt">
        Refactor multiple if statements to use switch. #45
      </action>
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
        Bump actions/cache from 2.1.7 to 3.0.3 #41.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/setup-java from 2 to 3.5.1 #43.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #42.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump commons-parent from 52 to 53 #44.
      </action>
    </release>
    <release version="1.3.0" date="2022-03-18" description="Feature and bug fix release">
      <!-- FIX -->
      <action issue="DAEMON-430" type="fix" dev="jfclere">
        Procrun. --StopTimeout can be used to define the time that procrun waits for service to exit,
        but INFINITE timeout was using instead.
      </action>
      <action type="fix" dev="ggregory" due-to="Arturo Bernal">
        Minor improvements to Java code #22, #31.
      </action>
      <action type="fix" dev="mturk">
        Procrun. Minor improvement that allows to have WINVER nmake variable
        directly defined at compile time as ABI version in hexadecimal format.
      </action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">
        Procrun. Log at Trace instead of Debug when a service reports its state from the prunsrv app.
        This avoids the Debug log filling up as it adds two events per minute.
        You can then stay in Debug logging to capture register, start, stop, and unregister Debug events.
      </action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">
        Procrun. Miscellaneous logging improvements.
      </action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">
        Procrun. Log the prunsrv function names at the Trace level.
      </action>
      <action issue="DAEMON-437" type="fix" dev="markt">
        Procrun. Only redirect stderr and stdout to files for the running
        service. Output from commands executed on the command line will not be
        redirected.
      </action>
      <action issue="DAEMON-437" type="fix" dev="markt">
        Procrun. Ensure that the user configured to run the service is also
        granted access to the log file directory.
      </action>
      <action type="fix" dev="markt">
        Procrun. Ensure Trace is included in the logging levels exposed in the
        GUI.
      </action>
      <action issue="DAEMON-439" type="fix" dev="markt">
        Procrun. Support --Startup=delayed for service installation as well as
        service update.
      </action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="John Patrick">
        Enable Dependabot #20.
      </action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">
        Procrun. reportServiceStatusE() shows scale of dwWaitHint as millisecond in logging.
      </action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">
        Procrun. reportServiceStatusE() shows a short description for dwCurrentState in logging.
      </action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">
        Procrun. Add support for a new log level called Trace, lower-level than Debug.
      </action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">
        Procrun. Add logging when failing to obtain a service's description from the registry.
      </action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">
        Procrun. Add logging when failing to set the options of a service.
      </action>
      <!-- -UPDATE -->
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/cache from v2 to v2.1.7 #24, #30, #36.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump build actions/setup-java from v1.4.3 to v2.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump commons.jacoco.version from 0.8.5 to 0.8.7.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump commons.japicmp.version from 0.14.3 to 0.15.4.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump junit from 4.13.1 to 4.13.2 #25.
      </action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">
        Bump commons.daemon.javaversion 1.6 -> 1.7.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump spotbugs-maven-plugin from 4.4.2.2 to 4.5.2.0 #37.
      </action>
      <action type="update" dev="markt">
        Update the release build instructions to use CMSC 15.0.44.
      </action>
      <action type="update" dev="ggregory" due-to="Dependabot">
        Bump actions/checkout from 2 to 3 #40.
      </action>
    </release>
    <release version="1.2.4" date="2021-01-21" description="Bug fix release">
      <action issue="DAEMON-424" type="fix" dev="markt" due-to="Bernhard Scholz">
        Procrun. Ensure that log messages written to stdout and stderr are not
        lost during start-up.
      </action>
      <action issue="DAEMON-425" type="fix" dev="markt">
        Procrun. Correct a regression introduced in 1.2.3. Enable the service to
        start if the Options value is not present in the registry.
      </action>
      <action issue="DAEMON-426" type="fix" dev="markt">
        jsvc. Don't fail if the CAP_DAC_READ_SEARCH capability is not available.
        Fall back to using argv[0] rather than /proc/self/exe to determine the
        path for the current binary.
      </action>
      <action issue="DAEMON-428" type="fix" dev="markt">
        Procrun. Remove some unnecessary code.
      </action>
    </release>
    <release version="1.2.3" date="2020-09-01" description="Bug fix release">
      <action issue="DAEMON-411" type="fix" dev="markt">
        Procrun. Correct multiple issues related to enabling a service to
        interact with the desktop. Provide a better error message if this option
        is used with an invalid user, install the service with the option
        enabled if requested and correctly save the setting if it is enabled in
        the GUI.
      </action>
      <action issue="DAEMON-410" type="fix" dev="markt" due-to="Richard Morrell">
        jsvc. Update the list of paths searched for libjvm.so to include the
        path used by OpenJDK 11.
      </action>
      <action type="add" dev="markt">
        Procrun. Add additional debug logging for Java start mode.
      </action>
      <action type="fix" dev="markt" due-to="Ray Wang">
        jsvc. Remove incorrect definition 'supported_os' which defined in
        psupport.m4 file to fix jsvc build error on s390, arm, aarch64,
        mipsel and mips.
      </action>
      <action type="add" dev="ggregory">
        Procrun. More debug logging in prunsrv.c and javajni.c.
      </action>
      <action issue="DAEMON-419" type="add" dev="ggregory" due-to="mads1980">
        jsvc. Update arguments.c to support Java 11 --enable-preview #18.
      </action>
      <action issue="DAEMON-412" type="add" dev="markt">
        jsvc and Procrun. Add support for Java native memory tracking.
      </action>
      <action issue="DAEMON-422" type="add" dev="markt">
        Procrun. Add a new command, print, that outputs the command to
        (re-)configure the service with the current settings. This is intended
        to be used to save settings such as before an upgrade.
      </action>
    </release>
    <release version="1.2.2" date="2019-10-04" description="Bug fix release">
      <action issue="DAEMON-408" type="fix" dev="markt">
        Procrun. Correct a regression in the fix for DAEMON-401 that prevented
        the service from starting unless support for the universal C runtime had
        been installed.
      </action>
      <action type="update" dev="markt">
        Update Commons-Parent to version 49.
      </action>
      <action type="fix" dev="markt">
        Procrun. Fix compiler warnings for unreferenced formal parameters.
      </action>
      <action type="fix" dev="markt">
        Procrun. Switch code to use more secure versions of Windows API calls to
        resolve warnings reported by newer versions of Visual Studio.
      </action>
      <action type="fix" dev="markt">
        Correct the source assembly definitions to add README.md,
        CONTRIBUTING.md and HOWTO-RELEASE.txt, remove references to the deleted
        Ant build files and exclude the working directories of Windows binary
        builds.
      </action>
      <action type="add" dev="ggregory">
         More startup on Windows logging in javajni.c. #14.
      </action>
    </release>
    <release version="1.2.1" date="2019-09-09" description="Bug fix release">
      <action issue="DAEMON-403" type="fix" dev="markt" due-to="Charles">
        jsvc. Correct debug log message that reports change in umask.
      </action>
      <action issue="DAEMON-401" type="fix" dev="markt" due-to="Norimasa Yamamoto">
        Procrun. Correct a regression in the previous fix for this issue that
        caused 32-bit services to crash on start-up.
      </action>
      <action issue="DAEMON-407" type="fix" dev="markt">
        Procrun. Correct a regression in the fix for DAEMON-391 that caused the
        GUI to mix up the WARN and INFO logging levels.
      </action>
      <action issue="DAEMON-404" type="fix" dev="markt">
        Procrun. Expand the search for a valid Java runtime library to include
        the current JDK home defined in the Windows registry. Fully document the
        search algorithm used to find the Java runtime library.
      </action>
    </release>
    <release version="1.2.0" date="2019-07-02" description="Feature and bug fix release">
      <action type="fix" dev="markt" due-to="mturk" >
        Procrun. Add to OPT_LFLAGS rather than overwrite OPT_LFLAGS when setting
        /OPT:REF in the make file for Windows.
      </action>
      <action type="fix" dev="markt" due-to="mturk" >
        Procrun. Only set the global shutdown event if the event is created.
      </action>
      <action issue="DAEMON-379" type="fix" dev="sebb">
        Unable to build with Java 9 using ant; dropped Ant build files.
      </action>
      <action issue="DAEMON-384" type="fix" dev="ggregory" due-to="blassmegod">
        Procrun. prunsrv stopping with error due to hard-coded timeout.
      </action>
      <action issue="DAEMON-385" type="fix" dev="markt">
        Update config.guess and config.sub.
      </action>
      <action issue="DAEMON-388" type="fix" dev="markt">
        Jsvc. Set the sun.java.command system property when starting via jsvc so
        that tools like jconsole show something meaningful for the process name.
      </action>
      <action issue="DAEMON-391" type="fix" dev="markt" due-to="Thorsten Schöning">
        Procrun. Correct the level name used in the GUI for WARN so that changes
        made via the GUI are recognised. Order the log levels in the drop-down
        from ERROR to DEBUG.
      </action>
      <action issue="DAEMON-393" type="fix" dev="ggregory" due-to="Daniel Hofmann">
        Procrun. Correct reversed code comments for JRE and JDK locations in the
        registry.
      </action>
      <action issue="DAEMON-392" type="fix" dev="ggregory" due-to="Daniel Hofmann">
        Procrun. Undefined behavior in registry.c dwRegKey = dwRegKey++
      </action>
      <action issue="DAEMON-396" type="fix" dev="markt" due-to="Gerwin">
        Procrun. Fix a bug that meant a value provided for LibraryPath replaced
        the value of the PATH environment variable rather than prepended to it.
      </action>
      <action issue="DAEMON-396" type="fix" dev="markt" due-to="Gerwin">
        Procrun. Ensure that JAVA_HOME/bin is on the path when running in jvm
        mode so that additional DLLs, such as awt.dll, can be found if required.
      </action>
      <action issue="DAEMON-396" type="fix" dev="markt">
        Procrun. Ensure that the java.library.path environment variable is
        correctly configured when running on a JRE that depends on the Universal
        CRT.
      </action>
      <action type="add" dev="markt">
        Procrun. Log the error code returned if JVM creation fails to aid
        debugging.
      </action>
      <action type="add" dev="markt">
        Harden the Windows binaries against DLL hijacking in the directory where
        the binaries are located.
      </action>
      <action issue="DAEMON-401" type="fix" dev="markt" due-to="Jonathan Gallimore">
        Procrun. Ensure that environment variables set via prunsrv are visible
        to native libraries that depend on the Universal CRT.
      </action>
      <action type="add" dev="markt">
        Procrun. Add 'NT Authority\LocalService' and
        'NT Authority\NetworkService' as options to the Log On user interface.
      </action>
      <action type="update" dev="markt">
        Procrun. Change the default service user from LocalSystem to
        'NT Authority\LocalService'.
      </action>
      <action issue="DAEMON-402" type="fix" dev="markt" due-to="Iode Leroy">
        Procrun. Avoid a crash on shutdown if multiple WM_CLOSE messages are
        received.
      </action>
      <action issue="DAEMON-394" type="fix" dev="markt">
        Procrun. Ignore blank lines inserted into the Java Options and/or Java 9
        Options text areas. This prevents settings after the first blank line
        from being lost when saved to the registry.
      </action>
      <action issue="DAEMON-399" type="fix" dev="markt">
        Procrun. Remove the code that removed quotes from configured Java and
        Java 9 Options.
      </action>
      <action issue="DAEMON-398" type="fix" dev="markt">
        Procrun. Ensure that vfprintf is the first parameter passed when using
        JNI to create the JVM as a workaround for startup error messages not
        being visible on stdout or stderr.
      </action>
      <action issue="DAEMON-303" type="add" dev="markt">
        Procrun. Add an option to configure the service to use the 'Automatic
        (Delayed Start)' startup mode.
      </action>
      <action issue="DAEMON-329" type="add" dev="markt">
        Procrun. When running in jre mode, if the standard Java registry entries
        for JavaHome and RuntimeLib are not present, attempt to use the Procrun
        JavaHome key to find the runtime library.
      </action>
      <action issue="DAEMON-297" type="add" dev="markt">
        jsvc. Include the full path to the jsvc executable in the debug log.
      </action>
      <action issue="DAEMON-397" type="add" dev="markt" due-to="Petr Hadraba">
        jsvc. Improve search for libjli.dylib on macOS when using custom-built
        OpenJDK binaries.
      </action>
      <action type="fix" dev="markt" due-to="ggregory">
        Procrun. Improve log messages for interactions with the Windows service.
      </action>
      <action type="fix" dev="markt" due-to="YunQiang Su">
        jsvc. Improve mips detection.
      </action>
    </release>
    <release version="1.1.0" date="2017-11-15" description="Feature and bug fix release">
      <action issue="DAEMON-368" type="add" dev="ggregory">
        Add DEBUG and ERROR logging to help diagnose problems when starting a Windows Service.
      </action>
      <action issue="DAEMON-371" type="update" dev="ggregory">
        Update the minimum Java requirement from version 5 to 6.
      </action>
      <action type="update" dev="markt">
        Increase minimum Java version to Java 5.
      </action>
      <action issue="DAEMON-347" type="update" dev="ggregory" due-to="Ganesh Raju">
        Add AArch64 support to src/native/unix/support/apsupport.m4
      </action>
      <action issue="DAEMON-346" type="fix" dev="markt">
        Compile the Windows binaries with the /DYNAMICBASE and /NXCOMPAT
        switches.
      </action>
      <action issue="DAEMON-333" type="fix" dev="markt">
        Remove calls to explicit garbage collection during daemon start and
        stop.
      </action>
      <action issue="DAEMON-343" type="fix" dev="markt">
        Update config.guess and config.sub to add support, amongst others, for
        the 64-bit PowerPC Little-Endian architecture.
      </action>
      <action issue="DAEMON-332" type="fix" dev="markt">
        Ensure that the PID file on Windows, if used, is readable by other
        processes.
      </action>
      <action type="update" dev="markt">
        Update Commons-Parent to version 41.
      </action>
      <action issue="DAEMON-358" type="fix" dev="markt" due-to="Gustavo Romero">
        Update apsupport.m4 add support for 64-bit PowerPC architectures.
      </action>
      <action issue="DAEMON-282" type="fix" dev="markt">
        Suppress spurious &quot;The data area passed to a system call is too
        small&quot; error message in the log when Procrun fails to stop the
        service.
      </action>
      <action issue="DAEMON-370" type="update" dev="ggregory" due-to="Amey Jadiye">
        Move attributions from @author in Javadocs to POM.
      </action>
      <action issue="DAEMON-373" type="fix" dev="markt">
        Enable jsvc to start when running on Java 9.
      </action>
      <action issue="DAEMON-324" type="fix" dev="markt">
        Fix a resource leak opening the JVM configuration file.
      </action>
      <action issue="DAEMON-339" type="fix" dev="markt" due-to="John Wehle">
        Improve the jsvc code that restarts the process if the JVM crashes so
        that if the JVM crashes after a signal has been received to shut down
        jsvc does not attempt to restart the JVM.
      </action>
      <action issue="DAEMON-318" type="fix" dev="markt" due-to="Markus Schneider">
        Ensure that the child process is started with the correct umask.
      </action>
      <action issue="DAEMON-309" type="fix" dev="markt">
        Correct conflicting information for the behavior of Procrun when using
        jvm mode.
      </action>
      <action issue="DAEMON-372" type="fix" dev="markt" due-to="Sérgio Ozaki">
        Ensure that, when using Procrun in java or exe mode, the service process
        waits for the stop process to complete before starting clean-up to avoid
        a crash in the stop process.
      </action>
      <action issue="DAEMON-310" type="fix" dev="markt" due-to="John Wehle">
        Enable jsvc to find the jvm when running on AIX.
      </action>
      <action issue="DAEMON-302" type="fix" dev="markt">
        Ensure that Procrun treats JVM crashes as service failures so the
        recovery options will apply.
      </action>
      <action issue="DAEMON-312" type="fix" dev="markt">
        Ensure that the //MQ command closes the prunmgr process even if the
        configuration dialog is open when the //MQ command is used.
      </action>
      <action issue="DAEMON-311" type="fix" dev="markt">
        When looking in the Windows registry for JRE and JDK installation
        locations, additionally check the registry keys used by IBM provided
        JREs and JDKs. Do this after checking the keys used by Oracle provided
        JREs and JDKs.
      </action>
      <action issue="DAEMON-376" type="fix" dev="markt">
        When looking in the Windows registry for JRE and JDK installation
        locations, additionally check the registry keys used by Oracle provided
        Java 9 and later JREs and JDKs. Do this after checking the keys used by
        Oracle provided Java 8 and earlier JREs and JDKs.
      </action>
      <action issue="DAEMON-374" type="fix" dev="markt" due-to="Rashmi Ranjan Mohanty">
        Add support for Java 9 command line arguments to jsvc.
      </action>
      <action issue="DAEMON-334" type="add" dev="markt" due-to="Brett Delle Grazie">
        Add a restarts options to jsvc to control the number of permitted
        restarts after a system crash.
      </action>
      <action type="remove" dev="markt">
        Remove support for building Procrun for the Itanium platform.
      </action>
      <action type="update" dev="markt">
        Make Windows XP the minimum support target platform.
      </action>
      <action type="add" dev="markt">
        Add support to Procrun for separate JVM options for use when running on
        Java 9 and above.
      </action>
      <action issue="DAEMON-377" type="fix" dev="markt" due-to="Rustam Abdullaev">
        Fix race conditions in PID file handling in jsvc.
      </action>
    </release>
  </body>
</document>
