From 4c8f90c6e56f1967709f5d2119f7b86d414cf639 Mon Sep 17 00:00:00 2001 From: gs-gunjan <72594207+gs-gunjan@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:47:12 +0530 Subject: [PATCH] override dependencies in project dependency report override dependencies in project dependency report --- .../services/projects/ProjectsServiceImpl.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java index 0d6248190..49e74369e 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java +++ b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java @@ -48,6 +48,7 @@ import java.util.Set; import java.util.HashSet; import java.util.Map; +import java.util.ArrayList; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -267,7 +268,22 @@ public ProjectDependencyReport getProjectDependencyReport(List p ProjectDependencyGraph graph = new ProjectDependencyGraph(); ProjectDependencyGraphWalkerContext graphWalkerContext = new ProjectDependencyGraphWalkerContext(); buildDependencyGraph(graph, null, projectDependencyVersions, graphWalkerContext); - return buildReportFromGraph(graph,graphWalkerContext); + ProjectDependencyReport report = buildReportFromGraph(graph, graphWalkerContext); + return overrideConflictDependencies(projectDependencyVersions, report); + } + + public ProjectDependencyReport overrideConflictDependencies(List projectDependencyVersions, ProjectDependencyReport report) + { + List conflicts = new ArrayList<>(report.getConflicts()); + projectDependencyVersions.stream().forEach(dep -> + { + Optional conflictPresent = conflicts.stream().filter(conflict -> conflict.getGroupId().equals(dep.getGroupId()) && conflict.getArtifactId().equals(dep.getArtifactId())).findFirst(); + if (conflictPresent.isPresent()) + { + report.removeConflict(conflictPresent.get()); + } + }); + return report; } public ProjectDependencyReport buildReportFromGraph(ProjectDependencyGraph dependencyGraph, ProjectDependencyGraphWalkerContext graphWalkerContext)