Search in sources :

Example 1 with IAROService

use of com.att.aro.core.IAROService 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);
}
Also used : IAROService(com.att.aro.core.IAROService) OutSave(com.att.aro.console.printstreamutils.OutSave) TsharkException(com.att.aro.core.exception.TsharkException) IOException(java.io.IOException) ErrorCode(com.att.aro.core.pojo.ErrorCode) AROTraceData(com.att.aro.core.pojo.AROTraceData) ImHereThread(com.att.aro.console.printstreamutils.ImHereThread)

Aggregations

ImHereThread (com.att.aro.console.printstreamutils.ImHereThread)1 OutSave (com.att.aro.console.printstreamutils.OutSave)1 IAROService (com.att.aro.core.IAROService)1 TsharkException (com.att.aro.core.exception.TsharkException)1 AROTraceData (com.att.aro.core.pojo.AROTraceData)1 ErrorCode (com.att.aro.core.pojo.ErrorCode)1 IOException (java.io.IOException)1