You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/09/11 22:19:40 UTC

svn commit: r996206 - in /maven/maven-3/trunk: maven-compat/src/test/java/org/apache/maven/project/ maven-core/src/main/java/org/apache/maven/lifecycle/ maven-core/src/main/java/org/apache/maven/lifecycle/internal/ maven-core/src/test/java/org/apache/m...

Author: bentmann
Date: Sat Sep 11 20:19:40 2010
New Revision: 996206

URL: http://svn.apache.org/viewvc?rev=996206&view=rev
Log:
[MNG-4795] [regression] Dependencies in forked reactor projects are not resolved when aggregator bound to lifecycle forks

Modified:
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
    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/MavenExecutionPlan.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.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/BuilderCommonTest.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/LifecycleExecutionPlanCalculatorStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java

Modified: maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java (original)
+++ maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java Sat Sep 11 20:19:40 2010
@@ -42,7 +42,7 @@ public class EmptyLifecycleExecutor
 
     public MavenExecutionPlan calculateExecutionPlan( MavenSession session, String... tasks )
     {
-        return new MavenExecutionPlan(null, null, null, new DefaultLifecycles() );
+        return new MavenExecutionPlan( null, new DefaultLifecycles() );
     }
 
     public void execute( MavenSession session )

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=996206&r1=996205&r2=996206&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 Sat Sep 11 20:19:40 2010
@@ -20,9 +20,7 @@ package org.apache.maven.lifecycle;
  */
 
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.lifecycle.internal.DependencyContext;
 import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
-import org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator;
 import org.apache.maven.lifecycle.internal.LifecycleStarter;
 import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculator;
 import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
@@ -44,11 +42,9 @@ import org.apache.maven.project.MavenPro
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.TreeSet;
 
 /**
  * A facade that provides lifecycle services to components outside maven core.
@@ -166,20 +162,7 @@ public class DefaultLifecycleExecutor
     public List<MavenProject> executeForkedExecutions( MojoExecution mojoExecution, MavenSession session )
         throws LifecycleExecutionException
     {
-        Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
-        Set<String> requiredDependencyCollectionScopes = new TreeSet<String>();
-                                             // Ok, so this method could probably have a better location.
-        DefaultLifecycleExecutionPlanCalculator.collectDependencyRequirements( requiredDependencyResolutionScopes,
-                                                                            requiredDependencyCollectionScopes,
-                                                                            mojoExecution );
-
-        final DependencyContext context =
-            new DependencyContext( requiredDependencyCollectionScopes, requiredDependencyResolutionScopes,
-                                   mojoExecution.getMojoDescriptor().isAggregator() );
-        mojoExecutor.executeForkedExecutions( mojoExecution, session, new ProjectIndex( session.getProjects() ),
-                                              context );
-        return Collections.emptyList();
+        return mojoExecutor.executeForkedExecutions( mojoExecution, session, new ProjectIndex( session.getProjects() ) );
     }
 
-
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java Sat Sep 11 20:19:40 2010
@@ -54,16 +54,6 @@ public class MavenExecutionPlan
 
      */
 
-    /**
-     * For project dependency resolution, the scopes of resolution required if any.
-     */
-    private final Set<String> requiredDependencyResolutionScopes;
-
-    /**
-     * For project dependency collection, the scopes of collection required if any.
-     */
-    private final Set<String> requiredDependencyCollectionScopes;
-
     private final List<ExecutionPlanItem> planItem;
 
     private final Map<String, ExecutionPlanItem> lastMojoExecutionForAllPhases;
@@ -71,13 +61,10 @@ public class MavenExecutionPlan
 
     final List<String> phasesInExecutionPlan;
 
-    public MavenExecutionPlan( Set<String> requiredDependencyResolutionScopes,
-                               Set<String> requiredDependencyCollectionScopes, List<ExecutionPlanItem> planItem,
-                               DefaultLifecycles defaultLifecycles )
+    public MavenExecutionPlan( List<ExecutionPlanItem> planItem, DefaultLifecycles defaultLifecycles )
     {
-        this.requiredDependencyResolutionScopes = requiredDependencyResolutionScopes;
-        this.requiredDependencyCollectionScopes = requiredDependencyCollectionScopes;
         this.planItem = planItem;
+
         lastMojoExecutionForAllPhases = new LinkedHashMap<String, ExecutionPlanItem>();
 
         LinkedHashSet<String> totalPhaseSet = new LinkedHashSet<String>();
@@ -115,7 +102,6 @@ public class MavenExecutionPlan
         }
     }
 
-
     public Iterator<ExecutionPlanItem> iterator()
     {
         return getExecutionPlanItems().iterator();
@@ -177,16 +163,6 @@ public class MavenExecutionPlan
         return phasesInExecutionPlan.contains( phase );
     }
 
-    public Set<String> getRequiredResolutionScopes()
-    {
-        return requiredDependencyResolutionScopes;
-    }
-
-    public Set<String> getRequiredCollectionScopes()
-    {
-        return requiredDependencyCollectionScopes;
-    }
-
     public List<MojoExecution> getMojoExecutions()
     {
         List<MojoExecution> result = new ArrayList<MojoExecution>();

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java Sat Sep 11 20:19:40 2010
@@ -63,28 +63,22 @@ public class BuilderCommon
     private LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator;
 
     @Requirement
-    private LifecycleDependencyResolver lifecycleDependencyResolver;
-
-    @Requirement
     private ExecutionEventCatapult eventCatapult;
 
     @Requirement
     private Logger logger;
 
 
-
     @SuppressWarnings( { "UnusedDeclaration" } )
     public BuilderCommon()
     {
     }
 
     public BuilderCommon( LifecycleDebugLogger lifecycleDebugLogger,
-                          LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator,
-                          LifecycleDependencyResolver lifecycleDependencyResolver, Logger logger )
+                          LifecycleExecutionPlanCalculator lifeCycleExecutionPlanCalculator, Logger logger )
     {
         this.lifecycleDebugLogger = lifecycleDebugLogger;
         this.lifeCycleExecutionPlanCalculator = lifeCycleExecutionPlanCalculator;
-        this.lifecycleDependencyResolver = lifecycleDependencyResolver;
         this.logger = logger;
     }
 
@@ -97,6 +91,7 @@ public class BuilderCommon
     {
         MavenExecutionPlan executionPlan =
             lifeCycleExecutionPlanCalculator.calculateExecutionPlan( session, project, taskSegment.getTasks() );
+
         lifecycleDebugLogger.debugProjectPlan( project, executionPlan );
 
         if ( session.getRequest().isThreadConfigurationPresent() )
@@ -122,17 +117,9 @@ public class BuilderCommon
             }
         }
 
-        // TODO: once we have calculated the build plan then we should accurately be able to download
-        // the project dependencies. Having it happen in the plugin manager is a tangled mess. We can optimize
-        // this later by looking at the build plan. Would be better to just batch download everything required
-        // by the reactor.
-
-        lifecycleDependencyResolver.resolveDependencies( taskSegment.isAggregating(), project, session, executionPlan,
-                                                         projectArtifacts );
         return executionPlan;
     }
 
-
     public void handleBuildError( final ReactorContext buildContext, final MavenSession rootSession,
                                   final MavenProject mavenProject, Exception e, final long buildStartTime )
     {

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java Sat Sep 11 20:19:40 2010
@@ -109,28 +109,18 @@ public class DefaultLifecycleExecutionPl
         PluginDescriptorParsingException, MojoNotFoundException, InvalidPluginDescriptorException,
         NoPluginFoundForPrefixException, LifecycleNotFoundException, PluginVersionResolutionException
     {
-        Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
-        Set<String> requiredDependencyCollectionScopes = new TreeSet<String>();
-
         lifecyclePluginResolver.resolveMissingPluginVersions( project, session );
 
         final List<MojoExecution> executions = calculateMojoExecutions( session, project, tasks );
 
-        setupMojoExections( session, project, requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
-                            executions );
+        setupMojoExections( session, project, executions );
 
         final List<ExecutionPlanItem> planItem = defaultSchedules.createExecutionPlanItem( project, executions );
 
-        return new MavenExecutionPlan( requiredDependencyResolutionScopes, requiredDependencyCollectionScopes, planItem,
-                                       defaultLifeCycles );
-
-
+        return new MavenExecutionPlan( planItem, defaultLifeCycles );
     }
 
-    private void setupMojoExections( MavenSession session, MavenProject project,
-                                     Set<String> requiredDependencyResolutionScopes,
-                                     Set<String> requiredDependencyCollectionScopes,
-                                     List<MojoExecution> mojoExecutions )
+    private void setupMojoExections( MavenSession session, MavenProject project, List<MojoExecution> mojoExecutions )
         throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
         MojoNotFoundException, InvalidPluginDescriptorException, NoPluginFoundForPrefixException,
         LifecyclePhaseNotFoundException, LifecycleNotFoundException, PluginVersionResolutionException
@@ -155,9 +145,6 @@ public class DefaultLifecycleExecutionPl
             finalizeMojoConfiguration( mojoExecution );
 
             calculateForkedExecutions( mojoExecution, session, project, new HashSet<MojoDescriptor>() );
-
-            collectDependencyRequirements( requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
-                                           mojoExecution );
         }
     }
 
@@ -202,37 +189,6 @@ public class DefaultLifecycleExecutionPl
         return mojoExecutions;
     }
 
-    public static void collectDependencyRequirements( Collection<String> requiredDependencyResolutionScopes,
-                                                       Collection<String> requiredDependencyCollectionScopes,
-                                                       MojoExecution mojoExecution )
-    {
-        MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
-
-        String requiredDependencyResolutionScope = mojoDescriptor.getDependencyResolutionRequired();
-
-        if ( StringUtils.isNotEmpty( requiredDependencyResolutionScope ) )
-        {
-            requiredDependencyResolutionScopes.add( requiredDependencyResolutionScope );
-        }
-
-        String requiredDependencyCollectionScope = mojoDescriptor.getDependencyCollectionRequired();
-
-        if ( StringUtils.isNotEmpty( requiredDependencyCollectionScope ) )
-        {
-            requiredDependencyCollectionScopes.add( requiredDependencyCollectionScope );
-        }
-
-        for ( List<MojoExecution> forkedExecutions : mojoExecution.getForkedExecutions().values() )
-        {
-            for ( MojoExecution forkedExecution : forkedExecutions )
-            {
-                collectDependencyRequirements( requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
-                                               forkedExecution );
-            }
-        }
-    }
-
-
     private Map<String, List<MojoExecution>> calculateLifecycleMappings( MavenSession session, MavenProject project,
                                                                          String lifecyclePhase )
         throws LifecyclePhaseNotFoundException, PluginNotFoundException, PluginResolutionException,

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java Sat Sep 11 20:19:40 2010
@@ -19,14 +19,15 @@ package org.apache.maven.lifecycle.inter
  * under the License.
  */
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.lifecycle.MavenExecutionPlan;
 import org.apache.maven.project.MavenProject;
 
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.TreeSet;
 
 /**
- * Context of dependency artifacts for the entire build.
+ * Context of dependency artifacts for a particular project.
  * 
  * @since 3.0
  * @author Benjamin Bentmann
@@ -38,84 +39,81 @@ import java.util.Collection;
 public class DependencyContext
 {
 
-    private final Collection<String> scopesToCollect;
+    private static final Collection<?> UNRESOLVED = Arrays.asList();
 
-    private final Collection<String> scopesToResolve;
+    private final MavenProject project;
 
-    private final boolean aggregating;
+    private final Collection<String> scopesToCollectForCurrentProject;
 
-    private volatile MavenProject lastProject;
+    private final Collection<String> scopesToResolveForCurrentProject;
 
-    private volatile Collection<?> lastDependencyArtifacts;
+    private final Collection<String> scopesToCollectForAggregatedProjects;
 
-    private volatile int lastDependencyArtifactCount;
+    private final Collection<String> scopesToResolveForAggregatedProjects;
 
-    public DependencyContext( Collection<String> scopesToCollect, Collection<String> scopesToResolve,
-                              boolean aggregating )
-    {
-        this.scopesToCollect = scopesToCollect;
-        this.scopesToResolve = scopesToResolve;
-        this.aggregating = aggregating;
-    }
+    private volatile Collection<?> lastDependencyArtifacts = UNRESOLVED;
 
-    public DependencyContext( MavenExecutionPlan executionPlan, boolean aggregating )
-    {
-        this( executionPlan.getRequiredCollectionScopes(), executionPlan.getRequiredResolutionScopes(), aggregating );
-    }
+    private volatile int lastDependencyArtifactCount = -1;
 
-    public void setLastDependencyArtifacts( Collection<?> lastDependencyArtifacts )
+    public DependencyContext( MavenProject project, Collection<String> scopesToCollect,
+                              Collection<String> scopesToResolve )
     {
-        this.lastDependencyArtifacts = lastDependencyArtifacts;
-        lastDependencyArtifactCount = ( lastDependencyArtifacts != null ) ? lastDependencyArtifacts.size() : 0;
+        this.project = project;
+        scopesToCollectForCurrentProject = scopesToCollect;
+        scopesToResolveForCurrentProject = scopesToResolve;
+        scopesToCollectForAggregatedProjects = Collections.synchronizedSet( new TreeSet<String>() );
+        scopesToResolveForAggregatedProjects = Collections.synchronizedSet( new TreeSet<String>() );
     }
 
-    public MavenProject getLastProject()
+    public MavenProject getProject()
     {
-        return lastProject;
+        return project;
     }
 
-    public void setLastProject( MavenProject lastProject )
+    public Collection<String> getScopesToCollectForCurrentProject()
     {
-        this.lastProject = lastProject;
+        return scopesToCollectForCurrentProject;
     }
 
-    public Collection<String> getScopesToCollect()
+    public Collection<String> getScopesToResolveForCurrentProject()
     {
-        return scopesToCollect;
+        return scopesToResolveForCurrentProject;
     }
 
-    public Collection<String> getScopesToResolve()
+    public Collection<String> getScopesToCollectForAggregatedProjects()
     {
-        return scopesToResolve;
+        return scopesToCollectForAggregatedProjects;
     }
 
-    public boolean isAggregating()
+    public Collection<String> getScopesToResolveForAggregatedProjects()
     {
-        return aggregating;
+        return scopesToResolveForAggregatedProjects;
     }
 
-    public DependencyContext clone()
+    public boolean isResolutionRequiredForCurrentProject()
     {
-        return new DependencyContext( scopesToCollect, scopesToResolve, aggregating );
+        if ( lastDependencyArtifacts != project.getDependencyArtifacts()
+            || ( lastDependencyArtifacts != null && lastDependencyArtifactCount != lastDependencyArtifacts.size() ) )
+        {
+            return true;
+
+        }
+        return false;
     }
 
-    public boolean isSameProject( MavenSession session )
+    public boolean isResolutionRequiredForAggregatedProjects( Collection<String> scopesToCollect,
+                                                              Collection<String> scopesToResolve )
     {
-        return ( lastProject == session.getCurrentProject() );
+        boolean required =
+            scopesToCollectForAggregatedProjects.addAll( scopesToCollect )
+                || scopesToResolveForAggregatedProjects.addAll( scopesToResolve );
+        return required;
     }
 
-    public boolean isSameButUpdatedProject( MavenSession session )
+    public void synchronizeWithProjectState()
     {
-        if ( isSameProject( session ) )
-        {
-            if ( lastDependencyArtifacts != lastProject.getDependencyArtifacts()
-                || ( lastDependencyArtifacts != null && lastDependencyArtifactCount != lastDependencyArtifacts.size() ) )
-            {
-                return true;
-
-            }
-        }
-        return false;
+        lastDependencyArtifacts = project.getDependencyArtifacts();
+        lastDependencyArtifactCount = ( lastDependencyArtifacts != null ) ? lastDependencyArtifacts.size() : 0;
     }
 
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java Sat Sep 11 20:19:40 2010
@@ -23,14 +23,18 @@ import org.apache.maven.execution.MavenS
 import org.apache.maven.execution.ProjectDependencyGraph;
 import org.apache.maven.lifecycle.MavenExecutionPlan;
 import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 /**
  * Logs debug output from the various lifecycle phases.
@@ -76,6 +80,7 @@ public class LifecycleDebugLogger
         {
             return;
         }
+
         logger.debug( "=== REACTOR BUILD PLAN ================================================" );
 
         for ( Iterator<ProjectSegment> it = projectBuilds.iterator(); it.hasNext(); )
@@ -98,10 +103,15 @@ public class LifecycleDebugLogger
 
     public void debugProjectPlan( MavenProject currentProject, MavenExecutionPlan executionPlan )
     {
+        if ( !logger.isDebugEnabled() )
+        {
+            return;
+        }
+
         logger.debug( "=== PROJECT BUILD PLAN ================================================" );
         logger.debug( "Project:       " + BuilderCommon.getKey( currentProject ) );
-        logger.debug( "Dependencies (collect): " + executionPlan.getRequiredCollectionScopes() );
-        logger.debug( "Dependencies (resolve): " + executionPlan.getRequiredResolutionScopes() );
+
+        debugDependencyRequirements( executionPlan.getMojoExecutions() );
 
         for ( ExecutionPlanItem mojoExecution : executionPlan )
         {
@@ -124,6 +134,8 @@ public class LifecycleDebugLogger
             {
                 logger.debug( "--- init fork of " + fork.getKey() + " for " + mojoExecId + " ---" );
 
+                debugDependencyRequirements( fork.getValue() );
+
                 for ( MojoExecution forkedExecution : fork.getValue() )
                 {
                     debugMojoExecution( forkedExecution );
@@ -140,6 +152,32 @@ public class LifecycleDebugLogger
         logger.debug( "Configuration: " + mojoExecution.getConfiguration() );
     }
 
+    private void debugDependencyRequirements( List<MojoExecution> mojoExecutions )
+    {
+        Set<String> scopesToCollect = new TreeSet<String>();
+        Set<String> scopesToResolve = new TreeSet<String>();
+
+        for ( MojoExecution mojoExecution : mojoExecutions )
+        {
+            MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+            String scopeToCollect = mojoDescriptor.getDependencyCollectionRequired();
+            if ( StringUtils.isNotEmpty( scopeToCollect ) )
+            {
+                scopesToCollect.add( scopeToCollect );
+            }
+
+            String scopeToResolve = mojoDescriptor.getDependencyResolutionRequired();
+            if ( StringUtils.isNotEmpty( scopeToResolve ) )
+            {
+                scopesToResolve.add( scopeToResolve );
+            }
+        }
+
+        logger.debug( "Dependencies (collect): " + scopesToCollect );
+        logger.debug( "Dependencies (resolve): " + scopesToResolve );
+    }
+
     public void logWeavePlan( MavenSession session )
     {
         if ( !logger.isInfoEnabled() )

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java Sat Sep 11 20:19:40 2010
@@ -21,7 +21,6 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
-import org.apache.maven.lifecycle.MavenExecutionPlan;
 import org.apache.maven.project.DefaultDependencyResolutionRequest;
 import org.apache.maven.project.DependencyResolutionException;
 import org.apache.maven.project.DependencyResolutionResult;
@@ -73,15 +72,6 @@ public class LifecycleDependencyResolver
         this.logger = logger;
     }
 
-    public void resolveDependencies( boolean aggregating, MavenProject currentProject,
-                                     MavenSession sessionForThisModule, MavenExecutionPlan executionPlan,
-                                     Set<Artifact> projectArtifacts )
-        throws LifecycleExecutionException
-    {
-        List<MavenProject> projectsToResolve = getProjects( currentProject, sessionForThisModule, aggregating );
-        resolveDependencies( aggregating, sessionForThisModule, executionPlan, projectsToResolve, projectArtifacts );
-    }
-
     public static List<MavenProject> getProjects( MavenProject project, MavenSession session, boolean aggregator )
     {
         if ( aggregator )
@@ -94,36 +84,9 @@ public class LifecycleDependencyResolver
         }
     }
 
-    public void checkForUpdate( MavenSession session, DependencyContext dependenctContext )
-        throws LifecycleExecutionException
-    {
-
-        if ( dependenctContext.isSameButUpdatedProject( session ) )
-        {
-            resolveProjectDependencies( dependenctContext.getLastProject(), dependenctContext.getScopesToCollect(),
-                                         dependenctContext.getScopesToResolve(), session,
-                                         dependenctContext.isAggregating(), new HashSet<Artifact>() );
-        }
-
-        dependenctContext.setLastProject( session.getCurrentProject() );
-        dependenctContext.setLastDependencyArtifacts( session.getCurrentProject().getDependencyArtifacts() );
-    }
-
-    private void resolveDependencies( boolean aggregating, MavenSession session, MavenExecutionPlan executionPlan,
-                                       List<MavenProject> projectsToResolve, Set<Artifact> projectArtifacts )
-        throws LifecycleExecutionException
-    {
-        for ( MavenProject project : projectsToResolve )
-        {
-            resolveProjectDependencies( project, executionPlan.getRequiredCollectionScopes(),
-                                         executionPlan.getRequiredResolutionScopes(), session, aggregating,
-                                         projectArtifacts );
-        }
-    }
-
-    private void resolveProjectDependencies( MavenProject project, Collection<String> scopesToCollect,
-                                              Collection<String> scopesToResolve, MavenSession session,
-                                              boolean aggregating, Set<Artifact> projectArtifacts )
+    public void resolveProjectDependencies( MavenProject project, Collection<String> scopesToCollect,
+                                            Collection<String> scopesToResolve, MavenSession session,
+                                            boolean aggregating, Set<Artifact> projectArtifacts )
         throws LifecycleExecutionException
     {
         if ( project.getDependencyArtifacts() == null )

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java Sat Sep 11 20:19:40 2010
@@ -62,8 +62,6 @@ public class LifecycleModuleBuilder
     public void buildProject( MavenSession session, MavenSession rootSession, ReactorContext reactorContext,
                               MavenProject currentProject, TaskSegment taskSegment )
     {
-        boolean isAggregating = taskSegment.isAggregating();
-
         session.setCurrentProject( currentProject );
 
         long buildStartTime = System.currentTimeMillis();
@@ -83,9 +81,7 @@ public class LifecycleModuleBuilder
             MavenExecutionPlan executionPlan =
                 builderCommon.resolveBuildPlan( session, currentProject, taskSegment, new HashSet<Artifact>() );
 
-            DependencyContext dependencyContext = new DependencyContext( executionPlan, isAggregating );
-            mojoExecutor.execute( session, executionPlan.getMojoExecutions(), reactorContext.getProjectIndex(),
-                                  dependencyContext );
+            mojoExecutor.execute( session, executionPlan.getMojoExecutions(), reactorContext.getProjectIndex() );
 
             long buildEndTime = System.currentTimeMillis();
 

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=996206&r1=996205&r2=996206&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 Sat Sep 11 20:19:40 2010
@@ -151,8 +151,9 @@ public class LifecycleWeaveBuilder
                     try
                     {
                         final MavenExecutionPlan executionPlan = plans.get( projectBuild ).get();
+
                         DependencyContext dependencyContext =
-                            new DependencyContext( executionPlan, projectBuild.getTaskSegment().isAggregating() );
+                            mojoExecutor.newDependencyContext( session, executionPlan.getMojoExecutions() );
 
                         final Callable<ProjectSegment> projectBuilder =
                             createCallableForBuildingOneFullModule( buildContext, session, reactorBuildStatus,

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java Sat Sep 11 20:19:40 2010
@@ -19,6 +19,7 @@ package org.apache.maven.lifecycle.inter
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
 import org.apache.maven.execution.ExecutionEvent;
@@ -38,9 +39,13 @@ import org.codehaus.plexus.component.ann
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 /**
  * Executes an individual mojo
@@ -69,12 +74,67 @@ public class MojoExecutor
     {
     }
 
-    public void execute( MavenSession session, List<MojoExecution> mojoExecutions, ProjectIndex projectIndex,
-                         DependencyContext dependencyContext )
+    public DependencyContext newDependencyContext( MavenSession session, List<MojoExecution> mojoExecutions )
+    {
+        Set<String> scopesToCollect = new TreeSet<String>();
+        Set<String> scopesToResolve = new TreeSet<String>();
+
+        collectDependencyRequirements( scopesToResolve, scopesToCollect, mojoExecutions );
+
+        return new DependencyContext( session.getCurrentProject(), scopesToCollect, scopesToResolve );
+    }
+
+    private void collectDependencyRequirements( Set<String> scopesToResolve, Set<String> scopesToCollect,
+                                                Collection<MojoExecution> mojoExecutions )
+    {
+        for ( MojoExecution mojoExecution : mojoExecutions )
+        {
+            MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+            scopesToResolve.addAll( toScopes( mojoDescriptor.getDependencyResolutionRequired() ) );
+
+            scopesToCollect.addAll( toScopes( mojoDescriptor.getDependencyCollectionRequired() ) );
+        }
+    }
+
+    private Collection<String> toScopes( String classpath )
+    {
+        if ( StringUtils.isNotEmpty( classpath ) )
+        {
+            if ( Artifact.SCOPE_COMPILE.equals( classpath ) )
+            {
+                return Arrays.asList( Artifact.SCOPE_COMPILE, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_PROVIDED );
+            }
+            else if ( Artifact.SCOPE_RUNTIME.equals( classpath ) )
+            {
+                return Arrays.asList( Artifact.SCOPE_COMPILE, Artifact.SCOPE_RUNTIME );
+            }
+            else if ( Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals( classpath ) )
+            {
+                return Arrays.asList( Artifact.SCOPE_COMPILE, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_PROVIDED,
+                                      Artifact.SCOPE_RUNTIME );
+            }
+            else if ( Artifact.SCOPE_RUNTIME_PLUS_SYSTEM.equals( classpath ) )
+            {
+                return Arrays.asList( Artifact.SCOPE_COMPILE, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_RUNTIME );
+            }
+            else if ( Artifact.SCOPE_TEST.equals( classpath ) )
+            {
+                return Arrays.asList( Artifact.SCOPE_COMPILE, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_PROVIDED,
+                                      Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST );
+            }
+        }
+        return Collections.emptyList();
+    }
+
+    public void execute( MavenSession session, List<MojoExecution> mojoExecutions, ProjectIndex projectIndex )
         throws LifecycleExecutionException
 
     {
+        DependencyContext dependencyContext = newDependencyContext( session, mojoExecutions );
+
         PhaseRecorder phaseRecorder = new PhaseRecorder( session.getCurrentProject() );
+
         for ( MojoExecution mojoExecution : mojoExecutions )
         {
             execute( session, mojoExecution, projectIndex, dependencyContext, phaseRecorder );
@@ -122,22 +182,12 @@ public class MojoExecutor
             }
         }
 
-        lifeCycleDependencyResolver.checkForUpdate( session, dependencyContext );
+        List<MavenProject> forkedProjects = executeForkedExecutions( mojoExecution, session, projectIndex );
 
-        List<MavenProject> forkedProjects =
-            executeForkedExecutions( mojoExecution, session, projectIndex, dependencyContext );
+        ensureDependenciesAreResolved( mojoDescriptor, session, dependencyContext );
 
         eventCatapult.fire( ExecutionEvent.Type.MojoStarted, session, mojoExecution );
 
-        ArtifactFilter artifactFilter = getArtifactFilter( mojoDescriptor );
-        List<MavenProject> resolvedProjects =
-            LifecycleDependencyResolver.getProjects( session.getCurrentProject(), session,
-                                                     mojoDescriptor.isAggregator() );
-        for ( MavenProject project : resolvedProjects )
-        {
-            project.setArtifactFilter( artifactFilter );
-        }
-
         try
         {
             try
@@ -178,6 +228,54 @@ public class MojoExecutor
         }
     }
 
+    private void ensureDependenciesAreResolved( MojoDescriptor mojoDescriptor, MavenSession session,
+                                                DependencyContext dependencyContext )
+        throws LifecycleExecutionException
+
+    {
+        MavenProject project = dependencyContext.getProject();
+        boolean aggregating = mojoDescriptor.isAggregator();
+
+        if ( dependencyContext.isResolutionRequiredForCurrentProject() )
+        {
+            Collection<String> scopesToCollect = dependencyContext.getScopesToCollectForCurrentProject();
+            Collection<String> scopesToResolve = dependencyContext.getScopesToResolveForCurrentProject();
+
+            lifeCycleDependencyResolver.resolveProjectDependencies( project, scopesToCollect, scopesToResolve, session,
+                                                                    aggregating, Collections.<Artifact> emptySet() );
+
+            dependencyContext.synchronizeWithProjectState();
+        }
+
+        if ( aggregating )
+        {
+            Collection<String> scopesToCollect = toScopes( mojoDescriptor.getDependencyCollectionRequired() );
+            Collection<String> scopesToResolve = toScopes( mojoDescriptor.getDependencyResolutionRequired() );
+
+            if ( dependencyContext.isResolutionRequiredForAggregatedProjects( scopesToCollect, scopesToResolve ) )
+            {
+                for ( MavenProject aggregatedProject : session.getProjects() )
+                {
+                    if ( aggregatedProject != project )
+                    {
+                        lifeCycleDependencyResolver.resolveProjectDependencies( aggregatedProject, scopesToCollect,
+                                                                                scopesToResolve, session, aggregating,
+                                                                                Collections.<Artifact> emptySet() );
+                    }
+                }
+            }
+        }
+
+        ArtifactFilter artifactFilter = getArtifactFilter( mojoDescriptor );
+        List<MavenProject> projectsToResolve =
+            LifecycleDependencyResolver.getProjects( session.getCurrentProject(), session,
+                                                     mojoDescriptor.isAggregator() );
+        for ( MavenProject projectToResolve : projectsToResolve )
+        {
+            projectToResolve.setArtifactFilter( artifactFilter );
+        }
+    }
+
     private ArtifactFilter getArtifactFilter( MojoDescriptor mojoDescriptor )
     {
         String scopeToResolve = mojoDescriptor.getDependencyResolutionRequired();
@@ -204,7 +302,7 @@ public class MojoExecutor
     }
 
     public List<MavenProject> executeForkedExecutions( MojoExecution mojoExecution, MavenSession session,
-                                                        ProjectIndex projectIndex, DependencyContext dependencyContext )
+                                                       ProjectIndex projectIndex )
         throws LifecycleExecutionException
     {
         List<MavenProject> forkedProjects = Collections.emptyList();
@@ -219,8 +317,6 @@ public class MojoExecutor
 
             forkedProjects = new ArrayList<MavenProject>( forkedExecutions.size() );
 
-            dependencyContext = dependencyContext.clone();
-
             try
             {
                 for ( Map.Entry<String, List<MojoExecution>> fork : forkedExecutions.entrySet() )
@@ -252,7 +348,7 @@ public class MojoExecutor
 
                         eventCatapult.fire( ExecutionEvent.Type.ForkedProjectStarted, session, mojoExecution );
 
-                        execute( session, mojoExecutions, projectIndex, dependencyContext );
+                        execute( session, mojoExecutions, projectIndex );
 
                         eventCatapult.fire( ExecutionEvent.Type.ForkedProjectSucceeded, session, mojoExecution );
                     }

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=996206&r1=996205&r2=996206&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 Sat Sep 11 20:19:40 2010
@@ -195,10 +195,6 @@ public class LifecycleExecutorTest
 
         MavenExecutionPlan plan = calculateExecutionPlan( session, "clean", "install" );
 
-        assertTrue( plan.getRequiredResolutionScopes().contains( Artifact.SCOPE_COMPILE ) );
-        assertTrue( plan.getRequiredResolutionScopes().contains( Artifact.SCOPE_RUNTIME ) );
-        assertTrue( plan.getRequiredResolutionScopes().contains( Artifact.SCOPE_TEST ) );
-
         List<MojoExecution> executions = getExecutions( plan );
 
         //[01] clean:clean

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java Sat Sep 11 20:19:40 2010
@@ -21,7 +21,6 @@ import org.apache.maven.execution.MavenS
 import org.apache.maven.lifecycle.MavenExecutionPlan;
 import org.apache.maven.lifecycle.internal.stub.LifecycleExecutionPlanCalculatorStub;
 import org.apache.maven.lifecycle.internal.stub.LoggerStub;
-import org.apache.maven.lifecycle.internal.stub.ProjectDependenciesResolverStub;
 import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub;
 
 import java.util.HashSet;
@@ -68,9 +67,7 @@ public class BuilderCommonTest
     public static BuilderCommon getBuilderCommon()
     {
         final LifecycleDebugLogger logger = new LifecycleDebugLogger( new LoggerStub() );
-        final LifecycleDependencyResolver lifecycleDependencyResolver =
-            new LifecycleDependencyResolver( new ProjectDependenciesResolverStub(), new LoggerStub() );
-        return new BuilderCommon( logger, new LifecycleExecutionPlanCalculatorStub(), lifecycleDependencyResolver,
+        return new BuilderCommon( logger, new LifecycleExecutionPlanCalculatorStub(),
                                   new LoggerStub() );
     }
 

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=996206&r1=996205&r2=996206&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 Sat Sep 11 20:19:40 2010
@@ -25,7 +25,6 @@ import org.apache.maven.lifecycle.intern
 import org.apache.maven.lifecycle.internal.stub.LifecycleTaskSegmentCalculatorStub;
 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.plugin.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.MojoNotFoundException;
@@ -131,9 +130,7 @@ public class LifecycleWeaveBuilderTest
     private BuilderCommon getBuilderCommon()
     {
         final LifecycleDebugLogger logger = new LifecycleDebugLogger( new LoggerStub() );
-        final LifecycleDependencyResolver lifecycleDependencyResolver =
-            new LifecycleDependencyResolver( new ProjectDependenciesResolverStub(), new LoggerStub() );
-        return new BuilderCommon( logger, new LifecycleExecutionPlanCalculatorStub(), lifecycleDependencyResolver,
+        return new BuilderCommon( logger, new LifecycleExecutionPlanCalculatorStub(),
                                   new LoggerStub() );
     }
 }

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java Sat Sep 11 20:19:40 2010
@@ -171,8 +171,7 @@ public class LifecycleExecutionPlanCalcu
     {
         final List<ExecutionPlanItem> planItemList =
             DefaultSchedulesStub.createDefaultSchedules().createExecutionPlanItem( project, mojoExecutions );
-        return new MavenExecutionPlan( getScopes(), getScopes(), planItemList,
-                                       DefaultLifecyclesStub.createDefaultLifecycles() );
+        return new MavenExecutionPlan( planItemList, DefaultLifecyclesStub.createDefaultLifecycles() );
     }
 
     private static MojoExecution createMojoExecution( String goal, String executionId, MojoDescriptor mojoDescriptor )

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java Sat Sep 11 20:19:40 2010
@@ -47,8 +47,7 @@ public class MojoExecutorStub
     }
 
     @Override
-    public void execute( MavenSession session, List<MojoExecution> mojoExecutions, ProjectIndex projectIndex,
-                         DependencyContext dependencyContext )
+    public void execute( MavenSession session, List<MojoExecution> mojoExecutions, ProjectIndex projectIndex )
         throws LifecycleExecutionException
     {
         for ( MojoExecution mojoExecution : mojoExecutions )

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java?rev=996206&r1=996205&r2=996206&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java Sat Sep 11 20:19:40 2010
@@ -43,7 +43,7 @@ public class EmptyLifecycleExecutor
 
     public MavenExecutionPlan calculateExecutionPlan( MavenSession session, String... tasks )
     {
-        return new MavenExecutionPlan(null, null, null, null );
+        return new MavenExecutionPlan( null, null );
     }
 
     public void execute( MavenSession session )