public void init()

in src/main/java/org/apache/commons/daemon/support/DaemonWrapper.java [88:168]


    public void init(final DaemonContext context)
        throws Exception
    {
        final String[] args = context.getArguments();

        if (args != null) {
            int i;
            // Parse our arguments and remove them
            // from the final argument array we are
            // passing to our child.
            arguments:
            for (i = 0; i < args.length; i++) {
                if (args[i].equals("--")) {
                    // Done with argument processing
                    break;
                }
                switch (args[i]) {
                    case "-daemon-properties":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        configFileName = args[i];
                        break;
                    case "-start":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        startup.setClassName(args[i]);
                        break;
                    case "-start-method":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        startup.setMethodName(args[i]);
                        break;
                    case "-stop":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        shutdown.setClassName(args[i]);
                        break;
                    case "-stop-method":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        shutdown.setMethodName(args[i]);
                        break;
                    case "-stop-argument":
                        if (++i == args.length) {
                            throw new IllegalArgumentException(args[i - 1]);
                        }
                        final String[] aa = new String[1];
                        aa[0] = args[i];
                        shutdown.addArguments(aa);
                        break;
                    default:
                        // This is not our option.
                        // Everything else will be forwarded to the main
                        break arguments;
                }
            }
            if (args.length > i) {
                final String[] copy = new String[args.length - i];
                System.arraycopy(args, i, copy, 0, copy.length);
                startup.addArguments(copy);
            }
        }
        if (config.load(configFileName)) {
            // Setup params if not set via cmdline.
            startup.setClassName(config.getProperty(START_CLASS));
            startup.setMethodName(config.getProperty(START_METHOD));
            // Merge the config with command line arguments
            startup.addArguments(config.getPropertyArray(ARGS));

            shutdown.setClassName(config.getProperty(STOP_CLASS));
            shutdown.setMethodName(config.getProperty(STOP_METHOD));
            shutdown.addArguments(config.getPropertyArray(STOP_ARGS));
        }
        startup.validate();
        shutdown.validate();
    }