private void parseAndContinue(String[] args) {

        Option host = OptionBuilder
                .withValueSeparator()
                .hasArgs(1)
                .withDescription("Host (name or ip) to bind to")
                .create(HOST_OPTION);

        Option port = OptionBuilder
                .withValueSeparator()
                .hasArgs(1)
                .withDescription("Port to bind to")
                .create(PORT_OPTION);

        Option modules = OptionBuilder
                .withValueSeparator()
                .hasArgs(1)
                .withDescription("Load modules. Example modules=echo,auth,persistence-db1")
                .create(MODULES_OPTION);

        Option help = new Option(HELP_OPTION, "print command line help");

        Options options = new Options();
        options.addOption(help);
        options.addOption(host);
        options.addOption(port);
        options.addOption(modules);

        CommandLine line;
        CommandLineParser parser = new GnuParser();
        try {
            line = parser.parse( options, args );
        } catch (ParseException e) {
            System.err.println("Error: " + e.getMessage());
            return;
        }

        if(line.hasOption(HELP_OPTION)) {
            HelpFormatter formatter = new HelpFormatter();
            formatter.setWidth(120);
            formatter.printHelp(EXECUTABLE_NAME, options );
            return;
        }

        if(!line.hasOption(HOST_OPTION) || "".equals(line.getOptionValue(HOST_OPTION).trim())) {
            System.err.println("host parameter required");
            return;
        }
        if(!line.hasOption(PORT_OPTION) || "".equals(line.getOptionValue(PORT_OPTION).trim())) {
            System.err.println("port parameter required");
            return;
        }

        String[] modulesArray = new String[]{}; 
        if(line.hasOption(MODULES_OPTION) && !"".equals(line.getOptionValue(MODULES_OPTION).trim())) {
            modulesArray = line.getOptionValue(MODULES_OPTION).split(",");            
        }

        Properties jbNodeProperties = new Properties();
        jbNodeProperties.setProperty(ParameterConstants.JBNODE_HOST_PARAMETER, line.getOptionValue(HOST_OPTION));
        jbNodeProperties.setProperty(ParameterConstants.JBNODE_PORT_PARAMETER, line.getOptionValue(PORT_OPTION));

        setupAndRun(jbNodeProperties, modulesArray);
    }