You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@commons.apache.org by ma...@apache.org on 2017/11/23 09:50:56 UTC

svn commit: r1021243 [9/30] - in /websites/production/commons/content/proper/commons-daemon: ./ apidocs/ apidocs/org/apache/commons/daemon/ apidocs/org/apache/commons/daemon/class-use/ apidocs/org/apache/commons/daemon/support/ apidocs/org/apache/commo...

Modified: websites/production/commons/content/proper/commons-daemon/apidocs/src-html/org/apache/commons/daemon/support/DaemonWrapper.html
==============================================================================
--- websites/production/commons/content/proper/commons-daemon/apidocs/src-html/org/apache/commons/daemon/support/DaemonWrapper.html (original)
+++ websites/production/commons/content/proper/commons-daemon/apidocs/src-html/org/apache/commons/daemon/support/DaemonWrapper.html Thu Nov 23 09:50:54 2017
@@ -23,261 +23,274 @@
 <span class="sourceLineNo">015</span> *  limitations under the License.<a name="line.15"></a>
 <span class="sourceLineNo">016</span> */<a name="line.16"></a>
 <span class="sourceLineNo">017</span><a name="line.17"></a>
-<span class="sourceLineNo">018</span>/* @version $Id: DaemonWrapper.java 1453245 2013-03-06 09:54:38Z mturk $ */<a name="line.18"></a>
+<span class="sourceLineNo">018</span>package org.apache.commons.daemon.support;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>package org.apache.commons.daemon.support;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.lang.reflect.Method;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.lang.reflect.Modifier;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.ArrayList;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Arrays;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.daemon.Daemon;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.commons.daemon.DaemonContext;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * Implementation of the Daemon that allows running<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * standard applications as daemons.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The applications must have the mechanism to manage<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * the application lifecycle.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * @version $Id: DaemonWrapper.java 1453245 2013-03-06 09:54:38Z mturk $<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * @author Mladen Turk<a name="line.36"></a>
-<span class="sourceLineNo">037</span> */<a name="line.37"></a>
-<span class="sourceLineNo">038</span>public class DaemonWrapper implements Daemon<a name="line.38"></a>
-<span class="sourceLineNo">039</span>{<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>    private final static String ARGS            = "args";<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    private final static String START_CLASS     = "start";<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    private final static String START_METHOD    = "start.method";<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    private final static String STOP_CLASS      = "stop";<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    private final static String STOP_METHOD     = "stop.method";<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    private final static String STOP_ARGS       = "stop.args";<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    private String              configFileName  = null;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    private final DaemonConfiguration config;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>    private final Invoker             startup;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    private final Invoker             shutdown;<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>    public DaemonWrapper()<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>        super();<a name="line.55"></a>
-<span class="sourceLineNo">056</span>        config   = new DaemonConfiguration();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>        startup  = new Invoker();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>        shutdown = new Invoker();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>     * Called from DaemonLoader on init stage.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * &lt;p&gt;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>     * Accepts the following configuration arguments:<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * &lt;ul&gt;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     * &lt;li&gt;-daemon-properties: - load DaemonConfiguration properties from the specified file to act as defaults&lt;/li&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>     * &lt;li&gt;-start: set start class name&lt;/li&gt;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>     * &lt;li&gt;-start-method: set start method name&lt;/li&gt;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>     * &lt;li&gt;-stop: set stop class name&lt;/li&gt;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>     * &lt;li&gt;-stop-method: set stop method name&lt;/li&gt;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>     * &lt;li&gt;-stop-argument: set optional argument to stop method&lt;/li&gt;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * &lt;li&gt;Anything else is treated as a startup argument&lt;/li&gt;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     * &lt;/ul&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>     * &lt;p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>     * The following "-daemon-properties" are recognised:<a name="line.75"></a>
-<span class="sourceLineNo">076</span>     * &lt;ul&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>     * &lt;li&gt;args (startup argument)&lt;/li&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>     * &lt;li&gt;start&lt;/li&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>     * &lt;li&gt;start.method&lt;/li&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>     * &lt;li&gt;stop&lt;/li&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>     * &lt;li&gt;stop.method&lt;/li&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>     * &lt;li&gt;stop.args&lt;/li&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>     * &lt;/ul&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>     * These are used to set the corresponding item if it has not already been<a name="line.84"></a>
-<span class="sourceLineNo">085</span>     * set by the command arguments. &lt;b&gt;However, note that args and stop.args are<a name="line.85"></a>
-<span class="sourceLineNo">086</span>     * appended to any existing values.&lt;/b&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>     */<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    public void init(DaemonContext context)<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        throws Exception<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        String[] args = context.getArguments();<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>        if (args != null) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>            int i;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>            // Parse our arguments and remove them<a name="line.95"></a>
-<span class="sourceLineNo">096</span>            // from the final argument array we are<a name="line.96"></a>
-<span class="sourceLineNo">097</span>            // passing to our child.<a name="line.97"></a>
-<span class="sourceLineNo">098</span>            for (i = 0; i &lt; args.length; i++) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>                if (args[i].equals("--")) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>                    // Done with argument processing<a name="line.100"></a>
-<span class="sourceLineNo">101</span>                    break;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>                }<a name="line.102"></a>
-<span class="sourceLineNo">103</span>                else if (args[i].equals("-daemon-properties")) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>                    if (++i == args.length)<a name="line.104"></a>
-<span class="sourceLineNo">105</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>                    configFileName = args[i];<a name="line.106"></a>
-<span class="sourceLineNo">107</span>                }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>                else if (args[i].equals("-start")) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>                    if (++i == args.length)<a name="line.109"></a>
-<span class="sourceLineNo">110</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>                    startup.setClassName(args[i]);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>                }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>                else if (args[i].equals("-start-method")) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>                    if (++i == args.length)<a name="line.114"></a>
-<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.115"></a>
+<span class="sourceLineNo">020</span>import java.lang.reflect.Method;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.lang.reflect.Modifier;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.daemon.Daemon;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.daemon.DaemonContext;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Implementation of the Daemon that allows running<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * standard applications as daemons.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * The applications must have the mechanism to manage<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * the application lifecycle.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class DaemonWrapper implements Daemon<a name="line.34"></a>
+<span class="sourceLineNo">035</span>{<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>    private final static String ARGS            = "args";<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    private final static String START_CLASS     = "start";<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    private final static String START_METHOD    = "start.method";<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    private final static String STOP_CLASS      = "stop";<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    private final static String STOP_METHOD     = "stop.method";<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    private final static String STOP_ARGS       = "stop.args";<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    private String              configFileName  = null;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    private final DaemonConfiguration config;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>    private final Invoker             startup;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    private final Invoker             shutdown;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>    public DaemonWrapper()<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        super();<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        config   = new DaemonConfiguration();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        startup  = new Invoker();<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        shutdown = new Invoker();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>    /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     * Called from DaemonLoader on init stage.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>     * &lt;p&gt;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>     * Accepts the following configuration arguments:<a name="line.60"></a>
+<span class="sourceLineNo">061</span>     * &lt;ul&gt;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>     * &lt;li&gt;-daemon-properties: - load DaemonConfiguration properties from the specified file to act as defaults&lt;/li&gt;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>     * &lt;li&gt;-start: set start class name&lt;/li&gt;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * &lt;li&gt;-start-method: set start method name&lt;/li&gt;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * &lt;li&gt;-stop: set stop class name&lt;/li&gt;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * &lt;li&gt;-stop-method: set stop method name&lt;/li&gt;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * &lt;li&gt;-stop-argument: set optional argument to stop method&lt;/li&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     * &lt;li&gt;Anything else is treated as a startup argument&lt;/li&gt;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>     * &lt;/ul&gt;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>     * &lt;p&gt;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * The following "-daemon-properties" are recognized:<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     * &lt;ul&gt;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>     * &lt;li&gt;args (startup argument)&lt;/li&gt;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>     * &lt;li&gt;start&lt;/li&gt;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>     * &lt;li&gt;start.method&lt;/li&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * &lt;li&gt;stop&lt;/li&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     * &lt;li&gt;stop.method&lt;/li&gt;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>     * &lt;li&gt;stop.args&lt;/li&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>     * &lt;/ul&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>     * These are used to set the corresponding item if it has not already been<a name="line.80"></a>
+<span class="sourceLineNo">081</span>     * set by the command arguments. &lt;b&gt;However, note that args and stop.args are<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * appended to any existing values.&lt;/b&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    @Override<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    public void init(final DaemonContext context)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        throws Exception<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        final String[] args = context.getArguments();<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        if (args != null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>            int i;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>            // Parse our arguments and remove them<a name="line.92"></a>
+<span class="sourceLineNo">093</span>            // from the final argument array we are<a name="line.93"></a>
+<span class="sourceLineNo">094</span>            // passing to our child.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>            for (i = 0; i &lt; args.length; i++) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (args[i].equals("--")) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                    // Done with argument processing<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                    break;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                else if (args[i].equals("-daemon-properties")) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                    if (++i == args.length) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                    }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                    configFileName = args[i];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                else if (args[i].equals("-start")) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                    if (++i == args.length) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                    startup.setClassName(args[i]);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                else if (args[i].equals("-start-method")) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                    if (++i == args.length) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                    }<a name="line.115"></a>
 <span class="sourceLineNo">116</span>                    startup.setMethodName(args[i]);<a name="line.116"></a>
 <span class="sourceLineNo">117</span>                }<a name="line.117"></a>
 <span class="sourceLineNo">118</span>                else if (args[i].equals("-stop")) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>                    if (++i == args.length)<a name="line.119"></a>
+<span class="sourceLineNo">119</span>                    if (++i == args.length) {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>                    shutdown.setClassName(args[i]);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>                }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>                else if (args[i].equals("-stop-method")) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>                    if (++i == args.length)<a name="line.124"></a>
-<span class="sourceLineNo">125</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>                    shutdown.setMethodName(args[i]);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>                }<a name="line.127"></a>
-<span class="sourceLineNo">128</span>                else if (args[i].equals("-stop-argument")) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>                    if (++i == args.length)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>                    String[] aa = new String[1];<a name="line.131"></a>
-<span class="sourceLineNo">132</span>                    aa[0] = args[i];<a name="line.132"></a>
-<span class="sourceLineNo">133</span>                    shutdown.addArguments(aa);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>                else {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>                    // This is not our option.<a name="line.136"></a>
-<span class="sourceLineNo">137</span>                    // Everything else will be forwarded to the main<a name="line.137"></a>
-<span class="sourceLineNo">138</span>                    break;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
-<span class="sourceLineNo">140</span>            }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            if (args.length &gt; i) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>                String[] copy = new String[args.length - i];<a name="line.142"></a>
-<span class="sourceLineNo">143</span>                System.arraycopy(args, i, copy, 0, copy.length);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>                startup.addArguments(copy);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>            }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        if (config.load(configFileName)) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>            // Setup params if not set via cmdline.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>            startup.setClassName(config.getProperty(START_CLASS));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>            startup.setMethodName(config.getProperty(START_METHOD));<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            // Merge the config with command line arguments<a name="line.151"></a>
-<span class="sourceLineNo">152</span>            startup.addArguments(config.getPropertyArray(ARGS));<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>            shutdown.setClassName(config.getProperty(STOP_CLASS));<a name="line.154"></a>
-<span class="sourceLineNo">155</span>            shutdown.setMethodName(config.getProperty(STOP_METHOD));<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            shutdown.addArguments(config.getPropertyArray(STOP_ARGS));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        startup.validate();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        shutdown.validate();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>    /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     */<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    public void start()<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        throws Exception<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        startup.invoke();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /**<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     */<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    public void stop()<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        throws Exception<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        shutdown.invoke();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     */<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    public void destroy()<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        // Nothing for the moment<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        System.err.println("DaemonWrapper: instance " + this.hashCode() + " destroy");<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    // Internal class for wrapping the start/stop methods<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    class Invoker<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        private String      name = null;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        private String      call = null;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        private String[]    args = null;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        private Method      inst = null;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        private Class       main = null;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>        protected Invoker()<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>        protected void setClassName(String name)<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>            if (this.name == null)<a name="line.201"></a>
-<span class="sourceLineNo">202</span>                this.name = name;<a name="line.202"></a>
+<span class="sourceLineNo">121</span>                    }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                    shutdown.setClassName(args[i]);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                else if (args[i].equals("-stop-method")) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                    if (++i == args.length) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                    shutdown.setMethodName(args[i]);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                else if (args[i].equals("-stop-argument")) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                    if (++i == args.length) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(args[i - 1]);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                    final String[] aa = new String[1];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                    aa[0] = args[i];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                    shutdown.addArguments(aa);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                else {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                    // This is not our option.<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                    // Everything else will be forwarded to the main<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                    break;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>            }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>            if (args.length &gt; i) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                final String[] copy = new String[args.length - i];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                System.arraycopy(args, i, copy, 0, copy.length);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                startup.addArguments(copy);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>            }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        if (config.load(configFileName)) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            // Setup params if not set via cmdline.<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            startup.setClassName(config.getProperty(START_CLASS));<a name="line.152"></a>
+<span class="sourceLineNo">153</span>            startup.setMethodName(config.getProperty(START_METHOD));<a name="line.153"></a>
+<span class="sourceLineNo">154</span>            // Merge the config with command line arguments<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            startup.addArguments(config.getPropertyArray(ARGS));<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>            shutdown.setClassName(config.getProperty(STOP_CLASS));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>            shutdown.setMethodName(config.getProperty(STOP_METHOD));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>            shutdown.addArguments(config.getPropertyArray(STOP_ARGS));<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        startup.validate();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        shutdown.validate();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>    /**<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     */<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    @Override<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    public void start()<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        throws Exception<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        startup.invoke();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>    /**<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    public void stop()<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        throws Exception<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        shutdown.invoke();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    public void destroy()<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        // Nothing for the moment<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        System.err.println("DaemonWrapper: instance " + this.hashCode() + " destroy");<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    // Internal class for wrapping the start/stop methods<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    class Invoker<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        private String      name = null;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        private String      call = null;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        private String[]    args = null;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        private Method      inst = null;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        private Class&lt;?&gt;    main = null;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        protected Invoker()<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        {<a name="line.202"></a>
 <span class="sourceLineNo">203</span>        }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        protected void setMethodName(String name)<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>            if (this.call == null)<a name="line.206"></a>
-<span class="sourceLineNo">207</span>                this.call = name;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        protected void addArguments(String[] args)<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>            if (args != null) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                ArrayList aa = new ArrayList();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>                if (this.args != null)<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                    aa.addAll(Arrays.asList(this.args));<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                aa.addAll(Arrays.asList(args));<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                this.args = (String[])aa.toArray(new String[aa.size()]);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>            }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>        protected void invoke()<a name="line.220"></a>
-<span class="sourceLineNo">221</span>            throws Exception<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>            if (name.equals("System") &amp;&amp; call.equals("exit")) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>                // Just call a System.exit()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>                // The start method was probably installed<a name="line.225"></a>
-<span class="sourceLineNo">226</span>                // a shutdown hook.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>                System.exit(0);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            else {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>                Object obj   = null;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>                if ((inst.getModifiers() &amp; Modifier.STATIC) == 0) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>                    // We only need object instance for non-static methods.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>                    obj = main.newInstance();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>                }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>                Object arg[] = new Object[1];<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>                arg[0] = args;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>                inst.invoke(obj, arg);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>            }<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        // Load the class using reflection<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        protected void validate()<a name="line.242"></a>
-<span class="sourceLineNo">243</span>            throws Exception<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>            /* Check the class name */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            if (name == null) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>                name = "System";<a name="line.247"></a>
-<span class="sourceLineNo">248</span>                call = "exit";<a name="line.248"></a>
-<span class="sourceLineNo">249</span>                return;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>            }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>            if (args == null)<a name="line.251"></a>
-<span class="sourceLineNo">252</span>                args = new String[0];<a name="line.252"></a>
-<span class="sourceLineNo">253</span>            if (call == null)<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                call = "main";<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>            // Get the ClassLoader loading this class<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            ClassLoader cl = DaemonWrapper.class.getClassLoader();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            if (cl == null)<a name="line.258"></a>
-<span class="sourceLineNo">259</span>                throw new NullPointerException("Cannot retrieve ClassLoader instance");<a name="line.259"></a>
-<span class="sourceLineNo">260</span>            Class[] ca = new Class[1];<a name="line.260"></a>
-<span class="sourceLineNo">261</span>            ca[0]      = args.getClass();<a name="line.261"></a>
-<span class="sourceLineNo">262</span>            // Find the required class<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            main = cl.loadClass(name);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            if (main == null)<a name="line.264"></a>
-<span class="sourceLineNo">265</span>                throw new ClassNotFoundException(name);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>            // Find the required method.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            // NoSuchMethodException will be thrown if matching method<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            // is not found.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            inst = main.getMethod(call, ca);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>}<a name="line.272"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        protected void setClassName(final String name)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>            if (this.name == null) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                this.name = name;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        protected void setMethodName(final String name)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>            if (this.call == null) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                this.call = name;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>            }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        protected void addArguments(final String[] args)<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            if (args != null) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                final ArrayList&lt;String&gt; aa = new ArrayList&lt;String&gt;();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                if (this.args != null) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                    aa.addAll(Arrays.asList(this.args));<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                aa.addAll(Arrays.asList(args));<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                this.args = aa.toArray(new String[aa.size()]);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>            }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>        protected void invoke()<a name="line.229"></a>
+<span class="sourceLineNo">230</span>            throws Exception<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            if (name.equals("System") &amp;&amp; call.equals("exit")) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                // Just call a System.exit()<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                // The start method was probably installed<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                // a shutdown hook.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                System.exit(0);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>            else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                Object obj   = null;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                if ((inst.getModifiers() &amp; Modifier.STATIC) == 0) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                    // We only need object instance for non-static methods.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                    obj = main.newInstance();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                final Object arg[] = new Object[1];<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>                arg[0] = args;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                inst.invoke(obj, arg);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>            }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        // Load the class using reflection<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        protected void validate()<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            throws Exception<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            /* Check the class name */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>            if (name == null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                name = "System";<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                call = "exit";<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                return;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>            }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            if (args == null) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                args = new String[0];<a name="line.261"></a>
+<span class="sourceLineNo">262</span>            }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>            if (call == null) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                call = "main";<a name="line.264"></a>
+<span class="sourceLineNo">265</span>            }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>            // Get the ClassLoader loading this class<a name="line.267"></a>
+<span class="sourceLineNo">268</span>            final ClassLoader cl = DaemonWrapper.class.getClassLoader();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>            if (cl == null) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                throw new NullPointerException("Cannot retrieve ClassLoader instance");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>            final Class&lt;?&gt;[] ca = new Class[1];<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            ca[0]      = args.getClass();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>            // Find the required class<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            main = cl.loadClass(name);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>            if (main == null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                throw new ClassNotFoundException(name);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>            }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>            // Find the required method.<a name="line.279"></a>
+<span class="sourceLineNo">280</span>            // NoSuchMethodException will be thrown if matching method<a name="line.280"></a>
+<span class="sourceLineNo">281</span>            // is not found.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>            inst = main.getMethod(call, ca);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>}<a name="line.285"></a>
 
 
 
@@ -341,4 +354,4 @@
 </pre>
 </div>
 </body>
-</html>
+</html>
\ No newline at end of file

Modified: websites/production/commons/content/proper/commons-daemon/apidocs/stylesheet.css
==============================================================================
--- websites/production/commons/content/proper/commons-daemon/apidocs/stylesheet.css (original)
+++ websites/production/commons/content/proper/commons-daemon/apidocs/stylesheet.css Thu Nov 23 09:50:54 2017
@@ -471,4 +471,4 @@ h1.hidden {
 }
 .strong {
     font-weight:bold;
-}
+}
\ No newline at end of file

Modified: websites/production/commons/content/proper/commons-daemon/binaries.html
==============================================================================
--- websites/production/commons/content/proper/commons-daemon/binaries.html (original)
+++ websites/production/commons/content/proper/commons-daemon/binaries.html Thu Nov 23 09:50:54 2017
@@ -1,181 +1,234 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Mar 28, 2013 ( $Revision: 1080083 $ ) -->
-<!-- $HeadURL: https://svn.apache.org/repos/asf/commons/proper/commons-skin/trunk/src/main/resources/META-INF/maven/site.vm $ -->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-    <title>
-  Daemon : binaries</title>
-    <style type="text/css" media="all">
-      @import url("./css/maven-base.css");
-      @import url("./css/maven-theme.css");
-      @import url("./css/site.css");
-    </style>
-    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-      <meta name="author" content="Jean-Frederic Clere" />
-    <meta name="Date-Revision-yyyymmdd" content="20130328" />
-    <meta http-equiv="Content-Language" content="en" />
-                                                    
-<link rel="stylesheet" type="text/css" media="all" href="./css/prettify.css"/>                                                        
-<script src="./js/prettify.js" type="text/javascript"></script>                                                        
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 23 November 2017
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="iso-8859-1" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Jean-Frederic Clere" />
+    <meta name="Date-Revision-yyyymmdd" content="20171123" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Daemon &#x2013; Daemon : binaries</title>
+
+  <link rel="stylesheet" href="./css/bootstrap.min.css" type="text/css" />
+  <link rel="stylesheet" href="./css/site.css" type="text/css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+  <script type="text/javascript" src="./js/jquery.min.js"></script>
+  <script type="text/javascript" src="./js/bootstrap.min.js"></script>
+  <script type="text/javascript" src="./js/prettify.min.js"></script>
+  <script type="text/javascript" src="./js/site.js"></script>
+
+                            
+<link rel="stylesheet" type="text/css" media="all" href="./css/prettify.css"/>                                
+<script src="./js/prettify.js" type="text/javascript"></script>                                
 <script type="text/javascript">window.onload=function() {
-            prettyPrint();
-        }</script>                      
-        </head>
-  <body class="composite">
-    <div id="banner">
-            <div id="bannerLeft">
-                                            <a href="http://commons.apache.org/" title="Apache Commons logo">
-                                        <img src="./images/commons-logo.png" alt="Apache Commons logo"/>
-                </a>
-            </div><!-- id="bannerLeft" -->
-              <div id="bannerRight">
-                                                          <a href="index.html">
-                                                <img src="images/logo.png" alt="Commons Daemon"/>
-                </a>
-            </div><!-- id="bannerRight" -->
-        <div class="clear">
-        <hr/>
-      </div>
-    </div>
-    <div id="breadcrumbs">
-            
-                
-                <div class="xleft">
-        <span id="publishDate">Last Published: 28 March 2013</span>
-                  &nbsp;| <span id="projectVersion">Version: 1.0.15</span>
-                      </div>
-            <div class="xright">                    <a href="http://www.apachecon.com/" class="externalLink" title="ApacheCon">ApacheCon</a>
-            |
-                        <a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a>
-            |
-                        <a href="../../" title="Commons">Commons</a>
-              
-                
-      </div>
-      <div class="clear">
-        <hr/>
-      </div>
-    </div>
-    <div id="leftColumn">
-      <div id="navcolumn">
-             
-                
-                                <h5>Daemon</h5>
-                  <ul>
-                  <li class="none">
-                          <a href="index.html" title="Overview">Overview</a>
-            </li>
-                  <li class="none">
-                          <a href="download_daemon.cgi" title="Download">Download</a>
-            </li>
-                  <li class="none">
-                          <a href="procrun.html" title="Procrun">Procrun</a>
-            </li>
-                  <li class="none">
-                          <a href="jsvc.html" title="Jsvc">Jsvc</a>
-            </li>
-                  <li class="none">
-            <strong>Native binaries</strong>
-          </li>
-                  <li class="none">
-                          <a href="faq.html" title="FAQ">FAQ</a>
-            </li>
-                  <li class="none">
-                          <a href="http://wiki.apache.org/commons/Daemon" class="externalLink" title="Wiki">Wiki</a>
-            </li>
-          </ul>
-                       <h5>Development</h5>
-                  <ul>
-                  <li class="none">
-                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
-            </li>
-                  <li class="none">
-                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
-            </li>
-                  <li class="none">
-                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
-            </li>
-                  <li class="none">
-                          <a href="apidocs/index.html" title="Javadoc (SVN latest)">Javadoc (SVN latest)</a>
-            </li>
-          </ul>
-                       <h5>Project Documentation</h5>
-                  <ul>
-                                                                                                                                                                                                                                                                          <li class="collapsed">
-                          <a href="project-info.html" title="Project Information">Project Information</a>
-                  </li>
-                                                                                                                                                                                                  <li class="collapsed">
-                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
-                  </li>
-          </ul>
-                       <h5>Commons</h5>
-                  <ul>
-                  <li class="none">
-                          <a href="../../" title="Home">Home</a>
-            </li>
-                  <li class="none">
-                          <a href="http://www.apache.org/licenses/" class="externalLink" title="License">License</a>
-            </li>
-                                                                    <li class="collapsed">
-                          <a href="../../components.html" title="Components">Components</a>
-                  </li>
-                                                                    <li class="collapsed">
-                          <a href="../../sandbox/index.html" title="Sandbox">Sandbox</a>
-                  </li>
-                                                                    <li class="collapsed">
-                          <a href="../../dormant/index.html" title="Dormant">Dormant</a>
-                  </li>
-          </ul>
-                       <h5>General Information</h5>
-                  <ul>
-                  <li class="none">
-                          <a href="../../volunteering.html" title="Volunteering">Volunteering</a>
-            </li>
-                  <li class="none">
-                          <a href="../../patches.html" title="Contributing Patches">Contributing Patches</a>
-            </li>
-                  <li class="none">
-                          <a href="../../building.html" title="Building Components">Building Components</a>
-            </li>
-                  <li class="none">
-                          <a href="../../releases/index.html" title="Releasing Components">Releasing Components</a>
-            </li>
-                  <li class="none">
-                          <a href="http://wiki.apache.org/commons/FrontPage" class="externalLink" title="Wiki">Wiki</a>
-            </li>
-          </ul>
-                       <h5>ASF</h5>
-                  <ul>
-                  <li class="none">
-                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works">How the ASF works</a>
-            </li>
-                  <li class="none">
-                          <a href="http://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a>
-            </li>
-                  <li class="none">
-                          <a href="http://www.apache.org/dev/" class="externalLink" title="Developer Resources">Developer Resources</a>
-            </li>
-                  <li class="none">
-                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
-            </li>
-                  <li class="none">
-                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
-            </li>
-          </ul>
-                                                                                                                   <a href="http://www.apache.org/events/current-event.html" title="ApacheCon" class="poweredBy">
-        <img class="poweredBy"  alt="ApacheCon" src="http://www.apache.org/events/current-event-125x125.png"    />
-      </a>
-                                                                                                    <a href="http://maven.apache.org/" title="Maven" class="poweredBy">
-        <img class="poweredBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
-      </a>
-                       
-                
-            </div>
-    </div>
-    <div id="bodyColumn">
-      <div id="contentBox">
-        <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+              prettyPrint();
+          }</script>                  
+      </head>
+
+  <body class="composite">
+                          <a href="http://commons.apache.org/" id="bannerLeft" title="Apache Commons logo">
+                                                                                        <img class="logo-left" src="./images/commons-logo.png"  alt="Apache Commons logo"/>
+                </a>
+                                              <a href="index.html" id="bannerRight">
+                                                                                                <img class="logo-right" src="images/logo.png"  alt="Commons Daemon"/>
+                </a>
+          <div class="clear"></div>
+
+    <div class="navbar">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <a class="brand" href="http://commons.apache.org/proper/commons-daemon/">Apache Commons Daemon &trade;</a>
+          <ul class="nav">      
+                    
+            <li id="publishDate">Last Published: 23 November 2017</li>
+      <li class="divider">|</li> <li id="projectVersion">Version: 1.1.0</li>
+  </ul>
+                    <div class="pull-right">  <ul class="nav">
+            <li>
+                  <a href="http://www.apachecon.com/" class="externalLink" title="ApacheCon">
+    ApacheCon</a>
+      </li>
+          <li>
+                  <a href="http://www.apache.org" class="externalLink" title="Apache">
+    Apache</a>
+      </li>
+          <li>
+                  <a href="../../" title="Commons">
+    Commons</a>
+      </li>
+    </ul>
+</div>
+        </div>
+      </div>
+    </div>
+
+    <div class="container-fluid">
+      <table class="layout-table">
+        <tr>
+          <td class="sidebar">
+            <div class="well sidebar-nav">
+                    <ul class="nav nav-list">
+                                  <li class="nav-header">Daemon</li>
+                                        <li class="none">
+                  <a href="index.html" title="Overview">
+    Overview</a>
+          </li>
+                             <li class="none">
+                  <a href="download_daemon.cgi" title="Download">
+    Download</a>
+          </li>
+                             <li class="none">
+                  <a href="procrun.html" title="Procrun">
+    Procrun</a>
+          </li>
+                             <li class="none">
+                  <a href="jsvc.html" title="Jsvc">
+    Jsvc</a>
+          </li>
+                               <li class="none active">
+                  <a href="binaries.html" title="Native binaries">
+    Native binaries</a>
+          </li>
+                             <li class="none">
+                  <a href="apidocs/index.html" title="Javadoc (latest release)">
+    Javadoc (latest release)</a>
+          </li>
+                             <li class="none">
+                  <a href="faq.html" title="FAQ">
+    FAQ</a>
+          </li>
+                             <li class="none">
+                  <a href="http://wiki.apache.org/commons/Daemon" class="externalLink" title="Wiki">
+    Wiki</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                        <li class="nav-header"><i class="icon-cog"></i>Development</li>
+                                        <li class="none">
+                  <a href="mail-lists.html" title="Mailing Lists">
+    Mailing Lists</a>
+          </li>
+                             <li class="none">
+                  <a href="issue-tracking.html" title="Issue Tracking">
+    Issue Tracking</a>
+          </li>
+                             <li class="none">
+                  <a href="source-repository.html" title="Source Repository">
+    Source Repository</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                        <li class="nav-header"><i class="icon-info-sign"></i>Project Documentation</li>
+                                                                                                                                                                                                                                                                              <li class="collapsed">
+                  <a href="project-info.html" title="Project Information">
+    Project Information</a>
+                    </li>
+                                                                                                                                                                                                             <li class="collapsed">
+                  <a href="project-reports.html" title="Project Reports">
+    Project Reports</a>
+                    </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">Commons</li>
+                                        <li class="none">
+                  <a href="../../" title="Home">
+    Home</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/licenses/" class="externalLink" title="License">
+    License</a>
+          </li>
+                                                                               <li class="collapsed">
+                  <a href="../../components.html" title="Components">
+    Components</a>
+                    </li>
+                                                                               <li class="collapsed">
+                  <a href="../../sandbox/index.html" title="Sandbox">
+    Sandbox</a>
+                    </li>
+                                                                               <li class="collapsed">
+                  <a href="../../dormant/index.html" title="Dormant">
+    Dormant</a>
+                    </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">General Information</li>
+                                        <li class="none">
+                  <a href="../../security.html" title="Security">
+    Security</a>
+          </li>
+                             <li class="none">
+                  <a href="../../volunteering.html" title="Volunteering">
+    Volunteering</a>
+          </li>
+                             <li class="none">
+                  <a href="../../patches.html" title="Contributing Patches">
+    Contributing Patches</a>
+          </li>
+                             <li class="none">
+                  <a href="../../building.html" title="Building Components">
+    Building Components</a>
+          </li>
+                             <li class="none">
+                  <a href="../../commons-parent-pom.html" title="Commons Parent Pom">
+    Commons Parent Pom</a>
+          </li>
+                             <li class="none">
+                  <a href="../../build-plugin/index.html" title="Commons Build Plugin">
+    Commons Build Plugin</a>
+          </li>
+                             <li class="none">
+                  <a href="../../releases/index.html" title="Releasing Components">
+    Releasing Components</a>
+          </li>
+                             <li class="none">
+                  <a href="http://wiki.apache.org/commons/FrontPage" class="externalLink" title="Wiki">
+    Wiki</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">ASF</li>
+                                        <li class="none">
+                  <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works">
+    How the ASF works</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">
+    Get Involved</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/dev/" class="externalLink" title="Developer Resources">
+    Developer Resources</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/policies/conduct.html" class="externalLink" title="Code of Conduct">
+    Code of Conduct</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
+    Sponsorship</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+    Thanks</a>
+          </li>
+                 </ul>
+              </div>
+            <div id="poweredBy">
+                                                                                                                    <a href="http://www.apache.org/events/current-event.html" title="ApacheCon" class="builtBy">
+        <img class="builtBy"  alt="ApacheCon" src="http://www.apache.org/events/current-event-125x125.png"    />
+      </a>
+                                                                                                    <a href="http://maven.apache.org/" title="Maven" class="builtBy">
+        <img class="builtBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                      </div>
+          </td>
+          <td class="content">
+            <!-- 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
@@ -191,7 +244,9 @@
  limitations under the License. -->
 
  
-<div class="section"><h2>What to download?<a name="What_to_download"></a></h2>
+<div class="section">
+<h2><a name="What_to_download"></a>What to download?</h2>
+
 <p>
 In the directory
 <a class="externalLink" href="http://www.apache.org/dist/commons/daemon/binaries/">binaries</a>
@@ -200,20 +255,31 @@ corresponding to your operating system.
 </p>
 </div>
 
-<div class="section"><h2>How do I get the executable?<a name="How_do_I_get_the_executable"></a></h2>
-<div class="section"><h3>procrun<a name="procrun"></a></h3>
+
+<div class="section">
+<h2><a name="How_do_I_get_the_executable"></a>How do I get the executable?</h2>
+
+<div class="section">
+<h3><a name="procrun"></a>procrun</h3>
+
 <p>
-The Windows archive (e.g. commons-daemon-1.0.15-bin-windows.zip) contains 2 different executables:
-</p><ul>
+The Windows archive (e.g. commons-daemon-1.1.0-bin-windows.zip) contains 2 different executables:
+</p>
+<ul>
+
 <li>prunsrv.exe - service application for running applications as services.</li>
+
 <li>prunmgr.exe - the GUI manager application used to monitor and configure installed services.</li>
 </ul>
 There is only one <tt>prunmgr.exe</tt> application for all architectures.
 The <tt>prunsrv.exe</tt> executable is available in 3 different versions for different architectures.
 The version in the top-level directory is for 32-bit (x86) architectures.
 The lower level directories are for 64-bit systems:
+
 <ul>
+
 <li>amd64 - AMD/EMT 64-bit</li>
+
 <li>ia64 - Intel Itanium 64-bit</li>
 </ul>
 The Windows application <tt>prunsrv.exe</tt> is used to install an application as a service.
@@ -226,24 +292,20 @@ The Windows binary zip archive should be
 </div>
 
 
-
-      </div>
-    </div>
-    <div class="clear">
-      <hr/>
-    </div>
-    <div id="footer">
-      <div class="center">Copyright &#169;                    2002-2013
-                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
-            All Rights Reserved.      
-                
-      </div>
-                          
+
+          </td>
+        </tr>
+      </table>
+    </div>
+
+    <div class="footer">
+      <p>Copyright &copy;                    2002-2017
+                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+            All Rights Reserved.</p>
+                                                                  
 <div class="center">Apache Commons, Apache Commons Daemon, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation.
-      All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
-                <div class="clear">
-        <hr/>
-      </div>
-    </div>
-  </body>
-</html>
+      All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
+                              </div>
+  </body>
+
+</html>
\ No newline at end of file