            Apache Commons Daemon
               Version 1.0.14
               Release Notes


INTRODUCTION:

Apache Commons Daemon is a set of utilities and Java support classes
for running Java applications as server processes.
Commonly known as 'daemon' processes in Unix terminology (hence the name),
on Windows they are called 'services'.

This document contains the release notes for this version of the
Apache Commons Daemon package, and highlights changes since
the previous version.
The current release adds new features and bug fixes, and is being done now
to follow the release early/release often mentality.


Compatibility with 1.0.3
------------------------
Binary compatible - Yes

Source compatible - Yes

Semantic compatible - Yes

Commons DAEMON 1.0.3 requires a minimum of JDK 1.3


NEW FEATURES:

* DAEMON-269: Support privilege escalation on Windows UAC for procmgr (1.0.12)
* DAEMON-264: Add -cwd to jsvc so that user can specify working
              directory. It defaults to /. (1.0.11)
* DAEMON-262: Automatically refresh manager application (1.0.11)
* DAEMON-245: Support privilege escalation on Windows UAC (1.0.11)
* DAEMON-221: Add -umask to jsvc so that users don't have to
              recompile the jsvc if different umask is desired (1.0.8)
* DAEMON-209: Add --LibraryPath to procrun for setting the
              LoadLibrary search paths (1.0.6)
* DAEMON-208: Add -server and -client -jvm <name> synonyms (1.0.6)
* DAEMON-205: Add support for building on ARM processors (1.0.6)
* DAEMON-204: Add DaemonSignal interface that allows catching SIGUSR2
              signals and creating custom callbacks (1.0.6)
* DAEMON-202: Allow JSVC_OPTS environment variable to be used in
              the example Tomcat scripts (1.0.6)
* DAEMON-180: Add DaemonWrapper to allow running standard applications
              as daemons. (1.0.4)
* DAEMON-179: Allow procrun to use java/lang/System as --ShutdownClass. (1.0.4)
* DAEMON-178: Allow jsvc umask to be configured at build time
* DAEMON-177: Allow fail during init with nicer message. (1.0.4)
* DAEMON-176: Create config.nice during configure step. (1.0.4)
* DAEMON-173: Allow --JavaHome=jdk and --JavaHome=jre options that
              will guess default JavaHome from the registry. (1.0.4)
* DAEMON-160: Remove obsolete code; rename native/nt as native/windows (1.0.4)
* DAEMON-144: Drop sample dependency on Commons Collections ExtendedProperties (1.0.4)
* DAEMON-95:  Support log rotation using SIGUSR1 (1.0.4)
* DAEMON-80:  Syslog support for jsvc (1.0.4)

* DAEMON-138: Add --PidFile option to allow storing running process id. (1.0.3)
* DAEMON-137: Add --LogJniMessages allowing to configure JNI verbose message
              logging. By default those messages were always logged. (1.0.3)
* DAEMON-140: Add missing Java6 parameters -ea, da, -esa, -dsa, -showversion
              and their long name synonyms. (1.0.3)
* DAEMON-142: Add option to display procrun version. (1.0.3)
* DAEMON-166: Add classpath .jar expansion. If the classpath
              element ends with asterisk it will evaluate to all .jar files
              found in the path. (1.0.3)

* Add -wait and -stop parameters. (1.0.1).
  The -wait parameter is experimental: that a is loop testing for a
  file in /tmp and waiting n/10 seconds.

* Allow to run as normal user for testing. (1.0.1).

* Initial import to Commons, including the daemon Java API, and jsvc
  for Unix and Windows NT/2K/XP, which allows running a Java program
  as a native operating system daemon

* Switch to JIRA bug tracking system.

* Add sample ProcrunService Java application for use with Procrun Jvm/Java modes (1.0.3)

BUG FIXES:

1.0.14: DAEMON-278, DAEMON-280, DAEMON-281, DAEMON-283, DAEMON-284, DAEMON-286,
        DAEMON-287

1.0.13: DAEMON-275, DAEMON-276

1.0.12: DAEMON-268, DAEMON-272, DAEMON-274

1.0.11: DAEMON-244, DAEMON-246, DAEMON-247, DAEMON-252, DAEMON-253, DAEMON-254,
        DAEMON-255, DAEMON-257, DAEMON-261, DAEMON-263, DAEMON-265, DAEMON-266,
        DAEMON-267

1.0.10: DAEMON-241, DAEMON-242

1.0.9: DAEMON-232, DAEMON-233, DAEMON-234, DAEMON-237, DAEMON-240

1.0.8: DAEMON-195, DAEMON-215, DAEMON-216, DAEMON-218, DAEMON-219, DAEMON-220,
       DAEMON-222, DAEMON-223, DAEMON-224, DAEMON-227, DAEMON-228

1.0.7: DAEMON-211, DAEMON-214

1.0.6: DAEMON-186, DAEMON-193, DAEMON-194, DAEMON-206, DAEMON-185, DAEMON-200
       DAEMON-192

1.0.5: DAEMON-158, DAEMON-184, DAEMON-187, DAEMON-188, DAEMON-190

1.0.4: DAEMON-95, DAEMON-171, DAEMON-100, DAEMON-164, DAEMON-165, DAEMON-175,
       DAEMON-177, DAEMON-150, DAEMON-163, DAEMON-182, DAEMON-181

1.0.3: DAEMON-108, DAEMON-128, DAEMON-139, DAEMON-143, DAEMON-148,
       DAEMON-135, DAEMON-155, DAEMON-159, DAEMON-161, DAEMON-145, DAEMON-146,
       DAEMON-167, DAEMON-168, DAEMON-154, DAEMON-149

1.0.2: DAEMON-16, DAEMON-31, DAEMON-40, DAEMON-45, DAEMON-49, DAEMON-60,
       DAEMON-84, DAEMON-90, DAEMON-91, DAEMON-92, DAEMON-93, DAEMON-94,
       DAEMON-96, DAEMON-97, DAEMON-98, DAEMON-102, DAEMON-105, DAEMON-106,
       DAEMON-110, DAEMON-112, DAEMON-113, DAEMON-114, DAEMON-115, DAEMON-116,
       DAEMON-117, DAEMON-118, DAEMON-119, DAEMON-120, DAEMON-121, DAEMON-123,
       DAEMON-124, DAEMON-125, DAEMON-126, DAEMON-129, DAEMON-130, DAEMON-132,
       DAEMON-133

1.0.1: 304310,  30177, 27523, 29465, 31614, 33580, 31613, 34851.

Feedback
--------
Open source works best when you give feedback:
http://commons.apache.org/daemon/

Please direct all bug reports to JIRA
https://issues.apache.org/jira/browse/DAEMON

Or subscribe to the commons-user mailing list (prefix emails by [daemon])
http://commons.apache.org/mail-lists.html

The Apache Commons Daemon Team
