Package org.apache.commons.daemon.support

# Class DaemonWrapper

java.lang.Object
org.apache.commons.daemon.support.DaemonWrapper

All Implemented Interfaces:
  `Daemon`

public class DaemonWrapper extends Object implements Daemon
Implementation of the Daemon that allows running standard applications as daemons. The applications must have the mechanism to manage the application lifecycle.

Version:
  $Id: DaemonWrapper.java 1453245 2013-03-06 09:54:38Z mturk $
Author:
  Mladen Turk

## Constructor Summary

Constructors
Constructor
Description
`DaemonWrapper()`

## Method Summary

Modifier and Type
Method
Description
`void`
`destroy()`
Frees any resources allocated by this daemon such as file descriptors or sockets.
`void`
`init(DaemonContext context)`
Called from DaemonLoader on init stage.
`void`
`start()`
Starts the operation of this `Daemon` instance.
`void`
`stop()`
Stops the operation of this `Daemon` instance.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DaemonWrapper

public DaemonWrapper()

## Method Details

### init

public void init(DaemonContext context) throws Exception
Called from DaemonLoader on init stage.

Accepts the following configuration arguments:

- -daemon-properties: - load DaemonConfiguration properties from the specified file to act as defaults
- -start: set start class name
- -start-method: set start method name
- -stop: set stop class name
- -stop-method: set stop method name
- -stop-argument: set optional argument to stop method
- Anything else is treated as a startup argument

The following "-daemon-properties" are recognised:

- args (startup argument)
- start
- start.method
- stop
- stop.method
- stop.args

These are used to set the corresponding item if it has not already been set by the command arguments. However, note that args and stop.args are appended to any existing values.

Specified by:
  `init` in interface `Daemon`
Parameters:
  `context` - A `DaemonContext` object used to communicate with the container.
Throws:
  `Exception` - Any exception preventing a successful initialization.

### start

public void start() throws Exception
Description copied from interface: `Daemon`
Starts the operation of this `Daemon` instance. This method is to be invoked by the environment after the init() method has been successfully invoked and possibly the security level of the JVM has been dropped. Implementors of this method are free to start any number of threads, but need to return control after having done that to enable invocation of the stop()-method.

Specified by:
  `start` in interface `Daemon`
Throws:
  `Exception`

### stop

public void stop() throws Exception
Description copied from interface: `Daemon`
Stops the operation of this `Daemon` instance. Note that the proper place to free any allocated resources such as sockets or file descriptors is in the destroy method, as the container may restart the Daemon by calling start() after stop().

Specified by:
  `stop` in interface `Daemon`
Throws:
  `Exception`

### destroy

public void destroy()
Description copied from interface: `Daemon`
Frees any resources allocated by this daemon such as file descriptors or sockets. This method gets called by the container after stop() has been called, before the JVM exits. The Daemon can not be restarted after this method has been called without a new call to the init() method.

Specified by:
  `destroy` in interface `Daemon`