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; }
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 Result<ProjectDependencyGraph> sessionDependencyGraph( final MavenSession session ) throws CycleDetectedException, DuplicateProjectException { Result<ProjectDependencyGraph> result = null; if ( session.getProjectDependencyGraph() != null || session.getProjects() != null ) { final ProjectDependencyGraph graph = new DefaultProjectDependencyGraph( session.getAllProjects(), session.getProjects() ); result = Result.success( graph ); } return result; }
session.getProjectDependencyGraph() ); multiThreadedProjectTaskSegmentBuild( analyzer, reactorContext, session, service, taskSegment, projectBuildMap, muxer );
ReactorBuildStatus reactorBuildStatus = new ReactorBuildStatus( session.getProjectDependencyGraph() ); reactorContext = new ReactorContext( result, projectIndex, oldContextClassLoader, reactorBuildStatus,
private Stream<MavenProject> streamProjectWithDependencies(MavenProject project) { return Stream.concat( Stream.of(project), mavenSession.getProjectDependencyGraph().getUpstreamProjects(project, true).stream()); }
Supplier<Collection<MavenProject>> subProjectsInReactorOrder() { return () -> AbstractAggregatingGraphMojo.this.mavenSession.getProjectDependencyGraph().getSortedProjects(); } }
public SessionArtifactFilter(MavenSession session, boolean include) { this.projects = session.getProjectDependencyGraph().getSortedProjects(); this.include = include; }
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()))); }
/** * Returns all the session/reactor artifacts topologically sorted. * * @return */ private Set<Artifact> getSessionArtifacts() { Set<Artifact> result = new LinkedHashSet<Artifact>(); for (MavenProject p : getSession().getProjectDependencyGraph().getSortedProjects()) { result.add(p.getArtifact()); } return result; }
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; }
IncrementalModuleBuilderImpl( List<MavenProject> selectedProjects, LifecycleModuleBuilder lifecycleModuleBuilder, MavenSession session, ReactorContext reactorContext, List<TaskSegment> taskSegments ) { this.lifecycleModuleBuilder = Objects.requireNonNull( lifecycleModuleBuilder, "lifecycleModuleBuilder is not allowed to be null." ); this.mavenSession = Objects.requireNonNull( session, "session is not allowed to be null." ); this.taskSegments = Objects.requireNonNull( taskSegments, "taskSegements is not allowed to be null" ); this.reactorContext = Objects.requireNonNull( reactorContext, "reactorContext is not allowed to be null." ); ProjectDependencyGraph projectDependencyGraph = session.getProjectDependencyGraph(); List<MavenProject> intermediateResult = new LinkedList<>(); for ( MavenProject selectedProject : selectedProjects ) { intermediateResult.add( selectedProject ); // Up or downstream ? (-amd) intermediateResult.addAll( projectDependencyGraph.getDownstreamProjects( selectedProject, true ) ); // TODO: Need to think about this? -am ? // intermediateResult.addAll(projectDependencyGraph.getUpstreamProjects(selectedProject, // true)); } List<MavenProject> result = new LinkedList<>(); for ( MavenProject project : intermediateResult ) { if ( !result.contains( project ) ) { result.add( project ); } } this.projects = result; }
public static Comparator<MavenProject> create(MavenSession session) { final ProjectDependencyGraph dependencyGraph = session.getProjectDependencyGraph(); return create0(DependencyGraph.fromMaven(dependencyGraph), ImmutableMap.of(), p -> id(p)); }
if (session.getProjectDependencyGraph() == null) { logger.warn("Execution of gitflow-incremental-builder is not supported in this environment: " + "Current MavenSession does not provide a ProjectDependencyGraph. "
private void setupSortedProjects( List<MavenProject> projectList ) { ProjectDependencyGraph pdg = mock( ProjectDependencyGraph.class ); when( session.getProjectDependencyGraph() ).thenReturn( pdg ); when( pdg.getSortedProjects() ).thenReturn( projectList ); }
/** * Returns all dependency artifacts in all modules, excluding all reactor artifacts (including attached). * * @return */ private Set<Artifact> getProjectDependencies() { Set<Artifact> result = new LinkedHashSet<Artifact>(); for (MavenProject p : getSession().getProjectDependencyGraph().getSortedProjects()) { for (Dependency dependency : p.getDependencies()) { result.add(toArtifact(dependency)); } } return result; }
private void setupSortedProjects( List<MavenProject> projectList ) { ProjectDependencyGraph pdg = mock( ProjectDependencyGraph.class ); when( session.getProjectDependencyGraph() ).thenReturn( pdg ); when( pdg.getSortedProjects() ).thenReturn( projectList ); }
/** * Is this project the last project in the reactor? * * @return true if last project (including only project) */ private boolean isLastProjectInReactor() { List<MavenProject> sortedProjects = session.getProjectDependencyGraph().getSortedProjects(); MavenProject lastProject = sortedProjects.isEmpty() ? session.getCurrentProject() : sortedProjects.get( sortedProjects.size() - 1 ); if ( getLog().isDebugEnabled() ) { getLog().debug( "Current project: '" + session.getCurrentProject().getName() + "', Last project to execute based on dependency graph: '" + lastProject.getName() + "'" ); } return session.getCurrentProject().equals( lastProject ); }
SmartBuilderImpl(LifecycleModuleBuilder lifecycleModuleBuilder, MavenSession session, ReactorContext reactorContext, TaskSegment taskSegment, Set<MavenProject> projects) { this.lifecycleModuleBuilder = lifecycleModuleBuilder; this.rootSession = session; this.reactorContext = reactorContext; this.taskSegment = taskSegment; this.degreeOfConcurrency = Integer.valueOf(session.getRequest().getDegreeOfConcurrency()); final Comparator<MavenProject> projectComparator = ProjectComparator.create(session); this.reactorBuildQueue = new ReactorBuildQueue(projects, session.getProjectDependencyGraph()); this.executor = new ProjectExecutorService(degreeOfConcurrency, projectComparator); this.stats = ReactorBuildStats.create(projects); }
@Override public void execute( EnforcerRuleHelper helper ) throws EnforcerRuleException { logger = helper.getLog(); MavenSession session; try { session = (MavenSession) helper.evaluate( "${session}" ); } catch ( ExpressionEvaluationException eee ) { throw new EnforcerRuleException( "Unable to retrieve the MavenSession: ", eee ); } List<MavenProject> sortedProjects = session.getProjectDependencyGraph().getSortedProjects(); if ( sortedProjects != null && !sortedProjects.isEmpty() ) { checkReactor( sortedProjects ); checkParentsInReactor( sortedProjects ); checkMissingParentsInReactor( sortedProjects ); checkParentsPartOfTheReactor( sortedProjects ); if ( !isIgnoreModuleDependencies() ) { checkDependenciesWithinReactor( sortedProjects ); } } }