diff --git a/detectable/src/main/java/com/synopsys/integration/detectable/detectables/nuget/parse/NugetDependencyNodeBuilder.java b/detectable/src/main/java/com/synopsys/integration/detectable/detectables/nuget/parse/NugetDependencyNodeBuilder.java index 73d535b4ae..ee2011da94 100644 --- a/detectable/src/main/java/com/synopsys/integration/detectable/detectables/nuget/parse/NugetDependencyNodeBuilder.java +++ b/detectable/src/main/java/com/synopsys/integration/detectable/detectables/nuget/parse/NugetDependencyNodeBuilder.java @@ -1,16 +1,20 @@ package com.synopsys.integration.detectable.detectables.nuget.parse; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import com.synopsys.integration.bdio.graph.BasicDependencyGraph; import com.synopsys.integration.bdio.graph.DependencyGraph; import com.synopsys.integration.bdio.model.Forge; import com.synopsys.integration.bdio.model.dependency.Dependency; +import com.synopsys.integration.bdio.model.externalid.ExternalId; import com.synopsys.integration.detectable.detectables.nuget.model.NugetPackageId; import com.synopsys.integration.detectable.detectables.nuget.model.NugetPackageSet; public class NugetDependencyNodeBuilder { + private static Map externalIdToDependencyMap = new HashMap<>(); private final List packageSets = new ArrayList<>(); public void addPackageSets(List sets) { @@ -38,6 +42,14 @@ public DependencyGraph createDependencyGraph(List packageDepende } private Dependency convertPackageId(NugetPackageId id) { - return Dependency.FACTORY.createNameVersionDependency(Forge.NUGET, id.name, id.version); + Dependency d = Dependency.FACTORY.createNameVersionDependency(Forge.NUGET, id.name, id.version); + ExternalId ei = d.getExternalId(); + + if (externalIdToDependencyMap.containsKey(ei)) { + d = externalIdToDependencyMap.get(ei); + } else { + externalIdToDependencyMap.put(ei, d); + } + return d; } }