diff --git a/src/main/java/com/redhat/exhort/integration/backend/sbom/spdx/SpdxParser.java b/src/main/java/com/redhat/exhort/integration/backend/sbom/spdx/SpdxParser.java index 8e4d78a8..c9754228 100644 --- a/src/main/java/com/redhat/exhort/integration/backend/sbom/spdx/SpdxParser.java +++ b/src/main/java/com/redhat/exhort/integration/backend/sbom/spdx/SpdxParser.java @@ -165,7 +165,7 @@ private enum RelationshipDirection { static RelationshipDirection fromRelationshipType(RelationshipType type) { return switch (type) { case DEPENDS_ON, - CONTAINS, + CONTAINED_BY, BUILD_DEPENDENCY_OF, OPTIONAL_COMPONENT_OF, OPTIONAL_DEPENDENCY_OF, @@ -174,7 +174,7 @@ static RelationshipDirection fromRelationshipType(RelationshipType type) { RUNTIME_DEPENDENCY_OF, DEV_DEPENDENCY_OF, ANCESTOR_OF -> FORWARD; - case DEPENDENCY_OF, DESCENDANT_OF, PACKAGE_OF, CONTAINED_BY -> BACKWARDS; + case DEPENDENCY_OF, DESCENDANT_OF, PACKAGE_OF, CONTAINS -> BACKWARDS; default -> IGNORED; }; } diff --git a/src/main/java/com/redhat/exhort/integration/providers/snyk/SnykRequestBuilder.java b/src/main/java/com/redhat/exhort/integration/providers/snyk/SnykRequestBuilder.java index c00b27a5..961bfb26 100644 --- a/src/main/java/com/redhat/exhort/integration/providers/snyk/SnykRequestBuilder.java +++ b/src/main/java/com/redhat/exhort/integration/providers/snyk/SnykRequestBuilder.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Predicate; +import java.util.stream.Collectors; import org.apache.camel.Body; import org.apache.camel.Exchange; @@ -125,6 +126,8 @@ private JsonNode addPackages(ObjectNode depGraph, Set refs, PackageR var pkgs = mapper.createArrayNode().add(createPkg(root)); refs.stream() + .collect(Collectors.toMap(k -> getId(k), v -> v, (a, b) -> a)) + .values() .forEach( d -> { pkgs.add(createPkg(d)); diff --git a/src/test/java/com/redhat/exhort/integration/backend/sbom/SbomParserTest.java b/src/test/java/com/redhat/exhort/integration/backend/sbom/SbomParserTest.java index 777fc5f2..f093dbea 100644 --- a/src/test/java/com/redhat/exhort/integration/backend/sbom/SbomParserTest.java +++ b/src/test/java/com/redhat/exhort/integration/backend/sbom/SbomParserTest.java @@ -136,8 +136,8 @@ void testSpdxReverseRelationships() { var file = getClass().getClassLoader().getResourceAsStream(fileName); var tree = parser.buildTree(file); - assertEquals(4, tree.dependencies().size()); - assertEquals(260, tree.transitiveCount()); + assertEquals(260, tree.dependencies().size()); + assertEquals(4, tree.transitiveCount()); } @ParameterizedTest