use of com.att.aro.console.printstreamutils.ImHereThread in project VideoOptimzer by attdevsupport.
the class Application method runAnalyzer.
/**
* Analyze a trace and produce a report either in json or html<br>
*
* <pre>
* Required command:
* --analyze with path to trace directory of traffic.cap
* --output output file, error if missing
* --format html or json, if missing defaults to json
*
* @param context
* - Spring ApplicationContext
* @param cmds
* - user commands
*/
void runAnalyzer(ApplicationContext context, Commands cmds) {
String trace = cmds.getAnalyze();
IAROService serv = context.getBean(IAROService.class);
AROTraceData results = null;
// analyze trace file or directory?
OutSave outSave = prepareSystemOut();
ImHereThread imHereThread = new ImHereThread(outSave.getOut(), Logger.getRootLogger());
try {
if (serv.isFile(trace)) {
try {
results = serv.analyzeFile(retrieveBestPractices(), trace);
} catch (IOException | TsharkException e) {
errln("Error occured analyzing trace, detail: " + e.getMessage());
System.exit(1);
}
} else {
try {
results = serv.analyzeDirectory(retrieveBestPractices(), trace);
} catch (IOException e) {
errln("Error occured analyzing trace directory, detail: " + e.getMessage());
System.exit(1);
}
}
if (results != null && results.isSuccess()) {
outSave = prepareSystemOut();
if (cmds.getFormat().equals("json")) {
if (serv.getJSonReport(cmds.getOutput(), results)) {
outln("Successfully produced JSON report: " + cmds.getOutput());
} else {
errln("Failed to produce JSON report.");
}
} else {
if (serv.getHtmlReport(cmds.getOutput(), results)) {
println("Successfully produced HTML report: " + cmds.getOutput());
} else {
errln("Failed to produce HTML report.");
}
}
} else {
printError(results == null ? new ErrorCode() : results.getError());
}
} finally {
imHereThread.endIndicator();
while (imHereThread.isRunning()) {
Thread.yield();
}
restoreSystemOut(outSave);
}
System.exit(0);
}
Aggregations