yajsw-beta-12.06
- Change: libs: netty-all-4.0.35.Final, commons-cli-1.3.1, commons-collections-3.2.2, commons-configuration2-2.0
- Bug: No application logs on yajsw 11.11 / Ubuntu 14.04
- Bug: Windows 10 DELAYED_AUTO_START
yajsw-beta-12.05 Mars 13th 2016
- Bug: java app arguments bad sort
NOTE: Windows: If you have installed java 8 and an older version on the same machine: set the configuration properties
wrapper.java.command = <full path to java>
wrapper.ntservice.java.command = <full path to java>
yajsw-beta-12.04 Dec 24th 2015
- Bug: windows service: bad quotes in java service command line.
-
Bug: script not executed: too many concurrent executions
- Bug: posix_spawn: application does not set working dir.
- Bug: Windows 10: Exception in service install
- Bug: query daemon must be executed with root priv
- Bug: process does not start if space char in folder or environment
- Bug: Mac OS X Yosemite: service install fails
- Bug: 'java -jar wrapper.jar -c http://../wrapper.conf' throws class not found exception
- Bug: error writing from system tray icon to stdin of wrapped process
- Bug: some pdh should return long instead of int
- New: support app shutdown listener, similar to JSW
- New: keystore function. See documentation for details.
- Change: update to netty 4.0.33 and jna 4.2.1
- Change: fix APL license header, format source, organize imports
yajsw-beta-12.03 October 5th 2015
- Bug: windows service:
add
quotes to java command if it contains blank
-
Bug:
genConfig: error parsing java command line
-
Bug:
JVMController: use parameter instead of fixed timeout when reconnecting
- Bug: wrapper hangs if tray port in use
- Bug: bad quotes in java options
- Bug: Randomly: killed sub-process does not close channel to wrapper thus not allowing restart of application
- Change: Log
an error if folder listing returns null (in java this may be a network
hdd error)
- Change:
update ahessian
- Change:
updated groovy scripts: logging
- Change: property:
wrapper.posix_spawn is now default for all posix OS
- Change: MyFileHandler due to
license conflict
- Change: log if a folder listing
returns null (java: error accessing a network drive)
NOTE: property:
wrapper.posix_spawn is now default for all posix OS
yajsw-beta-12.02 June 23rd 2015
- Bug: posix: when wrapper.app.env is set, "java" is not
found -> changed execve to execvpe
- New: property: wrapper.posix_spawn
: Note: in a next release this property will be set by default and will
override wrapper.fork_hack. This implementation is an adaption from
nuprocess
- New: property: wrapper.posix_vfork
- Change: reverted to netty 4 lib: there are some projects
out there which require java 6.
NOTE: requires java 6 or
higher for both wrapper and wrapped application
yajsw-beta-12.01 April 28th 2015
- Bug: Quotes in java command line
- Bug: multiple bugs in RuntimeJavaMain
- Change: switched from quartz
to yacron4j.
- Change: removed pause from batch files.
- Change: updated groovy and netty libs
- New: Configuration property: wrapper....script.<n>.maxConcInvoc
- New: Support for vfs-dbx
(dropbox). thus command files and automatic updates can be done from
dropbox.
- New: Configuration property: wrapper.debug.level
- New: Configuration property: wrapper.filter.debug.default
- New: Configuration properties: wrapper.wrapperJar,
wrapper.appJar
- New: Configuration property: wrapper.logfile.desc
- Patch:
Make the console output fill the window when resized
- Patch:
Startup under AIX 7.1 fails due to StringIndexOutOfBoundsException
- Patch:
Fix "No such file or directory" error on Mac OSX with Java 1.7
- Patch:
Fix getPid() in MacOSXService
- Patch:
MacOSX: Make sure that install script works on vanila machines (when no
custom services installed yet and directory is not exists)
- Patch:
made sure wrapper works on Mac when installed in directory with spaces
- Patch:
MacOsxService does not append configuration parameters to the execution
command
NOTE: requires
java 7 or higher.
yajsw-alpha-12.00 September 14th 2014
- Bug:
MacOsX - thanks for the patch
- Bug: WrappedRuntimeProcess: sort arguments according to
configuration keys
- Change: update
to latest jars: commons-collections-3.2.1,
commons-configuration-1.10, jna-4.1.0, netty-all-5.0.0.Alpha2-SNAPSHOT,
groovy-all-2.3.0-beta-2
- Change: move
groovy dependency to lib/extended
- Change: do not add passwords to command line of processes
or services
- Change: minor logging changes and other minor
changes.
- Change:
license change - see documentation
- Change: regex in configuration files: switched from jrexx
to dk.brics.automaton. moved
jar to lib/extended. functionality is thus optional. NOTE: regex syntax may have
changed
yajsw-stable-11.11 January 25th 2014
- Bug: on application restart: stream of prev
process is open although new process started.
- Bug:
11.10 zip file incorrect version
- Bug: Linux: quotes and spaces in command line paths
- Bug: Bug: WrappedRuntimeProcess: mkdirs if folder for pid
file does not exist
- Bug: Minor changes in RuntimeJavaMain
- Bug: missing .processTerminated invocation in
WrappedRuntimeProcess
- Bug: NPE when restartGC is set but no no output format is
set.
- Change: logging in gobbler
- New: new: Property wrapper.ntservice.process_priority
yajsw-stable-11.10 January 3rd 2014
- Bug:
Problems with quotes in windows services and if classpath path contains
blank
yajsw-stable-11.09 December 23rd 2013
- New: Property: wrapper.runtime.pidfile:
create a pid file for runtime applications
- New: Property: wrapper.image.javawrapper:
wrap a runtime application with a java application, so that (on
winodws) we can restart the wrapper process and reconnect to the
secondary java wrapper without restarting the native application.
- New: Property wrapper.filter.debug.<trigger
key>=true to enable logging of trigger executions
- New: Property: wrapper.debug.comm:
enable tcp/ip communication trace with wrapped application
- New: Property: wrapper.ntservice.stop_dependency:
Linux stop dependency
- New: source on sourceforge git
- Change: source folder structure
- Change: src folder structure to meet maven requirements.
Gradle build scripts adapted accordingly.
- Change: monitor.gc when wrapper.java.monitor.gc message
template
is not set, but wrapper.java.monitor.gc.restart is set in this case no
gc information is logged to output, but gc data is sent to the
controller.
- Change: app shutdown script: be invoked only once; avoid
triggering of shutdown hook when executing app shutdown script
assume that app shutdown script will stop the process. if not it will
be killed after timeout
- Change: ahessian: (not relevant for yajsw): new: inverse
server rpc.
- Bug:
Searching for 32-bit JVMs on Windows x64
- Bug:
error in mbean objectname when title includes ":"
- Bug:
abs path wrapper.java.classpath with * in linux not working
- Bug:
Linux service scripts not compatible with chkconfig
- Bug:
"Bad substitution" because of not escaped quotes
- Bug: CyclicBufferFileInputStream: probable endless loop
- Bug: Runtime process does not restart when invoked through
a trigger
yajsw-stable-11.08 October 27th 2013
- Bug:
System tray icon on windows 7
- Change:
check java 7 also for wrapped application and system tray icon
- Change:
notify port issues for system tray icon
yajsw-stable-11.07 July 8th 2013
- Bug:
checking java 7
- Bug:
Memory Leak -> update to netty 3.5.6
- Bug: wrapped applications started concurrently may
have the same out_, err_, in_ file names.
- Bug:
Linux: Permission denied since 11.4
- Change:
forward wrapper java options used in the configuration to the wrapped
application
- New:
new property: wrapper.ntservice.reduce_signals
- New: new property: wrapper.console.use_interpolated
- New: new property: wrapper.app.status.log.lines
yajsw-stable-11.06 April 20 2013
- Bug:
Jna tmp folder
- Bug:
yajsw prints wrong version
- Bug: netty: do not use sun.misc.Unsafe,
this may crash the JVM (we do not need high performance)
- Bug:
windows >= vista and java >= 7: check that
java.net.preferIPv4Stack=true is set and set it in the windows batch
file and service command line
- Bug: possible loop in JVMController.processStarted()
- Change: minor changes in WrappedJavaProcess.getDOption(),
WrappedJavaProcess.reconnect()
- New:
new property: wrapper.restart.reload_cache
- New: script: vfsCommandCondition.gv
yajsw-stable-11.05 March 3rd 2013
- Bug:
WrapperJVMMain.WRAPPER_MANAGER.signalStopping() is broken
- Bug: while (true) {wrappedJavaProcess.init();
wrappedJavaProcess.start(); wrappedJavaProcess.stop() } fails to
immediatly stop the application.
- Bug:
NPE in WrapperManagerImpl
- Bug:
[3605341] NoClassDefFoundError:
org/rzo/yajsw/srvmgr/server/Ser
- Change: WrappedProcess.start() now resets the restart
counter.
yajsw-stable-11.04 January 11th 2013
- New: Autoupdate of wrapper and application. see documentation
for details
- New:
command "-rw": remove and wait until the service has been removed.
- New:
property wrapper.logfile.maxdays
- Bug:
Installing a multi-config wrapper as daemon
- Bug:
AIX, FreeBSD: Undefined symbol "stdout", error installing daemon
- Bug:
Mac OS Can't connect to Window
- Bug:
wrapper.app.env broken in 11.03
- Bug:
wrapper.cleanup_tmp not working as supposed
- Bug:
Nested braces / absolute path in wrapper.conf
- Bug:
Changed VFS so that it does not use an xml parser
- Bug: shutdown
wait timeout negative
- Bug:
JarBuilder: Source code discrepancy
- Change: make yajsw less talkative if wrapper.debug is not
set.
NOTE:
meaning of
wrapper.logfile.maxfiles
has changed: if logfile rolling is set to DATE, maxfiles refers to the
number of files per day not the total. Set maxdays to limit the total
number of files.
yajsw-stable-11.03 August 26th 2012
- Bug:
11.02 does not work with Java 1.5
- Bug:
.svn dir in src\ahessian\org\jboss\netty\handler\ipfilter
- Bug:
java.io.IOException: The handle is invalid -> print message
instead of stack trace
- Bug:
configuration file: error evaluating include directives with
env vars.
- Bug:
Problems geting stdout with Solaris 10 sparc:
- Bug:
Windows: totalRAM in WindowsXPSystemInformation
- Bug: commons logging, default (log4j) does not log to file.
- Bug: Error creating wrapper.app.pre.script
- Bug: Application could not restart due to hacker TCP/IP
connection to wrapper controller
- Bug: ahessian may hang similar to
java bug in ReentrantLock
- Change: when setting environment vars: use javas
System.getEnv()
- Change: Executing jar files: classpath from manifest are
added to the classpath of the application.
- New:
wrapper.config.script.<n>
for user defined scripts within the configuration
- New: decode.gv
groovy script for decoding properties within the configuration file
- New: wrapper.script.<n>.<state>:
allow multiple scripts for the same state transition. For compatibility wrapper.script.<state>
will be interpreted as <n> being set to "". Execution
order of the scripts is the alpha-numeric order of <n>
- New:
Unset properties by setting ${return null}
- New:
\r\n line endings: wrapper.logfile.format=LPNTM\r\n
- New: property wrapper.cleanup_tmp
default: true, clean up the tmp folder of err_ ... files at startup.
Note: jna cleans up its files at startup.
- New: property wrapper.tray.spawn_process
yajsw-stable-11.02 June 10th 2012
- Bug:
cmd line config override broken since 10.5
- Bug:
Linux: evaluating wrapper.ntservice.additional
- Bug: same script should not execute concurrently
- Bug:
WRAPPER log rolling doesn't work
- Bug:
rollmode DATE always keeps 10(=wrapper.logfile.maxfiles)
files for every date
- Bug: in stop configuration include of main configuration
must be absolute.
- Bug:
installDaemon.sh not doesn't work
- Bug:
totalRAM() hangs
- New:
wrapper.script.reload allow update of scripts without
restart of wrapper: file changed date is checked before script execution
- New:
wrapper.script.encoding,
wrapper.log.encoding, wrapper.conf.encoding configuration
properties to set the encoding of the script, log and configuration
files.
- New:
wrapper.console.pipestreams
for wrapped java processes: stdout and stderr are streamed to the
wrapper instead of t-ing System.out and System.err
- New: log os, yajsw, jvm versions
- Change: upgraded libraries: configuration-1.8,
netty-3.5.0Beta1, commons-vfs2-2.0, jna-3.4.1
- Change: Separated
Posix and Windows batch files to folders bat and bin !
- Change:
calculate totalRAM/freeRAM only when required.
- Change: build: dependency versions defined in main build
script
yajsw-stable-11.01 April 11th 2012
- Bug:
handling ping timeout, in some cases ping timeout may
trigger too early, ping timeout may result in stop instead of restart.
- Bug: Duplicate
parameters for launched service
- Bug:
Linux: app.wrapper.account doesn't with fork_hack
- Bug:
Linux: wrapper.fork_hack spawns java with wrong jna lib
- Bug: Linux: randomly process will not restart
- Bug:
wrapper.on_exit.1=SHUTDOWN
System.exit(1) does not shutdown wrapper
- Bug:
exception when stopping wrapper console using CNTRL-C
- Change: value for property wrapper.on_exit:
STOP:
will cause the application to stop (note: wrapper will stop depending
on the wrapper.control property), SHUTDOWN:
will stop the application and the wrapper
- Change:
java system property jna.tmpdir
for setting the tmp folder for jna library files.Please refer to the
documentation. wrapper.tmp.path
per default set to jna.tmpdir
- Change: per default tmp files are created in
<yajsw>/tmp
- Change: per default log files are created in
<yajsw>/log
- Change: reworked log file rolling.
- Change:
use wrapper.app.parameter for native exes
- Change:
commandCondition.gv: commands for start/stop of
cyclic thread dump
- Change:
ROLLNUM always appended
to logfile
- Change: Linux: installDaemon.sh, startDaemon.sh,
stopDaemon.sh calls sudo
- New: properties for restarting the application in case of
excessive memory or full scan gc usage: wrapper.java.monitor.gc.threshold,
wrapper.java.monitor.gc.restart,
wrapper.java.monitor.heap.restart
- New:
wrapper.logfile.rollmode= DATE
yajsw-stable-11.0 Februray 22nd 2012
- Bug:
System tray icon causes exception
- Bug:
genConfig: does not handle jdk 6 wildcard in classpath: note: yajsw
handles wild cards differently !
- Bug:
error resolving wild cards in case classpath is "lib/ folder/*"
- Bug:
Specifying java command in environment: better logging if command not
found.
- Bug:
Not equals configuration under Windows and Unix: replaced in unix batches yajsw
with wrapper !!
- Bug: When installing a service "remember" required
environment variables.
- Change:
wrapper.java.customProcName:
if this is an absolute path, the given path is used.
- Change:
wrapper.java.command
must be a file: Windows: if .exe is missing it is automatically
added.
- Change:
Enhanced logging when determining java command.
- Change: update to jna release 3.4.0
- Change: update to netty release 3.3.1
- Change: update to groovy release 1.8.6
- New:
Configuration property wrapper.save_interpolation,
default: value true
- New:
Configuration properties for windows services:
wrapper.ntservice.delayed_autostart, wrapper.ntservice.failure_actions.reset_period,
wrapper.ntservice.failure_actions.reboot_msg, wrapper.ntservice.failure_actions.command, wrapper.ntservice.failure_actions.action, wrapper.ntservice.failure_actions.action_delay
- New:
property wrapper.ntservice.java.command
for running the service wrapper process with a java command different
then wrapper.java.command.
- New: property
wrapper.ntservice.java.customProcName for copying the java
command of the service wrapper process.
NOTE:
JBoss 7: runs
only with java version prior to 6_17 or higher than 7_0.
yajsw-beta-10.12 December 18th 2011
- Bug:
Error evaluating ${...} expressions in configuration. Error installing
daemon on Linux
- Bug:
yajsw-beta-10.11 manifest missing jars. Note: jars moved from
lib/core to lib/extended
yajsw-beta-10.11 November 27th 2011
- Bug:
Jboss 7 startup fails logging initialisation -> do not use
java.util.logging in WrapperJVMMain
- Bug:
Error resolving ".." and "." in wrapper.java.classpath property
- Bug:
Reworked setenv.gv script
- Bug: Error parsing groovy script -> remove
index.list from glazedlist jar file.
- Bug:
PosixService.stop() fixed timeout. thanks to ddahlmann for the patch
- Bug:
maxmemory parameter doesn't work without initmemory
- Change:
Added logging in application scripts
- Change:
Absolute Minimum Files To Run On Windows -> removed unused jar
files, moved jar files to lib/extended
- Change: "Remember" environment variables and system
properties
when installing a service. Up to now only interpolations were
"remembered"
- New:
Interpolated config options become "hard coded" -> new
configuration property: wrapper.save_interpolated,
default value: true
- New: Sample configuration file for oracle odi
- New: Sample configuration file for JBoss 7
- New: Sample script for thread dump on application exit.
yajsw-beta-10.10 October 15th 2011
- Bug: genConfig: error parsing jvm options.
- Bug: process may not restart, if application start fails
after first restart
- Bug: tray icon: possible port leak if connection fails.
- Bug: tray icon: multicast discovery: may cause message
flood if running on multiple computers in a network
- Bug:
windows: install service: bad java exe
- Bug:
application not started on linux: new property: wrapper.fork_hack
- Bug:
Linux: application restarts every 25 days.
- Change: tray icon: windows: close popup menue on mouse
click.
note: java implements this only with awt, not with swing ->
using
jna to listen to mouse events outside java. If anyone knows how to
implement this for linux, pls let me know.
- Change: split ahessian.jar -> ahessian.jar,
hessian4.jar in future these may be extracted to a separate project.
- Change: AbstractWrappedProcess: remove synchronized from
stop(), so we can stop a process while it is restarting/starting.
- New:
added authentication to sendMail script.
- New:
windows: UAC support: WrapperExe: if required, elevate process for
service start, stop, install, remove.
- New: windows: support service installation with
delayed autostart:
wrapper.ntservice.starttype=DELAYED_AUTO_START
- New:
tray icon: property
wrapper.tray.look_and_feel = <L&F full
class name>
- New:
tray icon: display virtual and private memory.
yajsw-beta-10.9 August 14th 2011
- Bug: Corrupt source file in distribution
- Bug: NPE in ahessian.
- Bug:
genConfig: Error parsing -jar with space in jar path.
- Bug: application not restarted on server with high load:
Thread race issue
- Bug:
Linux: genConfig: NPE.
- Bug: class not found exception in applications which use
commons configuration: error in build script
- Bug: error in build script: adjusted dependencies
- Bug:
misspelled "relative" in default configuration.
- Bug: RESTART state change trigger may stop the application
- Bug:
Error in
DateFileHandler.rotateDate() using 24h time
- Bug:
monitor gc: could not find minorGCBean
- Bug:
Windows: missing WrappedProcess.getCluster()
- New: method
WrappedProcess.gc() & gc button in system tray
icon console.
- New: method WrappedProcess.dumpHeap(String
file) & dump heap button in system tray icon
console
- New:
method WrapperJVMMain.WRAPPER_MANAGER.signalStopping(long
waitHint).Thanks to ddahlmann for the patch.
- New:
method WrapperJVMMain.WRAPPER_MANAGER.getProperties().
- New: Windows: method WrapperJVMMain.WRAPPER_MANAGER.getStopReason().
Returns a string indicating why the application is being stopped:
"SERVICE", "COMPUTER", "USER", "PING_TIMEOUT", "RESTART", null. This
method can be called within a shutdown hook of the application.
- New:
Tray Icon: Configuration properties: wrapper.ntservice.autoreport.waitready,
wrapper.tray.text.dialog_exit_tray,
wrapper.tray.text.dialog_stop,
wrapper.tray.text.dialog_restart,
wrapper.tray.text.dialog_exit_wrapper,
wrapper.tray.commands.
Thanks to shacharo for the patch.
- New: Tray Icon: Dialog before stopping
wrapper/application/tray controlled by property: wrapper.tray.dialog.
Default: true
- New: Tray Icon: Script to set tray icon state color
- New:
windows bat: runConsoleW.bat, systemTrayIconW.bat
yajsw-beta-10.8 June 26th 2011
- Bug: Linux:
daemon is not shut down cleanly
- Bug: wrapper.restart.reload_configuration error
on application restart
- Bug: genConfig aborts for "java -jar app.jar"
- New:
Windows Vista and higher: handle session 0 for services: wrapper.ntservice.logon_active_session:
wait for user to logon and logon the application as this user. wrapper.ntservice.desktop:
the name of the desktop for the application. Should be set to WinSta0\\Default.
- New: Configuration property: wrapper.java.monitor.gc,
wrapper.java.monitor.gc.intervall
to print gc logging to System.err
- New: Configuration property: wrapper.filter.missing.autostop.<n>.
Default true. If set to false the trigger will remain active after the
trigger has been activated, resulting in continuous trigger monitoring.
- Change: use commons EnvironmentConfiguration to resolve
environment variables in configuration -> correct handling of
case
under windows.
- Change: systemInformation().totalRAM() hangs on some
machines
-> avoid invocation if configuration does not require RAM
calculation
- Change: win64: got Process.getCommandline to work so we do
not need to call wmi.
- Change: do not replace "\\" by "/" in environment variables.
- Change: newest jna and groovy libraries.
yajsw-beta-10.7 May 21th 2011
- Bug:
Error restarting application when using wrapper.stop.conf
- Bug: Windows: wrapper.java.classpath.5=C:/test/yajsw/lib/core/commons/*.jar
does not resolve files. Issue was: new File("C:").getAbsolutePath()
returns current working dir instead of C:/
- Bug:
Default startup timeout is 15 and not 30 as documented
- Bug:
Linux: Error in environment variable expansion
- Bug: setting wrapper.app.pre_main.script causes
class not found exception
- Bug: wrapper.restart.reload_configuration
does not reload the configuration file.
- Bug: Deadlock if WrappedProcess.start() is called while
process is restarting.
- New: Configuration Properties wrapper.java.monitor.deadlock,
wrapper.java.monitor.heap
for details please refer to the configuration documentation.
- New: Windows: wrapper.console.minimized
for indicating if the console of the application should be minimized at
startup.
yajsw-beta-10.6 March 19th 2011
- Bug:
property should be wrapper.logfile.format
instead of wrapper.logf.format
- Bug:
class cast exception when wrapper.java.app.jar
is set
- Bug:
yajsw exception when using jrockit jvm.
yajsw-beta-10.5 March 6th 2011
This release is dedicated
to
My
Blind Tunes,
my kids' first android app. Please support them by downloading the app
and if you like it by giving them 5 stars rating. Thanks !
- New: logging format: added 'N' option
-> display application name.
- New: one wrapper/service multiple processes: java -jar
wrapper.jar -c conf/p1.conf conf/p2.conf. Service name is
taken from
the first configuration.
- New: maxStartup.gv
sample script to check that application reports startup within a
timeout by printing a "started" messasge on the console.
- New: sample for running eclipse equinox OSGI server with
clean shutdown
- New: maxDuration.gv
sample script for checking that an application does not run longer than
a given duration
- New: gradle
build script for yajsw
- Change: Default logging format: LPNTM
- Change: ahessian and srvmgr now in separate jars.
- Change: reworked logging.
- Change: reworked windows Cluster.java and Pdh.java
- Change: reworked FileUtils moved windows specific code to
os.ms.win32 package
- Change: newest groovy and netty releases.
- Bug:
Windows 2008 handling of user credentials in service
- Bug: groovy script initialization may cause memory leak if
process is restarted often
- Bug:
Windows: Windows Services manager reports error when service stops
- Bug:
Environment variables are not set in application
- Bug:
Linux: GenConfig: command line max 1024
- Bug:
Remove shutdown hooks to avoid memory leaks
- Bug:
In case wrapper.jar.app.jar is set, add the jar to the classpath
yajsw-beta-10.4 October 10th 2010
- Bug:
Win64: Exception when switching application account ->
use newest jna release.
- Bug:
Vista: Wait for service to start before showing "service not started"
- Bug:
Linux: account group not set
- Bug:
Linux: NPE when starting a daemon
- Bug: Thread race condition within the wrapper when
restarting an application.
- Bug:
Ping timeout on Windows 2008
- New:
new configuration property wrapper.app.env.<key>=<value>
for setting application environment variables.
- New:
Windows: WrapperJVMMain.WRAPPER_MANAGER.reportServiceStartup()
and configuration property wrapper.ntservice.autoreport.startup
- New: Tested on Unbutu 10.10 32 and 64 bit, OpenJdk jdk 6
- Change: Windows: configuration file: convert environment
keys to lower case.
- Change: newest netty release.
- Change: ahessian changes for android
- Change: wrapper.daemon.run_level_dir
set to a script in wrapper.conf.default should handle most linux
distros.
- Change: genConfig: do not set user account, since most
users will comment this out.
- Known Issue: Linux: wrapper cannot reconnect to java
application, wrapper file descriptors not closed on fork of application.
yajsw-beta-10.3 July 29th 2010
- Bug: ClasscastException when defining
wrapper.filter.trigger.1=,
wrapper.filter.script.1=,wrapper.filter.action.1=
- Bug: Defining wrapper.filter.trigger.1=x,
wrapper.filter.script.1=, wrapper.filter.trigger.2=x,
wrapper.filter.script.2= will execute only one script
- Bug: Windows Services: under high load, on server reboot,
or on
high value of wrapper.startup.delay, application start may take longer
than windows service timeout -> start application in a separate
thread and return to windows service controller asap
- Bug: under high load on application restart: restart
triggered by
multiple state changes -> supress restart if we are already
restarting.
- Bug: Linux: service does not start at boot
-> exit codes in line with LSB.
On the same occasion: changed posix daemon template to conform to LSB
- Bug: [3011626]
wrapper.script.STOP
doesn't work
- Bug: [3011629]
Windows: service shutdown does not wait for application termination.
- Bug: Exception in CyclicBufferFileInputStream if file is
closed.
- Bug: In case the same filter trigger fires for consecutive
lines, at random the scripts are called with the wrong line.
- Bug: Cannot start application in case main method is
inherited from a super class.
- !! Change: [3011629]
new configuration properties:
wrapper.filter.script.<n>.timeout,
wrapper.script.<state>.timeout.
- Change: updated to newest releases of: groovy, jna, quartz,
velocity
- Change: System tray icon now uses asyncrhonous hessian over
netty and
multicast discovery instead of rmi.
- Change: [3004022]
Linux: a group is defined by setting
wrapper.app.account = <group>\<user> (note:
use \\ in
configuration file). if no group is configured change to
default group of the user.
- !! Change:
Posix: the syntax of wrapper.daemon.run_level_dir has changed: wrapper.daemon.run_level_dir
per default ist set to <wrapper.daemon.dir>/rcX.d,
for Ubuntu this property should be set to /etc/rcX.d.
- !! Change:
Posix: the property wrapper.daemon.k_order
has been removed. Use wrapper.daemon.update_rc instead.
- !! New:
Posix: wrapper.daemon.update_rc property for defining start and
stop run levels. Syntax is similar to the update-rc.d
command. Default value is the default of that command.
- New:
System tray icon console: pause, clear & filter
console output.
- New: wrapper.filter.trigger.1=x,
wrapper.filter.script.1=, wrapper.filter.trigger.2=x,
wrapper.filter.script.2= will execute scripts and actions in
alpha-numeric order of trigger key (<n>) thus
allowing one to define the order in which scripts are invoked for the
same trigger or for the same state change.
yajsw-beta-10.2 April 12th 2010
- Bug: genConfig: generating configuration file for "java
-jar x.jar"
- Bug: Windows: when server is under high load: cannot stop
wrapped process: isRunning() returns true although process is stopped
- Bug: sendMail.gv: add try/catch - thanks to jeff 303 for
the patch
- !! Bug: since beta 10.1: Socket.ReuseAddress(true) in
wrapper -> multiple wrappers use same port.
- Bug: Mac OS X: genConfig uses posix methods instead of BSD.
- Bug: Mac OS X: socket exception when restarting
application. -> keep wrapper server socket bound on restart.
- Changed: removed counter in WrapperManagerImpl.
Now waiting until startup timeout.
- Changed: logging in WrapperManagerImpl if wrapper.debug=true
- Changed: extended JSW migration guide to include
environment variables
- New: experimental - multicast discovery: service manager
client
can discover service manager servers and the port on which they are
listening.
- New: sample configurations for activemq and jboss
- New: configuration property wrapper.java.debug.port
-> sets the java -Xdebug ... property and overrides
timeouts to maximum value
- New: configuration property wrapper.jmx.user, wrapper.jmx.password
-> sets the credentials for remote access to the wrapper jmx
server
- New: included sample security profile file. Fine grained
security profile can be generated using src\build\secmanager.
- New: wrapper.app.pre_main.script:
script executed before the
main method is invoked but after the WrapperManager has been configured
and a connection has been established to the wrapper.
yajsw-beta-10.1 February 20th 2010
- Bug: Windows: JVM crashed when getting process environment
- Bug: ServiceManagerServer: minor bugs.
- Bug: Linux genConfig: NullPointerException getting
classpath from environment
- Bug: Linux: Classpath File not found
- Change: Network Install: can use yajsw zip from sourceforge
- Change: Hessian Android-able, first step to service manager
client on android -> removed hessian.jar from lib folder
yajsw-beta-10.0 February 7th 2010
- Bug: genconfig : error parsing java command line
- Bug: Exception in VFS due to
DocumentBuilderFactory.newInstance(), when xerces is available in a jar
manifest but not in classpath
- Bug: genConfig: get CLASSPATH from process environment
- Bug: [2931270] Linux daemon only stops
after timeout expired
- Bug: Linux: File handlers not closed: handlers and pipes
are now closed
- Bug: Linux: ConnectionRefusedException on application
restart
- Bug: In case of gobler panic: do not restart if already in
restart state.
- Bug: Gobler checks old process -> used process id
- Bug: Linux: classpath wildcard error when path is absolute
- Change: WrappedProcess.stop(): stop process if process is
in state RESTART.
- Change: [2910062]move println to logging. Thanks to lokman
for the patch.
- New: ServicesManager client + server - prototype windows
only
- New: network loading: can load a zip -> does not
required webdav. Demo changed to run from yajsw.sourceforge.net
yajsw-alpha-9.5 November 24th 2010
- Bug: Posix: pid file location
- Bug: genConfig:
-Xms512m -Xmx1024m
-XX:MaxPermSize=256m not parsed correctly
- Bug: MacOsX fork process
- Bug: "operation on non socket" error on windows ->
switched
from mina to netty, so that we can use OIO
instead of NIO. Added HANDLE_FLAG_PROTECT_FROM_CLOSE in
WindowsXPProcess.start(). This seems to help, but do not ask me why.
- Bug: Since 9.4: error using commons Configuration in java
application. -> split wrapper.jar in 2 jars:
wrapper.jar,
wrapperApp.jar.
- Bug: Windows: service does not stop when application stops
- Bug: Restart native application
- Bug: Solaris installDaemon
- Bug: [2875747] Posix: wrapper.shutdown.timeout has no effect
- Bug: Posix: systemTrayIcon: start daemon -> daemon
may hang:
tray icon should not start a sub process but call
<link>
start
- Bug: Stack overflow in CyclicBufferFilePrintStream in case
wrapper is slower than application.
- Bug: [892090] Enabling the tray icon is broken and not well
documented
- Change: Posix: added conf/pid/description to daemon script
header
- Change: optimized CyclicFileBuffer
- Change: [2897101] Posix: multiple daemon run
levels: wrapper.daemon.run_level_dir.<n>, wrapper.daemon.k_order.<n>, wrapper.daemon.s_order.<n>
for same <n> a k or s link is created in the given folder.
- Change: newest jna.jar and groovy.jar
- Change: genConfig: rewrite parsing java command line
-> tools.jar no longer required.
- Change: restructured src folder
- New: property to check how often a message must appear on
the screen within a time period: wrapper.filter.missing.trigger.<n>=poll
sucsessfull, 1, 10
- New: property to define a script for calculation of restart
delay. wrapper.restart.delay.script.
Thus restart delay can be set for example to a linear function, or to
check availability of resources before restarting.
- New: property to set a pre application script which is
executed
within the wrapped application before the main method is executed: wrapper.app.pre.script.
This can be used to define network printers and disks before starting a
service.
- New: Windows Cluster: New method process.cluster.groupInfo:
returns a Map<String, String> with <group-name,
current-node-of-group>. One may thus start/stop the
application
when specific cluster groups change.
- New: Java Web Start support: boot wrapper through java web
start
- New: enabled multiple commands: java -jar wrapper.jar -ity
<conf> : install, start service and start tray icon.
NOTE:
take care when building wrapper.jar, wrapperApp.jar, wrapperWS.jar:
wrapper.jar
should not
include the classes: ...yajsw.app.*
except for *Impl*.
wrapperApp.jar
includes
only the classes ...yajsw.app.* + ...yajsw.boot.*
except for *Impl*
both have the same manifest.
wrapperWS.jar is built by running the class WebStartBooter with JVM
option -verbose:class and using JarBuilder (see src/builder/...). This
jar has to be signed. You may use build/sign.bat for this.
yajsw-alpha-9.4 September 20 2009
- Bug: NPE in WindowsXPProcess.kill
- Bug: windows: user account/password
- Bug: win64 reconnect: getting command line NPE in case
server is overloaded
- Bug: MacOsX: launchd typo
- Bug: endless loop in CyclicFileBuffer
- Bug: windows: service description corrupt
- Change: newest mina.jar and jna.jar
- New: loglevel STATUS, but log first 20 lines of app output
to see if something went wrong during startup.
- New: unit tests using testNG and Groovy and jmock
- New: groovy scripting in wrapper configuration ->
groovy jar now part of core libs
- New: enter passwords through CLI or system tray icon
NOTE: this release is buggy on MacOsX this will be solved in a next
release
yajsw-alpha-9.3 August 28 2009
- Bug: do not log restart when stopping service
- Bug: Windows: time out on service stop
- Bug: Remote Launch: /x/x could not be copied
- Change: service install: if service is already installed
uninstall it first then reinstall it
- Change: System Tray Icon now runs in a separate process.
New: Buttons for: stop wrapper, start service, wrapper thread dump
- Change: Remote Launch: allow /**/ pattern in path for
recursive folder download
- Change: JVMController: logging changed to info.
- Change: avoid jna multiple loading of same library
- New: cofiguration sample for Apache Derby
yajsw-alpha-9.2 August 20 2009
- Bug: wrapper hangs on cntrl-c
- Bug: network launch: webdav does not work -> new
configuration-snapshot jar
- Bug: network launch: handling of wild cards reworked. For
now supporting: .../*/*.jar only to one level.
- Bug: service wrapper stops before application if condition
script is active
- Bug: allow stopper configuration to set its own logging
properties
- Bug: system tray hangs on wrapper exit
- Change: jackrabit jar now includes only the webdav client
- New: network launching demo: remote launch tomcat
yajsw-alpha-9.1 July 28 2009
- Bug: vfs-snapshot, configuration-snapshot jars built with
jdk 1.6 instead of jdk 1.5
- Bug: [2828484] wrapper.java.initmemory.relative
yajsw-alpha-9.0 July 26 2009
- New: enable platform dependent includes:
include=${<system-prop>}.x.conf
- New:
wrapper.restart.reload_configuration
- New: Experimental: support jnlp similar
configuration: wrapper.codebase,
wrapper.cache,
wrapper.cache.local, wrapper.resource.<n>
- New: Support JNLP configuration
- New: support remote configuration file
- New: wrapper.startup.delay
- Bug: Windows:
Handle leak on native application restart
- Bug: genConfig throws Exception when java command contains
main args
- Bug: ubuntu 9.04-x86 crash in genConfig.sh
- Bug: when wrapper.control = TIGHT, do not stop application
on JVMMain.WRAPPER_MANAGER.restart()
- Bug: Windows: service requires long time to stop, since
alpha-8.4
- Bug: Windows bat files
- Bug: Posix shell scripts
- Bug: Linux daemon script generation
- Change: genConfig: service name of java application:
console title or main class name.
yajsw-alpha-8.4 June 1st 2009
- Bug: WrappedProcess.reconnect(pid) does not connect
- Bug: WrappedRuntimeProcess: wrapper.working.dir not set
- Bug: Exception on restart due to ping timeout
- Bug: call to java "-Ddir=c:\" will cause a parse exception
in the java launcher
- New: wrapper.control
- New: windows cluster aware: wrapper.windows.cluster.script
- Bug: GenConfig: split jvmArgs so that we can quote them
yajsw-alpha-8.3 May 4th 2009
- New: property wrapper.ntservice.additional.<n>
for setting service wrapper java options, generally this would be for
setting -Xmx
- New: property wrapper.exit_on_main_exception
for setting exit code of java application in case the main method
throws an exception
- Bug: wrapping groovy scripts.
- New: groovified YAJSW : WrapperBuilder
- New: Sample: nutch recrawl script, nutch solr crawl script
- Bug: Windows: on shutdown of wrapper jna
DeleteNativeLibrary exec may hang -> do not spwan this exec.
- Bug: wrapper.java.classpath.<n> = ${var}
not expanded
- Bug: replace out.print with log.info
yajsw-alpha-8.2 April 16th 2009
- New: Property wrapper.java.dump.override
= true : Output thread dump to the wrapper tee stream,
thus overriding any streams set with System.setErr()
- Bug: threaddump with backlog appender
- Bug: space in application jar path
yajsw-alpha-8.1 April 14th 2009
- Bug: Windows: avoid double quotes in command line when
starting a process or installing a service
- Bug: Windows: error in case classpath file has absolute
path.
- New: divided <yajsw>/lib directory to sub
directories. see here.
-> Allow for more compact
distributions
- Bug: thread dump: use "original" stream to bypass logger
streams.
yajsw-alpha-8.0 April 11th 2009
- NEW: configuration property wrapper.script.<state> wrapper.script.<state>
.args
- NEW : State SHUTDOWN
- NEW: configuration property wrapper.port, wrapper.port.min,
wrapper.port.max
- Bug: Posix, Windows: handling of spaces in path
- NEW: support for FreeBSD 32 and 64
- Change:
DEFAULT_EXIT_ON_MAIN_TERMINATE
= -1 for compatibility with JSW
- NEW: Linux, Solaris: System Tray Console: display threads,
cpu, memory, handles (handles == number of file descriptors)
- NEW: commandCondition.gv script
- NEW: runScript.bat to test scripts
- Change: Install Service:
"remember" the lookup variables (eg ${..}) so we run the service with
the same environment variables as those used when the service was
installed -> when an env var is changed the service has to be
reinstalled.
- Change: wrapper.java.command: first check if this
is relative to wrapper.jar parent folder (eg wrapper home), thus
defining wrapper.java.command=jre/bin/java will resolve to
<yajsw>/jre/bin/java if this file exists
yajsw-alpha-7.1 March 22nd 2009
- NOTE:
WrapperExe now sets its working dir -> may require change in
configuration if files are relative (example: use scripts/sendMail.gv
instead of ../scripts/sendMail.gv)
- Bug: Linux: + MacOsX: missing templates folder + templates
folder not used
- Bug: WindowsXPProcess: Exception while reading console
title under SYSTEM user
- Bug: wrong state of WrappedProcess in case process does not
start.
- Tested: Linux 64 bit (Suse 11.1 64 bit) :OK
- Tested: FreeBSD 32 bit (FreeBSD 7.1) : OK (note: does not
yet run on FreeBSD 64 bit)
- Bug: missing src folder
- Change: check arguments in groovy scripts
- Bug: parse trigger configuration properties.
- Change: package refactoring for BSD + MacOsX
- Tested: Oracle/JRockit JVM on Win32 : OK
- Change: add log to groovy scripts - see example in
sendMail.gv
- Change: log groovy script exceptions, so we may have these
on file.
- Change:
wrapper working directory: executing runConsole or startService or
startDaemon should work with the same configuration even if files are
relative -> set working directory of WrapperExe and
WrapperMainService* to the wrapper home directory (the location of
wrapper.jar)
- New:
Alpha Release for solaris. Tested runConsole with sol-10-u6-ga1-x86.
Note: could not get stdout/in/err -> workaround using default
file
numbers 0, 1, 2. genConfig + Daemon not yet tested.
yajsw-alpha-7.0 Feb 28th 2009
- New:
Initial Mac OS X support, Note: wrapper runs only with JDK 1.5 (32 bit)
Application may run on JDK 1.6 (64 bit), still buggy, no system tray
support
- Bug: Linux: daemon.vm
- New: Mac OS X:
wrapper.launchd.dir, wrapper.launchd.template properties
- Change: daemon.vm template and launchd.plist.vm
now in directory templates.
- Bug: Windows: Handle, thread, file, memory leak when
restarting process
- New:
Extended System Tray to include application and wrapper status,
application resources (currently only winodws), writing to System.in (
currently only standard ascii characters)
- New: full win64 support (tested on Windows 2003 x64).
Wrapper and Application may run on 64 bit jdk.
- Bug: TeeInputStream.
- Change: switched to MINA 2.0.0-M4 -> use Timer
instead of KeepAliveFilter
- Bug: Thread leak
- Change: reworked linux scripts
- Bug: class loading : slf4j issue
- Bug: Linux: System.out hangs
- Change:
wrapper.console.visible: default: false
- Change: using Cycler (Thread.sleep) instead of
Timer, so we are not influenced by system time changes.
- Change: pinger Thread with high priority, so we do not miss
pings.
- Bug: short living applications state remains running
yajsw-alpha-6.0 January 5th, 2009
- New: property wrapper.groovy:
wrap groovy scripts
- New: property wrapper.stop.conf
: stop a wrapped application by invoking another application
- Change: genConfig: paths in generated configuration are now
realtive to workingDir.
- New: script for sending SNMP traps
- New:
Linux:
properties wrapper.daemon.run_level_dir, wrapper.daemon.k_order,
wrapper.daemon.s_order.
wrapper -i now installs symbolic links to
daemon script
- New: property wrapper.ntservice.starttype, wrapper.ntservice.account, wrapper.ntservice.password
- Change: Linux: default pid dir: /var/run
- New:
property wrapper.app.account
and wrapper.app.password
Is
used for Linux and Windows. It is used for nt services, posix daemons,
and console applications.
- Bug: file conf/daemon.gv missing in alpha-5.1
- New: property wrapper.tray,
wrapper.tray.icon : enable system tray icon.
- New: script for displaying tray messages
- New: properties wrapper.java.maxmemory,
wrapper.java.maxmemory.relative, wrapper.java.initialmemory,
wrapper.java.initialmemory.relative
- Bug: Linux: spaces in command line calling application
removed.
- New: genConfig: get application account
- Change: Log file: directory is created if it does not exist
yajsw-alpha-5.1 December 22, 2008
- Bug: genConfig.bat and genConfig.sh
yajsw-alpha-5.0 December 21, 2008
- New: groovy scripts can now be passed arguments from the
wrapper configuration properties
- New:
condition scripts for controlling process execution through conditions
such as time interval, file existence, mail receiption etc.
- New: groovy scripts maintain their bindings between
invocations
- New: -q, -qs options for service status query
- Linux: configuration generator now available for Linux
- Linux:
java -jar wrapper.jar options -i (install) -t (start) -s(stop) -q/-qs
(query) are now available for Linux and Windows.
- -i creates a script for starting a wrapper daemon and
copies the file to /etc/init.d
- -t starts the daemon
- -s stops the daemon
- -u removes the script from the daemon dir.
- New: STATE_ABORT: in case the process could not be started
after max_failed_invocations.
yajsw-alpha-4.0 November 16 2008
- New:
Configuration Generator, Given the pid of a running process, generate a
configuration file to wrap the process (currently available only for
win32)
- New: JMX support
- Resolved bug with wrapper.tmp.path
yajsw-alpha-3.1 November 5 2008
- Resolved bug with wrapper.timer.cron
yajsw-alpha-3.0 November 2 2008
- repackaged source code, renamed some classes. NOTE:
org.rzo.yajsw.WrapperMain ->
org.rzo.yajsw.app.WrapperJVMMain
- added support for wrapping native exes. Restriction: cannot
reconnect to native exes.
- added support for Linux. The following functions are not
yet available for Linux: visible console, automatic install of daemons
- This version is stable on Windows and is being used in
production on win32 and win64
yajsw-alpha-2.0 August 20 2008
- Regular Expressions Filters
- Groovy and Shell Script actions
- Sample Groovy script for sending emails
- Job Scheduling with Quartz
- Windows services now bug free
- -Xrs is inherited to sub-processes if running as service
- Cpu affinity and process priority
- Automatic JVM selection
- Separate class loading for YAJSW libraries and for JVM
Application
yajsw-alpha-1.0 April 14 2008
Initial release
This Alpha 1.0 Release is a proof of concept implementing only the main
functions and configuration properties.