Author: krosenvold Date: Mon Apr 19 20:57:44 2010 New Revision: 935741 URL: http://svn.apache.org/viewvc?rev=935741&view=rev Log: o Refactoring: Moved one incorrectly placed method from BuildListCalculator to TaskSegmentCalculator
This method was creating a lot of strange internal dependencies since it was mis-placed Added: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java (with props) Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImpl.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Mon Apr 19 20:57:44 2010 @@ -62,7 +62,7 @@ import java.util.concurrent.ExecutorServ * @author Benjamin Bentmann * @author Kristian Rosenvold */ -...@component(role = LifecycleExecutor.class) +...@component( role = LifecycleExecutor.class ) public class DefaultLifecycleExecutor implements LifecycleExecutor { @@ -126,7 +126,7 @@ public class DefaultLifecycleExecutor boolean isThreaded = executionRequest.isThreadConfigurationPresent(); session.setParallel( isThreaded ); - List<TaskSegment> taskSegments = buildListCalculator.calculateTaskSegments( session ); + List<TaskSegment> taskSegments = lifecycleTaskSegmentCalculator.calculateTaskSegments( session ); ProjectBuildList projectBuilds = buildListCalculator.calculateProjectBuilds( session, taskSegments ); @@ -256,7 +256,7 @@ public class DefaultLifecycleExecutor // USED BY MAVEN HELP PLUGIN - @SuppressWarnings({"UnusedDeclaration"}) + @SuppressWarnings( { "UnusedDeclaration" } ) @Deprecated public Map<String, Lifecycle> getPhaseToLifecycleMap() { @@ -265,7 +265,7 @@ public class DefaultLifecycleExecutor // NOTE: Backward-compat with maven-help-plugin:2.1 - @SuppressWarnings({"UnusedDeclaration"}) + @SuppressWarnings( { "UnusedDeclaration" } ) MojoDescriptor getMojoDescriptor( String task, MavenSession session, MavenProject project, String invokedVia, boolean canUsePrefix, boolean isOptionalMojo ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, @@ -277,7 +277,7 @@ public class DefaultLifecycleExecutor // Used by m2eclipse - @SuppressWarnings({"UnusedDeclaration"}) + @SuppressWarnings( { "UnusedDeclaration" } ) public MavenExecutionPlan calculateExecutionPlan( MavenSession session, String... tasks ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, @@ -285,7 +285,7 @@ public class DefaultLifecycleExecutor PluginVersionResolutionException { - List<TaskSegment> taskSegments = buildListCalculator.calculateTaskSegments( session ); + List<TaskSegment> taskSegments = lifecycleTaskSegmentCalculator.calculateTaskSegments( session ); TaskSegment mergedSegment = new TaskSegment( false ); Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java Mon Apr 19 20:57:44 2010 @@ -15,18 +15,10 @@ package org.apache.maven.lifecycle.internal; import org.apache.maven.execution.MavenSession; -import org.apache.maven.lifecycle.LifecycleNotFoundException; -import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException; -import org.apache.maven.plugin.*; -import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException; -import org.apache.maven.plugin.version.PluginVersionResolutionException; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; -import org.codehaus.plexus.util.StringUtils; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -34,43 +26,9 @@ import java.util.List; * @author Kristian Rosenvold * This class is not part of any public api and can be changed or deleted without prior notice. */ -...@component(role = BuildListCalculator.class) +...@component( role = BuildListCalculator.class ) public class BuildListCalculator { - @Requirement - private LifecycleTaskSegmentCalculator lifeCycleTaskSegmentCalculator; - - @SuppressWarnings({"UnusedDeclaration"}) - public BuildListCalculator() - { - } - - public BuildListCalculator( LifecycleTaskSegmentCalculator lifeCycleTaskSegmentCalculator ) - { - this.lifeCycleTaskSegmentCalculator = lifeCycleTaskSegmentCalculator; - } - - public List<TaskSegment> calculateTaskSegments( MavenSession session ) - throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, - MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, - PluginVersionResolutionException, LifecyclePhaseNotFoundException, LifecycleNotFoundException - { - - MavenProject rootProject = session.getTopLevelProject(); - - List<String> tasks = session.getGoals(); - - if ( tasks == null || tasks.isEmpty() ) - { - if ( !StringUtils.isEmpty( rootProject.getDefaultGoal() ) ) - { - tasks = Arrays.asList( StringUtils.split( rootProject.getDefaultGoal() ) ); - } - } - - return lifeCycleTaskSegmentCalculator.calculateTaskSegments( session, tasks ); - } - public ProjectBuildList calculateProjectBuilds( MavenSession session, List<TaskSegment> taskSegments ) { List<ProjectSegment> projectBuilds = new ArrayList<ProjectSegment>(); Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java Mon Apr 19 20:57:44 2010 @@ -15,6 +15,8 @@ package org.apache.maven.lifecycle.internal; import org.apache.maven.execution.MavenSession; +import org.apache.maven.lifecycle.LifecycleNotFoundException; +import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException; import org.apache.maven.plugin.*; import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException; import org.apache.maven.plugin.version.PluginVersionResolutionException; @@ -34,10 +36,10 @@ import java.util.List; public interface LifecycleTaskSegmentCalculator { - List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks ) + public List<TaskSegment> calculateTaskSegments( MavenSession session ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, - PluginVersionResolutionException; + PluginVersionResolutionException, LifecyclePhaseNotFoundException, LifecycleNotFoundException; public boolean requiresProject( MavenSession session ); Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImpl.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImpl.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImpl.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImpl.java Mon Apr 19 20:57:44 2010 @@ -15,14 +15,23 @@ package org.apache.maven.lifecycle.internal; import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugin.*; +import org.apache.maven.lifecycle.LifecycleNotFoundException; +import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException; +import org.apache.maven.plugin.InvalidPluginDescriptorException; +import org.apache.maven.plugin.MojoNotFoundException; +import org.apache.maven.plugin.PluginDescriptorParsingException; +import org.apache.maven.plugin.PluginNotFoundException; +import org.apache.maven.plugin.PluginResolutionException; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException; import org.apache.maven.plugin.version.PluginVersionResolutionException; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; +import org.codehaus.plexus.util.StringUtils; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -36,7 +45,7 @@ import java.util.List; * NOTE: This class is not part of any public api and can be changed or deleted without prior notice. */ -...@component(role = LifecycleTaskSegmentCalculator.class) +...@component( role = LifecycleTaskSegmentCalculator.class ) public class LifecycleTaskSegmentCalculatorImpl implements LifecycleTaskSegmentCalculator { @@ -50,6 +59,27 @@ public class LifecycleTaskSegmentCalcula { } + public List<TaskSegment> calculateTaskSegments( MavenSession session ) + throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, + MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, + PluginVersionResolutionException, LifecyclePhaseNotFoundException, LifecycleNotFoundException + { + + MavenProject rootProject = session.getTopLevelProject(); + + List<String> tasks = session.getGoals(); + + if ( tasks == null || tasks.isEmpty() ) + { + if ( !StringUtils.isEmpty( rootProject.getDefaultGoal() ) ) + { + tasks = Arrays.asList( StringUtils.split( rootProject.getDefaultGoal() ) ); + } + } + + return calculateTaskSegments( session, tasks ); + } + public List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java Mon Apr 19 20:57:44 2010 @@ -59,7 +59,7 @@ import java.util.concurrent.Future; * <p/> * NOTE: This class is not part of any public api and can be changed or deleted without prior notice. */ -...@component(role = LifecycleWeaveBuilder.class) +...@component( role = LifecycleWeaveBuilder.class ) public class LifecycleWeaveBuilder { @@ -75,16 +75,16 @@ public class LifecycleWeaveBuilder @Requirement private ExecutionEventCatapult eventCatapult; - private Map<MavenProject, MavenExecutionPlan> executionPlans = new HashMap<MavenProject, MavenExecutionPlan>( ); + private Map<MavenProject, MavenExecutionPlan> executionPlans = new HashMap<MavenProject, MavenExecutionPlan>(); - @SuppressWarnings({"UnusedDeclaration"}) + @SuppressWarnings( { "UnusedDeclaration" } ) public LifecycleWeaveBuilder() { } - public LifecycleWeaveBuilder(MojoExecutor mojoExecutor, BuilderCommon builderCommon, Logger logger, - ExecutionEventCatapult eventCatapult) + public LifecycleWeaveBuilder( MojoExecutor mojoExecutor, BuilderCommon builderCommon, Logger logger, + ExecutionEventCatapult eventCatapult ) { this.mojoExecutor = mojoExecutor; this.builderCommon = builderCommon; @@ -105,14 +105,15 @@ public class LifecycleWeaveBuilder for ( TaskSegment taskSegment : taskSegments ) { ProjectBuildList segmentChunks = projectBuilds.getByTaskSegment( taskSegment ); - ThreadOutputMuxer muxer = null; // new ThreadOutputMuxer( segmentChunks, System.out ); Set<String> projectArtifacts = new HashSet<String>(); Set<Artifact> projectArtifactsA = new HashSet<Artifact>(); - for (ProjectSegment segmentChunk : segmentChunks) { + for ( ProjectSegment segmentChunk : segmentChunks ) + { Artifact artifact = segmentChunk.getProject().getArtifact(); - if (artifact != null) { - projectArtifacts.add( ArtifactUtils.key(artifact)); - projectArtifactsA.add( artifact); + if ( artifact != null ) + { + projectArtifacts.add( ArtifactUtils.key( artifact ) ); + projectArtifactsA.add( artifact ); } } for ( ProjectSegment projectBuild : segmentChunks ) @@ -122,24 +123,25 @@ public class LifecycleWeaveBuilder MavenExecutionPlan executionPlan = builderCommon.resolveBuildPlan( projectBuild.getSession(), projectBuild.getProject(), projectBuild.getTaskSegment(), projectArtifactsA ); - for (Artifact dependency : projectBuild.getProject().getDependencyArtifacts()) { - String s = ArtifactUtils.key(dependency); - if ( projectArtifacts.contains(s)){ - dependency.setFile( null); - dependency.setResolved( false); - dependency.setRepository( null); + for ( Artifact dependency : projectBuild.getProject().getDependencyArtifacts() ) + { + String s = ArtifactUtils.key( dependency ); + if ( projectArtifacts.contains( s ) ) + { + dependency.setFile( null ); + dependency.setResolved( false ); + dependency.setRepository( null ); } } - + executionPlans.put( projectBuild.getProject(), executionPlan ); DependencyContext dependencyContext = new DependencyContext( executionPlan, projectBuild.getTaskSegment().isAggregating() ); final Callable<ProjectSegment> projectBuilder = createCallableForBuildingOneFullModule( buildContext, session, reactorBuildStatus, - executionPlan, projectBuild, muxer, - dependencyContext, concurrentBuildLogger, - projectBuilds ); + executionPlan, projectBuild, dependencyContext, + concurrentBuildLogger ); futures.add( service.submit( projectBuilder ) ); } @@ -169,10 +171,8 @@ public class LifecycleWeaveBuilder final ReactorBuildStatus reactorBuildStatus, final MavenExecutionPlan executionPlan, final ProjectSegment projectBuild, - final ThreadOutputMuxer muxer, final DependencyContext dependencyContext, - final ConcurrentBuildLogger concurrentBuildLogger, - final ProjectBuildList projectBuilds ) + final ConcurrentBuildLogger concurrentBuildLogger ) { return new Callable<ProjectSegment>() { @@ -195,7 +195,7 @@ public class LifecycleWeaveBuilder try { - while (current != null && !reactorBuildStatus.isHaltedOrBlacklisted( projectBuild.getProject() )) + while ( current != null && !reactorBuildStatus.isHaltedOrBlacklisted( projectBuild.getProject() ) ) { PhaseRecorder phaseRecorder = new PhaseRecorder( projectBuild.getProject() ); @@ -203,7 +203,8 @@ public class LifecycleWeaveBuilder concurrentBuildLogger.createBuildLogItem( projectBuild.getProject(), current ); final Schedule schedule = current.getSchedule(); - buildExecutionPlanItem(current, phaseRecorder, schedule, reactorContext, projectBuild, dependencyContext); + buildExecutionPlanItem( current, phaseRecorder, schedule, reactorContext, projectBuild, + dependencyContext ); current.setComplete(); builtLogItem.setComplete(); @@ -215,16 +216,17 @@ public class LifecycleWeaveBuilder final Schedule scheduleOfNext = nextPlanItem.getSchedule(); if ( scheduleOfNext == null || !scheduleOfNext.isParallel() ) { - waitForAppropriateUpstreamExecutionsToFinish(builtLogItem, nextPlanItem, projectBuild); + waitForAppropriateUpstreamExecutionsToFinish( builtLogItem, nextPlanItem, + projectBuild ); } - reResolveReactorDependencies(nextPlanItem, projectBuild); + reResolveReactorDependencies( nextPlanItem, projectBuild ); } current = nextPlanItem; } final long wallClockTime = System.currentTimeMillis() - buildStartTime; final BuildSuccess summary = - new BuildSuccess( projectBuild.getProject(), wallClockTime ); // - waitingTime + new BuildSuccess( projectBuild.getProject(), wallClockTime ); // - waitingTime reactorContext.getResult().addBuildSummary( summary ); eventCatapult.fire( ExecutionEvent.Type.ProjectSucceeded, projectBuild.getSession(), null ); } @@ -247,18 +249,23 @@ public class LifecycleWeaveBuilder }; } - private void reResolveReactorDependencies(ExecutionPlanItem nextPlanItem, ProjectSegment projectBuild) { + private void reResolveReactorDependencies( ExecutionPlanItem nextPlanItem, ProjectSegment projectBuild ) + { if ( requiresReResolutionOfUpstreamReactorArtifacts( nextPlanItem ) ) { - reresolveUpstreamProjectArtifacts(projectBuild); + reresolveUpstreamProjectArtifacts( projectBuild ); } - else if (requiresReResolutionOfUpstreamTestScopedReactorArtifacts( nextPlanItem)) + else if ( requiresReResolutionOfUpstreamTestScopedReactorArtifacts( nextPlanItem ) ) { - reresolveUpstreamTestScopedArtifacts( projectBuild); + reresolveUpstreamTestScopedArtifacts( projectBuild ); } } - private void waitForAppropriateUpstreamExecutionsToFinish(BuildLogItem builtLogItem, ExecutionPlanItem nextPlanItem, ProjectSegment projectBuild) throws InterruptedException { + private void waitForAppropriateUpstreamExecutionsToFinish( BuildLogItem builtLogItem, + ExecutionPlanItem nextPlanItem, + ProjectSegment projectBuild ) + throws InterruptedException + { for ( MavenProject upstreamProject : projectBuild.getImmediateUpstreamProjects() ) { final MavenExecutionPlan upstreamPlan = executionPlans.get( upstreamProject ); @@ -286,58 +293,69 @@ public class LifecycleWeaveBuilder } } - private void reresolveUpstreamProjectArtifacts(ProjectSegment projectBuild) { - for ( MavenProject upstreamProject : projectBuild.getTransitiveUpstreamProjects() ){ + private void reresolveUpstreamProjectArtifacts( ProjectSegment projectBuild ) + { + for ( MavenProject upstreamProject : projectBuild.getTransitiveUpstreamProjects() ) + { Artifact upStreamArtifact = upstreamProject.getArtifact(); - Artifact dependencyArtifact = findDependency(projectBuild.getProject(), upStreamArtifact); - if (dependencyArtifact != null){ - dependencyArtifact.setFile( upStreamArtifact.getFile()); + Artifact dependencyArtifact = findDependency( projectBuild.getProject(), upStreamArtifact ); + if ( dependencyArtifact != null ) + { + dependencyArtifact.setFile( upStreamArtifact.getFile() ); dependencyArtifact.setResolved( true ); - dependencyArtifact.setRepository( upStreamArtifact.getRepository()); + dependencyArtifact.setRepository( upStreamArtifact.getRepository() ); } } } - private void reresolveUpstreamTestScopedArtifacts(ProjectSegment projectBuild) { - for ( MavenProject upstreamProject : projectBuild.getTransitiveUpstreamProjects() ){ - Artifact upStreamArtifact = findTestScopedArtifact(upstreamProject); - Artifact dependencyArtifact = findDependency(projectBuild.getProject(), upStreamArtifact); - if (dependencyArtifact != null){ - dependencyArtifact.setFile( upStreamArtifact.getFile()); - dependencyArtifact.setResolved( upStreamArtifact.isResolved()); - dependencyArtifact.setRepository( upStreamArtifact.getRepository()); + private void reresolveUpstreamTestScopedArtifacts( ProjectSegment projectBuild ) + { + for ( MavenProject upstreamProject : projectBuild.getTransitiveUpstreamProjects() ) + { + Artifact upStreamArtifact = findTestScopedArtifact( upstreamProject ); + Artifact dependencyArtifact = findDependency( projectBuild.getProject(), upStreamArtifact ); + if ( dependencyArtifact != null ) + { + dependencyArtifact.setFile( upStreamArtifact.getFile() ); + dependencyArtifact.setResolved( upStreamArtifact.isResolved() ); + dependencyArtifact.setRepository( upStreamArtifact.getRepository() ); } } } - private Artifact findTestScopedArtifact(MavenProject upstreamProject) { - if ( upstreamProject == null){ + private Artifact findTestScopedArtifact( MavenProject upstreamProject ) + { + if ( upstreamProject == null ) + { return null; } - + List<Artifact> artifactList = upstreamProject.getAttachedArtifacts(); - for (Artifact artifact : artifactList) { - if (Artifact.SCOPE_TEST.equals( artifact.getScope())){ + for ( Artifact artifact : artifactList ) + { + if ( Artifact.SCOPE_TEST.equals( artifact.getScope() ) ) + { return artifact; } } return null; } - private static Artifact findDependency(MavenProject project, Artifact upStreamArtifact) { - if (upStreamArtifact == null){ + private static Artifact findDependency( MavenProject project, Artifact upStreamArtifact ) + { + if ( upStreamArtifact == null ) + { return null; } - - String key = ArtifactUtils.key( upStreamArtifact.getGroupId(), - upStreamArtifact.getArtifactId(), + + String key = ArtifactUtils.key( upStreamArtifact.getGroupId(), upStreamArtifact.getArtifactId(), upStreamArtifact.getVersion() ); final Set<Artifact> deps = project.getDependencyArtifacts(); for ( Artifact dep : deps ) { - String depKey = ArtifactUtils.key(dep.getGroupId(), dep.getArtifactId(), dep.getVersion()); + String depKey = ArtifactUtils.key( dep.getGroupId(), dep.getArtifactId(), dep.getVersion() ); if ( key.equals( depKey ) ) { return dep; @@ -350,28 +368,31 @@ public class LifecycleWeaveBuilder private boolean requiresReResolutionOfUpstreamReactorArtifacts( ExecutionPlanItem nextExecutionPlanItem ) { final String phase = nextExecutionPlanItem.getLifecyclePhase(); - return "package".equals(phase) || "install".equals( phase ) || "compile".equals( phase ); + return "package".equals( phase ) || "install".equals( phase ) || "compile".equals( phase ); } private boolean requiresReResolutionOfUpstreamTestScopedReactorArtifacts( ExecutionPlanItem nextExecutionPlanItem ) { final String phase = nextExecutionPlanItem.getLifecyclePhase(); - return "package".equals(phase) || "install".equals( phase ) || "compile".equals( phase ) || "test-compile".equals( phase ); + return "package".equals( phase ) || "install".equals( phase ) || "compile".equals( phase ) || + "test-compile".equals( phase ); } - private void buildExecutionPlanItem(ExecutionPlanItem current, PhaseRecorder phaseRecorder, Schedule schedule, ReactorContext reactorContext, ProjectSegment projectBuild, DependencyContext dependencyContext) throws LifecycleExecutionException { + private void buildExecutionPlanItem( ExecutionPlanItem current, PhaseRecorder phaseRecorder, Schedule schedule, + ReactorContext reactorContext, ProjectSegment projectBuild, + DependencyContext dependencyContext ) + throws LifecycleExecutionException + { if ( schedule != null && schedule.isMojoSynchronized() ) { synchronized ( current.getPlugin() ) { - buildExecutionPlanItem( reactorContext, current, projectBuild, dependencyContext, - phaseRecorder ); + buildExecutionPlanItem( reactorContext, current, projectBuild, dependencyContext, phaseRecorder ); } } else { - buildExecutionPlanItem( reactorContext, current, projectBuild, dependencyContext, - phaseRecorder ); + buildExecutionPlanItem( reactorContext, current, projectBuild, dependencyContext, phaseRecorder ); } } Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java (original) +++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java Mon Apr 19 20:57:44 2010 @@ -305,9 +305,6 @@ public class LifecycleExecutorTest System.out.println( dom ); } - // Todo: This method is kind of an oddity. It is only called from the LifecycleExecutorTest, hence it should - // really not exist, or at least be moved into the test class. - MavenExecutionPlan calculateExecutionPlan( MavenSession session, String... tasks ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java (original) +++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java Mon Apr 19 20:57:44 2010 @@ -29,9 +29,10 @@ public class BuildListCalculatorTest public void testCalculateProjectBuilds() throws Exception { - BuildListCalculator buildListCalculator = createBuildListCalculator(); + LifecycleTaskSegmentCalculator lifecycleTaskSegmentCalculator = getTaskSegmentCalculator(); + BuildListCalculator buildListCalculator = new BuildListCalculator(); final MavenSession session = ProjectDependencyGraphStub.getMavenSession(); - List<TaskSegment> taskSegments = buildListCalculator.calculateTaskSegments( session ); + List<TaskSegment> taskSegments = lifecycleTaskSegmentCalculator.calculateTaskSegments( session ); final ProjectBuildList buildList = buildListCalculator.calculateProjectBuilds( session, taskSegments ); final ProjectBuildList segments = buildList.getByTaskSegment( taskSegments.get( 0 ) ); assertEquals( "Stub data contains 3 segments", 3, taskSegments.size() ); @@ -40,10 +41,9 @@ public class BuildListCalculatorTest assertNotNull( build ); } - public static BuildListCalculator createBuildListCalculator() + private static LifecycleTaskSegmentCalculator getTaskSegmentCalculator() { - LifecycleTaskSegmentCalculator lifecycleTaskSegmentCalculator = new LifecycleTaskSegmentCalculatorStub(); - return new BuildListCalculator( lifecycleTaskSegmentCalculator ); + return new LifecycleTaskSegmentCalculatorStub(); } } Added: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java?rev=935741&view=auto ============================================================================== --- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java (added) +++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java Mon Apr 19 20:57:44 2010 @@ -0,0 +1,38 @@ +package org.apache.maven.lifecycle.internal; + +import junit.framework.TestCase; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.lifecycle.internal.stub.LifecycleTaskSegmentCalculatorStub; +import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub; + +import java.util.List; + +/** + * @author <a href="mailto:krist...@zenior.no">Kristian Rosenvold</a> + */ +public class LifecycleTaskSegmentCalculatorImplTest + extends TestCase +{ + public void testCalculateProjectBuilds() + throws Exception + { + LifecycleTaskSegmentCalculator lifecycleTaskSegmentCalculator = getTaskSegmentCalculator(); + BuildListCalculator buildListCalculator = new BuildListCalculator(); + final MavenSession session = ProjectDependencyGraphStub.getMavenSession(); + List<TaskSegment> taskSegments = lifecycleTaskSegmentCalculator.calculateTaskSegments( session ); + + final ProjectBuildList buildList = buildListCalculator.calculateProjectBuilds( session, taskSegments ); + final ProjectBuildList segments = buildList.getByTaskSegment( taskSegments.get( 0 ) ); + assertEquals( "Stub data contains 3 segments", 3, taskSegments.size() ); + assertEquals( "Stub data contains 6 items", 6, segments.size() ); + final ProjectSegment build = segments.get( 0 ); + assertNotNull( build ); + } + + private static LifecycleTaskSegmentCalculator getTaskSegmentCalculator() + { + return new LifecycleTaskSegmentCalculatorStub(); + } + + +} Propchange: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java (original) +++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java Mon Apr 19 20:57:44 2010 @@ -20,13 +20,7 @@ import org.apache.maven.execution.MavenE import org.apache.maven.execution.MavenSession; import org.apache.maven.lifecycle.LifecycleNotFoundException; import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException; -import org.apache.maven.lifecycle.internal.stub.CompletionServiceStub; -import org.apache.maven.lifecycle.internal.stub.ExecutionEventCatapultStub; -import org.apache.maven.lifecycle.internal.stub.LifecycleExecutionPlanCalculatorStub; -import org.apache.maven.lifecycle.internal.stub.LoggerStub; -import org.apache.maven.lifecycle.internal.stub.MojoExecutorStub; -import org.apache.maven.lifecycle.internal.stub.ProjectDependenciesResolverStub; -import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub; +import org.apache.maven.lifecycle.internal.stub.*; import org.apache.maven.plugin.InvalidPluginDescriptorException; import org.apache.maven.plugin.MojoNotFoundException; import org.apache.maven.plugin.PluginDescriptorParsingException; @@ -85,9 +79,9 @@ public class LifecycleWeaveBuilderTest final ClassLoader loader = Thread.currentThread().getContextClassLoader(); try { - BuildListCalculator buildListCalculator = BuildListCalculatorTest.createBuildListCalculator(); + BuildListCalculator buildListCalculator = new BuildListCalculator(); final MavenSession session = ProjectDependencyGraphStub.getMavenSession(); - List<TaskSegment> taskSegments = buildListCalculator.calculateTaskSegments( session ); + List<TaskSegment> taskSegments = getTaskSegmentCalculator().calculateTaskSegments( session ); ProjectBuildList projectBuildList = buildListCalculator.calculateProjectBuilds( session, taskSegments ); final MojoExecutorStub mojoExecutorStub = new MojoExecutorStub(); @@ -109,6 +103,11 @@ public class LifecycleWeaveBuilderTest } + private static LifecycleTaskSegmentCalculator getTaskSegmentCalculator() + { + return new LifecycleTaskSegmentCalculatorStub(); + } + private ReactorContext createBuildContext( MavenSession session ) { MavenExecutionResult mavenExecutionResult = new DefaultMavenExecutionResult(); @@ -120,8 +119,6 @@ public class LifecycleWeaveBuilderTest { final BuilderCommon builderCommon = getBuilderCommon(); final LoggerStub loggerStub = new LoggerStub(); - final LifecycleDependencyResolver lifecycleDependencyResolver = - new LifecycleDependencyResolver( new ProjectDependenciesResolverStub(), loggerStub ); return new LifecycleWeaveBuilder( mojoExecutor, builderCommon, loggerStub, new ExecutionEventCatapultStub() ); } Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java?rev=935741&r1=935740&r2=935741&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java (original) +++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java Mon Apr 19 20:57:44 2010 @@ -18,7 +18,7 @@ package org.apache.maven.lifecycle.inter import org.apache.maven.execution.MavenSession; import org.apache.maven.lifecycle.internal.GoalTask; import org.apache.maven.lifecycle.internal.LifecycleTask; -import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculator; +import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculatorImpl; import org.apache.maven.lifecycle.internal.TaskSegment; import org.apache.maven.plugin.InvalidPluginDescriptorException; import org.apache.maven.plugin.MojoNotFoundException; @@ -36,7 +36,7 @@ import java.util.List; */ public class LifecycleTaskSegmentCalculatorStub - implements LifecycleTaskSegmentCalculator + extends LifecycleTaskSegmentCalculatorImpl { public static final String clean = "clean"; @@ -44,6 +44,7 @@ public class LifecycleTaskSegmentCalcula public static final String install = "install"; + public List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks ) throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException,