Search in sources :

Example 1 with AsyncCheckInScriptResult

use of com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult in project VideoOptimzer by attdevsupport.

the class BpDetailItem method refresh.

@Override
public void refresh(AROTraceData model) {
    List<AbstractBestPracticeResult> bpResults = model.getBestPracticeResults();
    for (AbstractBestPracticeResult bpr : bpResults) {
        if (bpr.getBestPracticeType().equals(this.bpType)) {
            resultsTextLabel.setText(bpr.getResultText());
            imageLabel.setIcon(loadImageIcon(bpr));
            if (bpr.getResultType().equals(BPResultType.CONFIG_REQUIRED)) {
                addConfigIconActions();
            } else {
                imageLabel.setToolTipText("");
                if (imageLabel.getMouseListeners() != null && imageLabel.getMouseListeners().length > 1) {
                    imageLabel.setCursor(Cursor.getDefaultCursor());
                }
            }
            BestPracticeType resultType = bpr.getBestPracticeType();
            switch(resultType) {
                case FILE_COMPRESSION:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpFileCompressionTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileCompressionTablePanel) resultsTablePanel).setData(((FileCompressionResult) bpr).getResults());
                    return;
                case DUPLICATE_CONTENT:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpFileDuplicateContentTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileDuplicateContentTablePanel) resultsTablePanel).setData(((DuplicateContentResult) bpr).getDuplicateContentList());
                    return;
                case IMAGE_SIZE:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA)
                        ((BpFileImageSizeTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileImageSizeTablePanel) resultsTablePanel).setData(((ImageSizeResult) bpr).getResults());
                    return;
                case IMAGE_MDATA:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA)
                        ((BpFileImageMDataTablePanel) imgMdataResultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileImageMDataTablePanel) imgMdataResultsTablePanel).setData(((ImageMdtaResult) bpr).getResults());
                    return;
                case IMAGE_CMPRS:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA)
                        ((BpFileImageCompressionTablePanel) imageCompressionResultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileImageCompressionTablePanel) imageCompressionResultsTablePanel).setData(((ImageCompressionResult) bpr).getResults());
                    return;
                case IMAGE_FORMAT:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA)
                        ((BpFileImageFormatTablePanel) imageFormatResultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileImageFormatTablePanel) imageFormatResultsTablePanel).setData(((ImageFormatResult) bpr).getResults());
                    return;
                case IMAGE_COMPARE:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA) {
                        ((BpFileImageComparisionTablePanel) imageComparisonResultsTablePanel).setData(Collections.emptyList());
                    } else {
                        ((BpFileImageComparisionTablePanel) imageComparisonResultsTablePanel).setData(((ImageComparatorResult) bpr).getResults());
                    }
                    return;
                case MINIFICATION:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpFileMinificationTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileMinificationTablePanel) resultsTablePanel).setData(((MinificationResult) bpr).getMinificationEntryList());
                    return;
                case SPRITEIMAGE:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpFileSpriteImagesTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpFileSpriteImagesTablePanel) resultsTablePanel).setData(((SpriteImageResult) bpr).getAnalysisResults());
                    return;
                case HTTP_4XX_5XX:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpConnectionsHttp4xx5xxTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpConnectionsHttp4xx5xxTablePanel) resultsTablePanel).setData(((Http4xx5xxResult) bpr).getHttpResCodelist());
                    return;
                case HTTP_3XX_CODE:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpConnectionsHttp3xxTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpConnectionsHttp3xxTablePanel) resultsTablePanel).setData(((Http3xxCodeResult) bpr).getHttp3xxResCode());
                    return;
                case ASYNC_CHECK:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpHtmlAsyncLoadTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else {
                        List<AsyncCheckEntry> res = ((AsyncCheckInScriptResult) bpr).getResults();
                        ((BpHtmlAsyncLoadTablePanel) resultsTablePanel).setData(res);
                    }
                    return;
                case FILE_ORDER:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpHtmlFileOrderTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpHtmlFileOrderTablePanel) resultsTablePanel).setData(((FileOrderResult) bpr).getResults());
                    return;
                case DISPLAY_NONE_IN_CSS:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpHtmlDisplayNoneInCSSTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpHtmlDisplayNoneInCSSTablePanel) resultsTablePanel).setData(((DisplayNoneInCSSResult) bpr).getResults());
                    return;
                case UNNECESSARY_CONNECTIONS:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpConnectionsUnnecessaryTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpConnectionsUnnecessaryTablePanel) resultsTablePanel).setData(((UnnecessaryConnectionResult) bpr).getTightlyCoupledBurstsDetails());
                    return;
                case HTTPS_USAGE:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpSecurityHttpsUsageTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpSecurityHttpsUsageTablePanel) resultsTablePanel).setData(((HttpsUsageResult) bpr).getResults());
                    return;
                case TRANSMISSION_PRIVATE_DATA:
                    if (bpr.getResultType() == BPResultType.NONE) {
                        ((BpSecurityTransmissionPrivateDataTablePanel) resultsTablePanel).setData(Collections.emptyList());
                        buttonPrivateData.setEnabled(false);
                    } else {
                        ((BpSecurityTransmissionPrivateDataTablePanel) resultsTablePanel).setData(((TransmissionPrivateDataResult) bpr).getResults());
                        buttonPrivateData.setEnabled(true);
                    }
                    return;
                case UNSECURE_SSL_VERSION:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpSecurityUnsecureSSLVersionTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpSecurityUnsecureSSLVersionTablePanel) resultsTablePanel).setData(((UnsecureSSLVersionResult) bpr).getResults());
                    return;
                case FORWARD_SECRECY:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BpSecurityForwardSecrecyTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BpSecurityForwardSecrecyTablePanel) resultsTablePanel).setData(((ForwardSecrecyResult) bpr).getResults());
                    return;
                case SIMUL_CONN:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BPConnectionsSimultnsTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BPConnectionsSimultnsTablePanel) resultsTablePanel).setData(((SimultnsConnectionResult) bpr).getResults());
                    return;
                case MULTI_SIMULCONN:
                    if (bpr.getResultType() == BPResultType.NONE)
                        ((BPConnectionsSimultnsTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    else
                        ((BPConnectionsSimultnsTablePanel) resultsTablePanel).setData(((MultiSimultnsConnectionResult) bpr).getResults());
                    return;
                case VIDEO_STALL:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA) {
                        ((BPVideoStallTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    } else {
                        ((BPVideoStallTablePanel) resultsTablePanel).setData(((VideoStallResult) bpr).getResults());
                    }
                    return;
                case STARTUP_DELAY:
                    StartupDelayComparisonPanel startupDelayPanel = (StartupDelayComparisonPanel) resultsChartPanel;
                    List<VideoStartup> results = Collections.emptyList();
                    if (bpr.getResultType() != BPResultType.NONE) {
                        results = ((VideoStartUpDelayResult) bpr).getResults();
                    }
                    startupDelayPanel.setData(results);
                    return;
                case VIDEO_ABR_LADDER:
                    VideoAdaptiveBitrateLadderPanel adaptiveBitrateLadderPanel = (VideoAdaptiveBitrateLadderPanel) resultsChartPanel;
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA) {
                        adaptiveBitrateLadderPanel.setData(Collections.emptyList());
                        ((BPAdaptiveBitrateTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    } else {
                        adaptiveBitrateLadderPanel.setData(((VideoAdaptiveBitrateLadderResult) bpr).getResults());
                        ((BPAdaptiveBitrateTablePanel) resultsTablePanel).setData(((VideoAdaptiveBitrateLadderResult) bpr).getResults());
                    }
                    return;
                case VIDEO_CONCURRENT_SESSION:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA) {
                        ((BPVideoConcurrentSessionTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    } else {
                        ((BPVideoConcurrentSessionTablePanel) resultsTablePanel).setData(((VideoConcurrentSessionResult) bpr).getResults());
                    }
                    return;
                case NETWORK_COMPARISON:
                    if (bpr.getResultType() == BPResultType.NONE || bpr.getResultType() == BPResultType.NO_DATA) {
                        ((BPNetworkComparisonTablePanel) resultsTablePanel).setData(Collections.emptyList());
                    } else {
                        ((BPNetworkComparisonTablePanel) resultsTablePanel).setData(((VideoNetworkComparisonResult) bpr).getResults());
                    }
                    return;
                default:
                    return;
            }
        }
    }
}
Also used : AsyncCheckEntry(com.att.aro.core.bestpractice.pojo.AsyncCheckEntry) UnsecureSSLVersionResult(com.att.aro.core.bestpractice.pojo.UnsecureSSLVersionResult) ImageFormatResult(com.att.aro.core.bestpractice.pojo.ImageFormatResult) AbstractBestPracticeResult(com.att.aro.core.bestpractice.pojo.AbstractBestPracticeResult) BestPracticeType(com.att.aro.core.bestpractice.pojo.BestPracticeType) ImageSizeResult(com.att.aro.core.bestpractice.pojo.ImageSizeResult) DisplayNoneInCSSResult(com.att.aro.core.bestpractice.pojo.DisplayNoneInCSSResult) UnnecessaryConnectionResult(com.att.aro.core.bestpractice.pojo.UnnecessaryConnectionResult) MultiSimultnsConnectionResult(com.att.aro.core.bestpractice.pojo.MultiSimultnsConnectionResult) SimultnsConnectionResult(com.att.aro.core.bestpractice.pojo.SimultnsConnectionResult) VideoStartup(com.att.aro.core.videoanalysis.pojo.VideoStartup) Http3xxCodeResult(com.att.aro.core.bestpractice.pojo.Http3xxCodeResult) HttpsUsageResult(com.att.aro.core.bestpractice.pojo.HttpsUsageResult) MinificationResult(com.att.aro.core.bestpractice.pojo.MinificationResult) SpriteImageResult(com.att.aro.core.bestpractice.pojo.SpriteImageResult) ForwardSecrecyResult(com.att.aro.core.bestpractice.pojo.ForwardSecrecyResult) FileOrderResult(com.att.aro.core.bestpractice.pojo.FileOrderResult) AsyncCheckInScriptResult(com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult) FileCompressionResult(com.att.aro.core.bestpractice.pojo.FileCompressionResult) DuplicateContentResult(com.att.aro.core.bestpractice.pojo.DuplicateContentResult) Http4xx5xxResult(com.att.aro.core.bestpractice.pojo.Http4xx5xxResult) MultiSimultnsConnectionResult(com.att.aro.core.bestpractice.pojo.MultiSimultnsConnectionResult) ImageCompressionResult(com.att.aro.core.bestpractice.pojo.ImageCompressionResult) ImageMdtaResult(com.att.aro.core.bestpractice.pojo.ImageMdtaResult)

Example 2 with AsyncCheckInScriptResult

use of com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult in project VideoOptimzer by attdevsupport.

the class AsyncCheckInScriptImpl method parseHtmlToFindSyncLoadingScripts.

/**
 * Performs parsing of the html file to find the scripts are loaded asynchronously or not
 *
 * @param HtppRequestResponseInfo
 *            info - Http packet to be parsed.
 */
public AsyncCheckInScriptResult parseHtmlToFindSyncLoadingScripts(HttpRequestResponseInfo info, Session session, AsyncCheckInScriptResult resdata) {
    AsyncCheckInScriptResult result = resdata;
    org.jsoup.nodes.Document doc;
    String packetContent = null;
    try {
        packetContent = reqhelper.getContentString(info, session);
    } catch (Exception e1) {
        LOGGER.error("Failed to get content from HttpRequestResponseInfo", e1);
    }
    if (packetContent != null) {
        Elements headLink = null;
        Elements scriptLink = null;
        try {
            doc = Jsoup.parse(packetContent);
            headLink = doc.select("head");
            scriptLink = headLink.select("script");
            for (Element element : scriptLink) {
                if (element.hasAttr("src")) {
                    if ((element.hasAttr("async")) || element.hasAttr("defer")) {
                        result.incrementAsyncLoadedScripts();
                    } else {
                        result.incrementSyncLoadedScripts();
                    }
                }
            }
        } catch (Exception e) {
            LOGGER.error("Failed to get content from html content", e);
        }
    }
    return result;
}
Also used : Element(org.jsoup.nodes.Element) Elements(org.jsoup.select.Elements) AsyncCheckInScriptResult(com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult)

Example 3 with AsyncCheckInScriptResult

use of com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult in project VideoOptimzer by attdevsupport.

the class AsyncCheckInScriptImpl method runTest.

@Override
public AbstractBestPracticeResult runTest(PacketAnalyzerResult tracedata) {
    AsyncCheckInScriptResult result = new AsyncCheckInScriptResult();
    List<AsyncCheckEntry> entrylist = new ArrayList<AsyncCheckEntry>();
    for (Session session : tracedata.getSessionlist()) {
        HttpRequestResponseInfo lastRequestObj = null;
        for (HttpRequestResponseInfo req : session.getRequestResponseInfo()) {
            if (req.getDirection() == HttpDirection.REQUEST) {
                lastRequestObj = req;
            }
            if (req.getDirection() == HttpDirection.RESPONSE && req.getContentType() != null && req.getContentLength() > 0 && reqhelper.isHtml(req.getContentType())) {
                result = parseHtmlToFindSyncLoadingScripts(req, session, result);
                if (result.getSyncLoadedScripts() > 0) {
                    result.incrementSyncPacketCount();
                    result.setSyncLoadedScripts(0);
                    entrylist.add(new AsyncCheckEntry(req, lastRequestObj, session.getDomainName()));
                // modified according to the logic in 4.1
                } else if (result.getAsyncLoadedScripts() > 0) {
                    result.incrementAsyncPacketCount();
                    result.setAsyncLoadedScripts(0);
                }
            }
        }
    }
    result.setResults(entrylist);
    String text = "";
    if (result.getSyncPacketCount() == 0) {
        result.setResultType(BPResultType.PASS);
        text = MessageFormat.format(textResultPass, ApplicationConfig.getInstance().getAppShortName(), // result.getSyncPacketCount());
        entrylist.size());
        result.setResultText(text);
    } else {
        result.setResultType(BPResultType.FAIL);
        text = MessageFormat.format(textResults, ApplicationConfig.getInstance().getAppShortName(), // result.getSyncPacketCount());
        entrylist.size());
        result.setResultText(text);
    }
    result.setResultExcelText(MessageFormat.format(textExcelResults, result.getResultType().getDescription(), entrylist.size()));
    result.setAboutText(aboutText);
    result.setDetailTitle(detailTitle);
    result.setLearnMoreUrl(learnMoreUrl);
    result.setOverviewTitle(overviewTitle);
    result.setExportAllSyncPacketCount(exportAllSyncPacketCount);
    return result;
}
Also used : AsyncCheckEntry(com.att.aro.core.bestpractice.pojo.AsyncCheckEntry) HttpRequestResponseInfo(com.att.aro.core.packetanalysis.pojo.HttpRequestResponseInfo) ArrayList(java.util.ArrayList) AsyncCheckInScriptResult(com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult) Session(com.att.aro.core.packetanalysis.pojo.Session)

Aggregations

AsyncCheckInScriptResult (com.att.aro.core.bestpractice.pojo.AsyncCheckInScriptResult)3 AsyncCheckEntry (com.att.aro.core.bestpractice.pojo.AsyncCheckEntry)2 AbstractBestPracticeResult (com.att.aro.core.bestpractice.pojo.AbstractBestPracticeResult)1 BestPracticeType (com.att.aro.core.bestpractice.pojo.BestPracticeType)1 DisplayNoneInCSSResult (com.att.aro.core.bestpractice.pojo.DisplayNoneInCSSResult)1 DuplicateContentResult (com.att.aro.core.bestpractice.pojo.DuplicateContentResult)1 FileCompressionResult (com.att.aro.core.bestpractice.pojo.FileCompressionResult)1 FileOrderResult (com.att.aro.core.bestpractice.pojo.FileOrderResult)1 ForwardSecrecyResult (com.att.aro.core.bestpractice.pojo.ForwardSecrecyResult)1 Http3xxCodeResult (com.att.aro.core.bestpractice.pojo.Http3xxCodeResult)1 Http4xx5xxResult (com.att.aro.core.bestpractice.pojo.Http4xx5xxResult)1 HttpsUsageResult (com.att.aro.core.bestpractice.pojo.HttpsUsageResult)1 ImageCompressionResult (com.att.aro.core.bestpractice.pojo.ImageCompressionResult)1 ImageFormatResult (com.att.aro.core.bestpractice.pojo.ImageFormatResult)1 ImageMdtaResult (com.att.aro.core.bestpractice.pojo.ImageMdtaResult)1 ImageSizeResult (com.att.aro.core.bestpractice.pojo.ImageSizeResult)1 MinificationResult (com.att.aro.core.bestpractice.pojo.MinificationResult)1 MultiSimultnsConnectionResult (com.att.aro.core.bestpractice.pojo.MultiSimultnsConnectionResult)1 SimultnsConnectionResult (com.att.aro.core.bestpractice.pojo.SimultnsConnectionResult)1 SpriteImageResult (com.att.aro.core.bestpractice.pojo.SpriteImageResult)1