Class ConcurrencyDependencyGraph
- java.lang.Object
-
- org.apache.maven.lifecycle.internal.builder.multithreaded.ConcurrencyDependencyGraph
-
public class ConcurrencyDependencyGraph extends java.lang.Object
Presents a view of the Dependency Graph that is suited for concurrent building.
NOTE: This class is not part of any public api and can be changed or deleted without prior notice.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<MavenProject>
finishedProjects
private ProjectBuildList
projectBuilds
private ProjectDependencyGraph
projectDependencyGraph
-
Constructor Summary
Constructors Constructor Description ConcurrencyDependencyGraph(ProjectBuildList projectBuilds, ProjectDependencyGraph projectDependencyGraph)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<MavenProject>
getActiveDependencies(MavenProject p)
protected java.util.List<MavenProject>
getDependencies(MavenProject p)
protected java.util.Set<MavenProject>
getFinishedProjects()
int
getNumberOfBuilds()
protected ProjectBuildList
getProjectBuilds()
java.util.List<MavenProject>
getRootSchedulableBuilds()
Gets all the builds that have no reactor-dependenciesprivate java.util.List<MavenProject>
getSchedulableNewProcesses(MavenProject finishedProject)
java.util.Set<MavenProject>
getUnfinishedProjects()
java.util.List<MavenProject>
markAsFinished(MavenProject mavenProject)
Marks the provided project as finished.
-
-
-
Field Detail
-
projectBuilds
private final ProjectBuildList projectBuilds
-
projectDependencyGraph
private final ProjectDependencyGraph projectDependencyGraph
-
finishedProjects
private final java.util.Set<MavenProject> finishedProjects
-
-
Constructor Detail
-
ConcurrencyDependencyGraph
public ConcurrencyDependencyGraph(ProjectBuildList projectBuilds, ProjectDependencyGraph projectDependencyGraph)
-
-
Method Detail
-
getNumberOfBuilds
public int getNumberOfBuilds()
-
getRootSchedulableBuilds
public java.util.List<MavenProject> getRootSchedulableBuilds()
Gets all the builds that have no reactor-dependencies- Returns:
- A set of all the initial builds
-
markAsFinished
public java.util.List<MavenProject> markAsFinished(MavenProject mavenProject)
Marks the provided project as finished. Returns a list of- Parameters:
mavenProject
- The project- Returns:
- The list of builds that are eligible for starting now that the provided project is done
-
getSchedulableNewProcesses
private java.util.List<MavenProject> getSchedulableNewProcesses(MavenProject finishedProject)
-
getUnfinishedProjects
public java.util.Set<MavenProject> getUnfinishedProjects()
- Returns:
- set of projects that have yet to be processed successfully by the build.
-
getFinishedProjects
protected java.util.Set<MavenProject> getFinishedProjects()
- Returns:
- set of projects that have been successfully processed by the build.
-
getProjectBuilds
protected ProjectBuildList getProjectBuilds()
-
getDependencies
protected java.util.List<MavenProject> getDependencies(MavenProject p)
- Parameters:
p
-- Returns:
- List of prerequisite projects
-
getActiveDependencies
public java.util.List<MavenProject> getActiveDependencies(MavenProject p)
- Parameters:
p
-- Returns:
- List of uncompleted prerequisite projects
-
-