Search in sources :

Example 1 with SingletonFactory

use of com.synopsys.integration.detect.lifecycle.run.singleton.SingletonFactory in project synopsys-detect by blackducksoftware.

the class DetectRun method run.

public void run(BootSingletons bootSingletons) {
    Optional<OperationSystem> operationSystem = Optional.empty();
    try {
        SingletonFactory singletonFactory = new SingletonFactory(bootSingletons);
        EventSingletons eventSingletons = singletonFactory.createEventSingletons();
        UtilitySingletons utilitySingletons = singletonFactory.createUtilitySingletons(eventSingletons);
        operationSystem = Optional.of(utilitySingletons.getOperationSystem());
        // TODO: Remove run data from boot singletons
        ProductRunData productRunData = bootSingletons.getProductRunData();
        OperationFactory operationFactory = createOperationFactory(bootSingletons, utilitySingletons, eventSingletons);
        StepHelper stepHelper = new StepHelper(utilitySingletons.getOperationSystem(), utilitySingletons.getOperationWrapper(), productRunData.getDetectToolFilter());
        // Product independent tools
        UniversalStepRunner stepRunner = new UniversalStepRunner(operationFactory, stepHelper);
        UniversalToolsResult universalToolsResult = stepRunner.runUniversalTools();
        // combine: processProjectInformation() -> ProjectResult (nameversion, bdio)
        NameVersion nameVersion = stepRunner.determineProjectInformation(universalToolsResult);
        operationFactory.publishProjectNameVersionChosen(nameVersion);
        BdioResult bdio = stepRunner.generateBdio(universalToolsResult, nameVersion);
        if (productRunData.shouldUseBlackDuckProduct()) {
            BlackDuckRunData blackDuckRunData = productRunData.getBlackDuckRunData();
            if (blackDuckRunData.isRapid() && blackDuckRunData.isOnline()) {
                RapidModeStepRunner rapidModeSteps = new RapidModeStepRunner(operationFactory);
                rapidModeSteps.runOnline(blackDuckRunData, nameVersion, bdio);
            } else if (blackDuckRunData.isRapid()) {
                logger.info("Rapid Scan is offline, nothing to do.");
            } else if (blackDuckRunData.isOnline()) {
                IntelligentModeStepRunner intelligentModeSteps = new IntelligentModeStepRunner(operationFactory, stepHelper);
                intelligentModeSteps.runOnline(blackDuckRunData, bdio, nameVersion, productRunData.getDetectToolFilter(), universalToolsResult.getDockerTargetData());
            } else {
                IntelligentModeStepRunner intelligentModeSteps = new IntelligentModeStepRunner(operationFactory, stepHelper);
                intelligentModeSteps.runOffline(nameVersion, universalToolsResult.getDockerTargetData());
            }
        }
    } catch (Exception e) {
        logger.error(ReportConstants.RUN_SEPARATOR);
        logger.error("Detect run failed.");
        exceptionUtility.logException(e);
        logger.debug("An exception was thrown during the detect run.", e);
        logger.error(ReportConstants.RUN_SEPARATOR);
        exitCodeManager.requestExitCode(e);
        checkForInterruptedException(e);
    } finally {
        operationSystem.ifPresent(OperationSystem::publishOperations);
    }
}
Also used : NameVersion(com.synopsys.integration.util.NameVersion) BlackDuckRunData(com.synopsys.integration.detect.lifecycle.run.data.BlackDuckRunData) BdioResult(com.synopsys.integration.detect.workflow.bdio.BdioResult) OperationSystem(com.synopsys.integration.detect.workflow.status.OperationSystem) SingletonFactory(com.synopsys.integration.detect.lifecycle.run.singleton.SingletonFactory) UtilitySingletons(com.synopsys.integration.detect.lifecycle.run.singleton.UtilitySingletons) ProductRunData(com.synopsys.integration.detect.lifecycle.run.data.ProductRunData) DetectUserFriendlyException(com.synopsys.integration.detect.configuration.DetectUserFriendlyException) IntelligentModeStepRunner(com.synopsys.integration.detect.lifecycle.run.step.IntelligentModeStepRunner) UniversalToolsResult(com.synopsys.integration.detect.tool.UniversalToolsResult) RapidModeStepRunner(com.synopsys.integration.detect.lifecycle.run.step.RapidModeStepRunner) EventSingletons(com.synopsys.integration.detect.lifecycle.run.singleton.EventSingletons) StepHelper(com.synopsys.integration.detect.lifecycle.run.step.utility.StepHelper) UniversalStepRunner(com.synopsys.integration.detect.lifecycle.run.step.UniversalStepRunner) OperationFactory(com.synopsys.integration.detect.lifecycle.run.operation.OperationFactory)

Aggregations

DetectUserFriendlyException (com.synopsys.integration.detect.configuration.DetectUserFriendlyException)1 BlackDuckRunData (com.synopsys.integration.detect.lifecycle.run.data.BlackDuckRunData)1 ProductRunData (com.synopsys.integration.detect.lifecycle.run.data.ProductRunData)1 OperationFactory (com.synopsys.integration.detect.lifecycle.run.operation.OperationFactory)1 EventSingletons (com.synopsys.integration.detect.lifecycle.run.singleton.EventSingletons)1 SingletonFactory (com.synopsys.integration.detect.lifecycle.run.singleton.SingletonFactory)1 UtilitySingletons (com.synopsys.integration.detect.lifecycle.run.singleton.UtilitySingletons)1 IntelligentModeStepRunner (com.synopsys.integration.detect.lifecycle.run.step.IntelligentModeStepRunner)1 RapidModeStepRunner (com.synopsys.integration.detect.lifecycle.run.step.RapidModeStepRunner)1 UniversalStepRunner (com.synopsys.integration.detect.lifecycle.run.step.UniversalStepRunner)1 StepHelper (com.synopsys.integration.detect.lifecycle.run.step.utility.StepHelper)1 UniversalToolsResult (com.synopsys.integration.detect.tool.UniversalToolsResult)1 BdioResult (com.synopsys.integration.detect.workflow.bdio.BdioResult)1 OperationSystem (com.synopsys.integration.detect.workflow.status.OperationSystem)1 NameVersion (com.synopsys.integration.util.NameVersion)1