jdr/jboss-as-jdr/src/main/java/org/jboss/as/jdr/CommandLineMain.java
public static void main(String[] args) {
        int port = 9990;
        String host = "localhost";
        String protocol = "remote+http";
        String config = null;
        try {
            CommandLine line = parser.parse(options, args, false);

            if (line.hasOption("help")) {
                formatter.printHelp(usage, NEW_LINE + JdrLogger.ROOT_LOGGER.jdrDescriptionMessage(), options, null);
                return;
            }
            if (line.hasOption("host")) {
                host = line.getOptionValue("host");
            }

            if (line.hasOption("port")) {
                port = Integer.parseInt(line.getOptionValue("port"));
            }

            if (line.hasOption("protocol")) {
                protocol = line.getOptionValue("protocol");
            }

            if (line.hasOption("config")) {
                config = line.getOptionValue("config");
            }
        } catch (ParseException e) {
            System.out.println(e.getMessage());
            formatter.printHelp(usage, options);
            return;
        } catch (NumberFormatException nfe) {
            System.out.println(nfe.getMessage());
            formatter.printHelp(usage, options);
            return;
        }

        System.out.println("Initializing JBoss Diagnostic Reporter...");

        // Try to run JDR on the Wildfly JVM
        CLI cli = CLI.newInstance();
        boolean embedded = false;
        JdrReport report = null;
        try {
            System.out.println(String.format("Trying to connect to %s %s:%s", protocol, host, port));
            cli.connect(protocol, host, port, null, null);
        } catch (IllegalStateException ex) {
            System.out.println("Starting embedded server");
            String startEmbeddedServer = "embed-server --std-out=echo " + ((config != null && ! config.isEmpty()) ? (" --server-config=" + config) : "");
            cli.getCommandContext().handleSafe(startEmbeddedServer);
            embedded = true;
        }
        try {
            Result cmdResult = cli.cmd("/subsystem=jdr:generate-jdr-report()");
            ModelNode response = cmdResult.getResponse();
            if(Operations.isSuccessfulOutcome(response) || !embedded) {
                reportFailure(response);
                ModelNode result = response.get(ClientConstants.RESULT);
                report = new JdrReport(result);
            } else {
                report = standaloneCollect(cli, protocol, host, port);
            }
        } catch(IllegalStateException ise) {
            System.out.println(ise.getMessage());
            report = standaloneCollect(cli, protocol, host, port);
        } finally {
            if(cli != null) {
                try {
                    if(embedded)
                        cli.getCommandContext().handleSafe("stop-embedded-server");
                    else
                        cli.disconnect();
                } catch(Exception e) {
                    System.out.println("Caught exception while disconnecting: " + e.getMessage());
                }
            }
        }
        printJdrReportInfo(report);
        System.exit(0);
    }
public static void main(String[] args) {
        int port = 9990;
        String host = "localhost";
        String protocol = "remote+http";
        String config = null;
        try {
            CommandLine line = parser.parse(options, args, false);

            if (line.hasOption("help")) {
                formatter.printHelp(usage, NEW_LINE + JdrLogger.ROOT_LOGGER.jdrDescriptionMessage(), options, null);
                return;
            }
            if (line.hasOption("host")) {
                host = line.getOptionValue("host");
            }

            if (line.hasOption("port")) {
                port = Integer.parseInt(line.getOptionValue("port"));
            }

            if (line.hasOption("protocol")) {
                protocol = line.getOptionValue("protocol");
            }

            if (line.hasOption("config")) {
                config = line.getOptionValue("config");
            }
        } catch (ParseException e) {
            System.out.println(e.getMessage());
            formatter.printHelp(usage, options);
            return;
        } catch (NumberFormatException nfe) {
            System.out.println(nfe.getMessage());
            formatter.printHelp(usage, options);
            return;
        }

        System.out.println("Initializing JBoss Diagnostic Reporter...");

        // Try to run JDR on the Wildfly JVM
        CLI cli = CLI.newInstance();
        boolean embedded = false;
        JdrReport report = null;
        try {
            System.out.println(String.format("Trying to connect to %s %s:%s", protocol, host, port));
            cli.connect(protocol, host, port, null, null);
        } catch (IllegalStateException ex) {
            System.out.println("Starting embedded server");
            String startEmbeddedServer = "embed-server --std-out=echo " + ((config != null && ! config.isEmpty()) ? (" --server-config=" + config) : "");
            cli.getCommandContext().handleSafe(startEmbeddedServer);
            embedded = true;
        }
        try {
            Result cmdResult = cli.cmd("/subsystem=jdr:generate-jdr-report()");
            ModelNode response = cmdResult.getResponse();
            if(Operations.isSuccessfulOutcome(response) || !embedded) {
                reportFailure(response);
                ModelNode result = response.get(ClientConstants.RESULT);
                report = new JdrReport(result);
            } else {
                report = standaloneCollect(cli, protocol, host, port);
            }
        } catch(IllegalStateException ise) {
            System.out.println(ise.getMessage());
            report = standaloneCollect(cli, protocol, host, port);
        } finally {
            if(cli != null) {
                try {
                    if(embedded)
                        cli.getCommandContext().handleSafe("stop-embedded-server");
                    else
                        cli.disconnect();
                } catch(Exception e) {
                    System.out.println("Caught exception while disconnecting: " + e.getMessage());
                }
            }
        }
        printJdrReportInfo(report);
        System.exit(0);
    }
Creates a JBoss Diagnostic Reporter (JDR) Report. A JDR report response
is printed to <code>System.out</code>.

@param args ignored