use of com.synopsys.integration.detectable.detectables.conan.ConanCodeLocationGenerator in project synopsys-detect by blackducksoftware.
the class DetectableFactory method conanCliExtractor.
private ConanCliExtractor conanCliExtractor(ConanCliOptions options) {
ConanCommandRunner conanCommandRunner = new ConanCommandRunner(executableRunner, options.getLockfilePath().orElse(null), options.getAdditionalArguments().orElse(null));
ConanInfoLineAnalyzer conanInfoLineAnalyzer = new ConanInfoLineAnalyzer();
ConanCodeLocationGenerator conanCodeLocationGenerator = new ConanCodeLocationGenerator(options.getDependencyTypeFilter(), options.preferLongFormExternalIds());
NodeElementParser nodeElementParser = new NodeElementParser(conanInfoLineAnalyzer);
ConanInfoNodeParser conanInfoNodeParser = new ConanInfoNodeParser(conanInfoLineAnalyzer, nodeElementParser);
ConanInfoParser conanInfoParser = new ConanInfoParser(conanInfoNodeParser, conanCodeLocationGenerator, externalIdFactory);
return new ConanCliExtractor(conanCommandRunner, conanInfoParser, toolVersionLogger);
}
use of com.synopsys.integration.detectable.detectables.conan.ConanCodeLocationGenerator in project synopsys-detect by blackducksoftware.
the class ConanLockfileParserFunctionalTest method testRelativePath.
@Test
public void testRelativePath() throws IOException, IntegrationException {
File lockfile = FunctionalTestFiles.asFile("/conan/lockfile/conan_relpath.lock");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanLockfileParser parser = new ConanLockfileParser(new Gson(), new ConanCodeLocationGenerator(dependencyTypeFilter, true), new ExternalIdFactory());
String conanLockfileContents = FileUtils.readFileToString(lockfile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanLockfileContents(conanLockfileContents);
assertEquals(1, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
}
use of com.synopsys.integration.detectable.detectables.conan.ConanCodeLocationGenerator in project synopsys-detect by blackducksoftware.
the class DetectableFactory method conanLockfileExtractor.
private ConanLockfileExtractor conanLockfileExtractor(ConanLockfileExtractorOptions options) {
ConanCodeLocationGenerator conanCodeLocationGenerator = new ConanCodeLocationGenerator(options.getDependencyTypeFilter(), options.preferLongFormExternalIds());
ConanLockfileParser conanLockfileParser = new ConanLockfileParser(gson, conanCodeLocationGenerator, externalIdFactory);
return new ConanLockfileExtractor(conanLockfileParser);
}
use of com.synopsys.integration.detectable.detectables.conan.ConanCodeLocationGenerator in project synopsys-detect by blackducksoftware.
the class ConanCliParserFunctionalTest method test.
@Test
public void test() throws IOException, IntegrationException {
File conanInfoOutputFile = FunctionalTestFiles.asFile("/conan/cli/conan_info.txt");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanCodeLocationGenerator conanCodeLocationGenerator = new ConanCodeLocationGenerator(dependencyTypeFilter, false);
ConanInfoLineAnalyzer conanInfoLineAnalyzer = new ConanInfoLineAnalyzer();
NodeElementParser nodeElementParser = new NodeElementParser(conanInfoLineAnalyzer);
ConanInfoNodeParser conanInfoNodeParser = new ConanInfoNodeParser(conanInfoLineAnalyzer, nodeElementParser);
ConanInfoParser parser = new ConanInfoParser(conanInfoNodeParser, conanCodeLocationGenerator, new ExternalIdFactory());
String conanInfoOutput = FileUtils.readFileToString(conanInfoOutputFile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanInfoOutput(conanInfoOutput);
assertEquals(3, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
DependencyGraph actualDependencyGraph = result.getCodeLocation().getDependencyGraph();
GraphCompare.assertEqualsResource("/conan/cli/noProjectRef_graph.json", actualDependencyGraph);
}
use of com.synopsys.integration.detectable.detectables.conan.ConanCodeLocationGenerator in project synopsys-detect by blackducksoftware.
the class ConanLockfileParserFunctionalTest method testNoProjectRef.
@Test
public void testNoProjectRef() throws IOException, IntegrationException {
File lockfile = FunctionalTestFiles.asFile("/conan/lockfile/conan.lock");
EnumListFilter<ConanDependencyType> dependencyTypeFilter = EnumListFilter.excludeNone();
ConanLockfileParser parser = new ConanLockfileParser(new Gson(), new ConanCodeLocationGenerator(dependencyTypeFilter, false), new ExternalIdFactory());
String conanLockfileContents = FileUtils.readFileToString(lockfile, StandardCharsets.UTF_8);
ConanDetectableResult result = parser.generateCodeLocationFromConanLockfileContents(conanLockfileContents);
assertEquals(3, result.getCodeLocation().getDependencyGraph().getRootDependencies().size());
DependencyGraph actualDependencyGraph = result.getCodeLocation().getDependencyGraph();
GraphCompare.assertEqualsResource("/conan/lockfile/noProjectRef_graph.json", actualDependencyGraph);
}
Aggregations