use of com.synopsys.integration.detect.lifecycle.run.operation.OperationFactory in project synopsys-detect by blackducksoftware.
the class DetectRun method createOperationFactory.
private OperationFactory createOperationFactory(BootSingletons bootSingletons, UtilitySingletons utilitySingletons, EventSingletons eventSingletons) throws DetectUserFriendlyException {
DetectorFactory detectorFactory = new DetectorFactory(bootSingletons, utilitySingletons);
DetectFontLoaderFactory detectFontLoaderFactory = new DetectFontLoaderFactory(bootSingletons, utilitySingletons);
return new OperationFactory(detectorFactory.detectDetectableFactory(), detectFontLoaderFactory, bootSingletons, utilitySingletons, eventSingletons, exitCodeManager);
}
use of com.synopsys.integration.detect.lifecycle.run.operation.OperationFactory 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);
}
}
use of com.synopsys.integration.detect.lifecycle.run.operation.OperationFactory in project synopsys-detect by blackducksoftware.
the class BinaryUploadOperationTest method testShouldFailOnDirectory.
@Test
public void testShouldFailOnDirectory() throws OperationException {
BinaryScanOptions binaryScanOptions = new BinaryScanOptions(Paths.get("."), null, 0, false);
OperationFactory operationFactory = Mockito.mock(OperationFactory.class);
Mockito.when(operationFactory.calculateBinaryScanOptions()).thenReturn(binaryScanOptions);
BinaryScanStepRunner binaryScanStepRunner = new BinaryScanStepRunner(operationFactory);
Optional<File> result = binaryScanStepRunner.determineBinaryScanFileTarget(DockerTargetData.NO_DOCKER_TARGET);
Mockito.verify(operationFactory).publishBinaryFailure(Mockito.anyString());
Assertions.assertFalse(result.isPresent());
}
Aggregations