/** * 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 ); }
/** * 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 List<MavenProject> getUpstreamProjects( MavenProject project, boolean transitive ) { return applyFilter( projectDependencyGraph.getUpstreamProjects( project, transitive ) ); }
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; }
/** * 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 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 ); }
selectedProjects.addAll( graph.getUpstreamProjects( selectedProject, true ) );
@Override public List<MavenProject> getUpstreamProjects(MavenProject project) { return graph.getUpstreamProjects(project, false); } };
private boolean isProjectReady(MavenProject project) { for (MavenProject upstream : dependencyGraph.getUpstreamProjects(project, false)) { if (!finishedProjects.contains(upstream)) { return false; } } return true; }
public ReactorBuildQueue(Collection<MavenProject> projects, ProjectDependencyGraph dependencyGraph) { this.dependencyGraph = dependencyGraph; final Set<MavenProject> rootProjects = new HashSet<MavenProject>(); for (MavenProject project : projects) { if (dependencyGraph.getUpstreamProjects(project, false).isEmpty()) { rootProjects.add(project); } else { blockedProjects.add(project); } } this.rootProjects = ImmutableSet.copyOf(rootProjects); this.projects = ImmutableSet.copyOf(projects); }
private Stream<MavenProject> streamProjectWithDependencies(MavenProject project) { return Stream.concat( Stream.of(project), mavenSession.getProjectDependencyGraph().getUpstreamProjects(project, true).stream()); }
private void writeWorkspaceState() throws MojoExecutionException { MutableWorkspaceState state = new MutableWorkspaceState(); // always include this project's pom and jar artifacts state.putPom(project.getFile(), project.getGroupId(), project.getArtifactId(), project.getVersion()); state.putArtifact(outputDirectory, project.getGroupId(), project.getArtifactId(), // "jar" /* extension */, null/* classifier */, project.getVersion()); if (reactorDependencies != null) { // either runs from m2e or from command line with --non-recursive parameter for (MavenProject other : reactorDependencies.getUpstreamProjects(project, true)) { putProject(state, other); } } try (OutputStream os = context.processOutput(workspaceState).newOutputStream()) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); state.store(buffer); PropertiesWriter.write(buffer.toByteArray(), os); } catch (IOException e) { throw new MojoExecutionException("Could not create reactor state file " + workspaceState, e); } }
private void writeWorkspaceState() throws MojoExecutionException { MutableWorkspaceState state = new MutableWorkspaceState(); // always include this project's pom and jar artifacts state.putPom(project.getFile(), project.getGroupId(), project.getArtifactId(), project.getVersion()); state.putArtifact(outputDirectory, project.getGroupId(), project.getArtifactId(), // "jar" /* extension */, null/* classifier */, project.getVersion()); if (reactorDependencies != null) { // either runs from m2e or from command line with --non-recursive parameter for (MavenProject other : reactorDependencies.getUpstreamProjects(project, true)) { putProject(state, other); } } try (OutputStream os = context.processOutput(workspaceState).newOutputStream()) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); state.store(buffer); PropertiesWriter.write(buffer.toByteArray(), os); } catch (IOException e) { throw new MojoExecutionException("Could not create reactor state file " + workspaceState, e); } }