# Install Java
## install_java.bat ?
# Download _install_jau_ script
# Run _install_jau_ script with url to ConfigService as parameter
h4. About Java Auto-Update
# Query ConfigService for service configuration.
## Input parameters: artifactId, clientId (optional)
# if ServiceConfig lastChanged string is not identical to previous
## download all download items
## stop service if running
## start service
* [Extract environment info and events from managed service's logs]
h4. Java Auto-Update implementation notes
* Java process
* Should always be running (start at boot, integrate with process manager on OS)
* Simple, stable, robust
* JAU is not responsible for selecting nether appplication version or which config. This is the responsibility of [ConfigService].
* Poll ConfigService for ServiceConfiguration using http(s).
* Work on Linux and Windows
* Perhaps use _ScheduledExecutorService_ to provide cron/schedule functionality.
** Check for changes to application binaries or configuration every 5 minutes.
* *TODO* verify that process management support in JDK 8 is powerful and robust enough.
{column}
{column}
h3. Useful links
* [Java Auto-Update]
* [ConfigService Dashboard]
* [ConfigService APIs]
* [ConfigService -Administration - User Guides]
{gliffy:name=jau|version=6}
h4. Are there existing relevant libraries or projects?
* [http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html]
* [https://github.com/twall/jna]
* [http://sourceforge.net/projects/yajsw/]
* [https://github.com/constretto/constretto-server] (empty)
{column}
{section}