diff --git a/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ManageProjectsServiceImpl.java b/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ManageProjectsServiceImpl.java index d6e2f7223..142cdd7dd 100644 --- a/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ManageProjectsServiceImpl.java +++ b/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ManageProjectsServiceImpl.java @@ -29,6 +29,7 @@ import javax.inject.Inject; import javax.inject.Named; +import javax.inject.Provider; import java.util.ArrayList; import java.util.List; @@ -40,9 +41,9 @@ public class ManageProjectsServiceImpl extends ProjectsServiceImpl implements Ma private final UpdateProjects projects; @Inject - public ManageProjectsServiceImpl(UpdateProjectsVersions projectsVersions, UpdateProjects projects, @Named("queryMetricsRegistry") QueryMetricsRegistry metricsRegistry, Queue queue, ProjectsConfiguration configuration, @Named("dependencyOverride") DependencyOverride dependencyUtil, MavenDependencyResolver mavenDependencyResolver) + public ManageProjectsServiceImpl(UpdateProjectsVersions projectsVersions, UpdateProjects projects, @Named("queryMetricsRegistry") QueryMetricsRegistry metricsRegistry, Queue queue, ProjectsConfiguration configuration, @Named("dependencyOverride") DependencyOverride dependencyUtil, Provider mavenDependencyResolverProvider) { - super(projectsVersions,projects, metricsRegistry, queue, configuration, dependencyUtil, mavenDependencyResolver); + super(projectsVersions,projects, metricsRegistry, queue, configuration, dependencyUtil, mavenDependencyResolverProvider); this.projects = projects; this.projectsVersions = projectsVersions; } diff --git a/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java b/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java index a95825f44..ca68f91b1 100644 --- a/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java +++ b/legend-depot-core-data-services/src/main/java/org/finos/legend/depot/services/projects/ProjectsServiceImpl.java @@ -58,6 +58,7 @@ import javax.inject.Inject; import javax.inject.Named; +import javax.inject.Provider; import java.util.Map; import java.util.HashMap; import java.util.Set; @@ -87,7 +88,7 @@ public class ProjectsServiceImpl implements ProjectsService private final DependencyOverride dependencyOverride; - private final MavenDependencyResolver mavenDependencyResolver; + private final Provider mavenDependencyResolverProvider; private final Map> transitiveDependenciesMap = new HashMap<>(); @@ -96,7 +97,7 @@ public class ProjectsServiceImpl implements ProjectsService private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(ProjectsServiceImpl.class); @Inject - public ProjectsServiceImpl(ProjectsVersions projectsVersions, Projects projects, @Named("queryMetricsRegistry") QueryMetricsRegistry metricsRegistry, Queue queue, ProjectsConfiguration configuration, @Named("dependencyOverride") DependencyOverride dependencyOverride, MavenDependencyResolver mavenDependencyResolver) + public ProjectsServiceImpl(ProjectsVersions projectsVersions, Projects projects, @Named("queryMetricsRegistry") QueryMetricsRegistry metricsRegistry, Queue queue, ProjectsConfiguration configuration, @Named("dependencyOverride") DependencyOverride dependencyOverride, Provider mavenDependencyResolverProvider) { this.projectsVersions = projectsVersions; this.projects = projects; @@ -104,7 +105,7 @@ public ProjectsServiceImpl(ProjectsVersions projectsVersions, Projects projects, this.queue = queue; this.configuration = configuration; this.dependencyOverride = dependencyOverride; - this.mavenDependencyResolver = mavenDependencyResolver; + this.mavenDependencyResolverProvider = mavenDependencyResolverProvider; } public ProjectsServiceImpl(UpdateProjectsVersions projectsVersions, UpdateProjects projects, QueryMetricsRegistry metricsRegistry, Queue queue, ProjectsConfiguration configuration) @@ -115,7 +116,8 @@ public ProjectsServiceImpl(UpdateProjectsVersions projectsVersions, UpdateProjec this.queue = queue; this.configuration = configuration; this.dependencyOverride = new DependencyUtil(); - this.mavenDependencyResolver = new MavenDependencyResolverImpl(this); + MavenDependencyResolverImpl resolver = new MavenDependencyResolverImpl(this); + this.mavenDependencyResolverProvider = () -> resolver; } @Override @@ -321,7 +323,7 @@ public Set getDependenciesMaven(List projectVers // Aether resolves the full transitive tree via InMemoryArtifactDescriptorReader, // so no manual transitive expansion is needed. The 'transitive' flag controls // whether we return only direct deps or the full tree. - Set dependencies = mavenDependencyResolver.collectDependencies(resolvedVersions, exclusionsMap); + Set dependencies = mavenDependencyResolverProvider.get().collectDependencies(resolvedVersions, exclusionsMap); if (!transitive) { @@ -362,13 +364,13 @@ public void buildDependencyGraph(ProjectDependencyGraph graph, ProjectVersion pa public ProjectDependencyReport getProjectDependencyReportFromProjectVersionList(List projectDependencyVersions) { List artifactDependencies = projectDependencyVersions.stream().map(pv -> new ArtifactDependency(pv.getGroupId(), pv.getArtifactId(), pv.getVersionId())).collect(Collectors.toList()); - return getProjectDependencyReport(artifactDependencies); + return getProjectDependencyReportMaven(artifactDependencies); } public ProjectDependencyReport getProjectDependencyReportMaven(List projectDependencyVersions) { - return mavenDependencyResolver.collectDependencyReport(projectDependencyVersions); + return mavenDependencyResolverProvider.get().collectDependencyReport(projectDependencyVersions); }