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,


Reply via email to