use of org.jboss.as.cli.scriptsupport.CLI in project wildfly by wildfly.
the class CommandLineMain method main.
/**
* Creates a JBoss Diagnostic Reporter (JDR) Report. A JDR report response
* is printed to <code>System.out</code>.
*
* @param args ignored
*/
public static void main(String[] args) {
int port = 9990;
String host = "localhost";
String protocol = "http-remoting";
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);
}
Aggregations