public List<MavenProject> getSortedProjects() { if ( sortedProjects == null ) { sortedProjects = applyFilter( projectDependencyGraph.getSortedProjects() ); } return new ArrayList<>( sortedProjects ); }
public List<MavenProject> getDownstreamProjects( MavenProject project, boolean transitive ) { return applyFilter( projectDependencyGraph.getDownstreamProjects( project, transitive ) ); }
/** * For the given {@link MavenProject} {@code p}, return all of {@code p}'s dependencies. * * @param p * @return List of prerequisite projects */ protected List<MavenProject> getDependencies( MavenProject p ) { return projectDependencyGraph.getUpstreamProjects( p, false ); }
private List<MavenProject> getSchedulableNewProcesses( MavenProject finishedProject ) { List<MavenProject> result = new ArrayList<>(); // schedule dependent projects, if all of their requirements are met for ( MavenProject dependentProject : projectDependencyGraph.getDownstreamProjects( finishedProject, false ) ) { final List<MavenProject> upstreamProjects = projectDependencyGraph.getUpstreamProjects( dependentProject, false ); if ( finishedProjects.containsAll( upstreamProjects ) ) { result.add( dependentProject ); } } return result; }
private Result<? extends ProjectDependencyGraph> buildGraph( MavenSession session, MavenExecutionResult result ) { Result<? extends ProjectDependencyGraph> graphResult = graphBuilder.build( session ); for ( ModelProblem problem : graphResult.getProblems() ) { if ( problem.getSeverity() == ModelProblem.Severity.WARNING ) { logger.warn( problem.toString() ); } else { logger.error( problem.toString() ); } } if ( !graphResult.hasErrors() ) { ProjectDependencyGraph projectDependencyGraph = graphResult.get(); session.setProjects( projectDependencyGraph.getSortedProjects() ); session.setAllProjects( projectDependencyGraph.getAllProjects() ); session.setProjectDependencyGraph( projectDependencyGraph ); } return graphResult; }
/** * @since 3.5.0 */ public List<MavenProject> getAllProjects() { return this.projectDependencyGraph.getAllProjects(); }
selectedProjects.addAll( graph.getUpstreamProjects( selectedProject, true ) ); selectedProjects.addAll( graph.getDownstreamProjects( selectedProject, true ) );
private boolean isSingleVersionedReactor( MavenSession session ) { boolean result = true; MavenProject topProject = session.getTopLevelProject(); List<MavenProject> sortedProjects = session.getProjectDependencyGraph().getSortedProjects(); for ( MavenProject mavenProject : sortedProjects ) { if ( !topProject.getVersion().equals( mavenProject.getVersion() ) ) { result = false; break; } } return result; }
/** * For the given {@link MavenProject} {@code p} return {@code p}'s uncompleted dependencies. * * @param p * @return List of uncompleted prerequisite projects */ public List<MavenProject> getActiveDependencies( MavenProject p ) { List<MavenProject> activeDependencies = projectDependencyGraph.getUpstreamProjects( p, false ); activeDependencies.removeAll( finishedProjects ); return activeDependencies; } }
public void blackList( MavenProject project ) { if ( blackListedProjects.add( BuilderCommon.getKey( project ) ) && projectDependencyGraph != null ) { for ( MavenProject downstreamProject : projectDependencyGraph.getDownstreamProjects( project, true ) ) { blackListedProjects.add( BuilderCommon.getKey( downstreamProject ) ); } } }
private Result<ProjectDependencyGraph> reactorDependencyGraph( MavenSession session, List<MavenProject> projects ) throws CycleDetectedException, DuplicateProjectException, MavenExecutionException { ProjectDependencyGraph projectDependencyGraph = new DefaultProjectDependencyGraph( projects ); List<MavenProject> activeProjects = projectDependencyGraph.getSortedProjects(); activeProjects = trimSelectedProjects( activeProjects, projectDependencyGraph, session.getRequest() ); activeProjects = trimExcludedProjects( activeProjects, session.getRequest() ); activeProjects = trimResumedProjects( activeProjects, session.getRequest() ); if ( activeProjects.size() != projectDependencyGraph.getSortedProjects().size() ) { projectDependencyGraph = new FilteredProjectDependencyGraph( projectDependencyGraph, activeProjects ); } return Result.success( projectDependencyGraph ); }
public List<MavenProject> getUpstreamProjects( MavenProject project, boolean transitive ) { return applyFilter( projectDependencyGraph.getUpstreamProjects( project, transitive ) ); }
@Override public List<MavenProject> getDownstreamProjects(MavenProject project) { return graph.getDownstreamProjects(project, false); }
@Override public List<MavenProject> getSortedProjects() { return graph.getSortedProjects(); }
/** * Gets all the builds that have no reactor-dependencies * * @return A set of all the initial builds */ public List<MavenProject> getRootSchedulableBuilds() { Set<MavenProject> result = new LinkedHashSet<>(); for ( ProjectSegment projectBuild : projectBuilds ) { if ( projectDependencyGraph.getUpstreamProjects( projectBuild.getProject(), false ).isEmpty() ) { result.add( projectBuild.getProject() ); } } return new ArrayList<>( result ); }
public List<MavenProject> getDownstreamProjects(MavenProject project) { return dependencyGraph.getDownstreamProjects(project, false); }
Supplier<Collection<MavenProject>> subProjectsInReactorOrder() { return () -> AbstractAggregatingGraphMojo.this.mavenSession.getProjectDependencyGraph().getSortedProjects(); } }
public ProjectSegment( MavenProject project, TaskSegment taskSegment, MavenSession copiedSession ) { this.project = project; this.taskSegment = taskSegment; this.session = copiedSession; final ProjectDependencyGraph dependencyGraph = getSession().getProjectDependencyGraph(); nonTransitiveUpstreamProjects = dependencyGraph.getUpstreamProjects( getProject(), false ); transitiveUpstreamProjects = dependencyGraph.getUpstreamProjects( getProject(), true ); }
private Stream<MavenProject> streamProjectWithDependents(MavenProject project) { return Stream.concat( Stream.of(project), mavenSession.getProjectDependencyGraph().getDownstreamProjects(project, true).stream() .filter(p -> !configProvider.get().excludeTransitiveModulesPackagedAs.contains(p.getPackaging()))); }
public SessionArtifactFilter(MavenSession session, boolean include) { this.projects = session.getProjectDependencyGraph().getSortedProjects(); this.include = include; }