You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/08/01 00:19:50 UTC

svn commit: r799759 - /maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Author: jdcasey
Date: Fri Jul 31 22:19:49 2009
New Revision: 799759

URL: http://svn.apache.org/viewvc?rev=799759&view=rev
Log:
[MNG-4270] load plugins with extensions enabled fully (including plugin dependencies) prior to querying them for artifact handlers, just like we do for lifecycles.

Modified:
    maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Modified: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=799759&r1=799758&r2=799759&view=diff
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Fri Jul 31 22:19:49 2009
@@ -19,22 +19,11 @@
  * under the License.
  */
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
 import org.apache.maven.BuildFailureException;
 import org.apache.maven.ConfigurationInterpolationException;
 import org.apache.maven.ConfigurationInterpolator;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
@@ -85,6 +74,16 @@
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+import java.util.StringTokenizer;
+
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
@@ -129,7 +128,7 @@
      * @param rm
      * @param dispatcher
      */
-    public void execute( MavenSession session, ReactorManager rm, EventDispatcher dispatcher )
+    public void execute( final MavenSession session, final ReactorManager rm, final EventDispatcher dispatcher )
         throws BuildFailureException, LifecycleExecutionException
     {
         // TODO: This is dangerous, particularly when it's just a collection of loose-leaf projects being built
@@ -181,7 +180,7 @@
         executeTaskSegments( taskSegments, rm, session, rootProject, dispatcher );
     }
 
-    private void findExtensions( MavenSession session )
+    private void findExtensions( final MavenSession session )
         throws LifecycleExecutionException
     {
         // TODO: MNG-4081. What about extensions within the current reactor??
@@ -243,8 +242,8 @@
         artifactHandlerManager.addHandlers( handlers );
     }
 
-    private void executeTaskSegments( List taskSegments, ReactorManager rm, MavenSession session,
-                                      MavenProject rootProject, EventDispatcher dispatcher )
+    private void executeTaskSegments( final List taskSegments, final ReactorManager rm, final MavenSession session,
+                                      final MavenProject rootProject, final EventDispatcher dispatcher )
         throws LifecycleExecutionException, BuildFailureException
     {
         for ( Iterator it = taskSegments.iterator(); it.hasNext(); )
@@ -378,9 +377,9 @@
         }
     }
 
-    private void executeGoalAndHandleFailures( String task, MavenSession session, MavenProject project,
-                                               EventDispatcher dispatcher, String event, ReactorManager rm,
-                                               long buildStartTime, String target )
+    private void executeGoalAndHandleFailures( final String task, final MavenSession session, final MavenProject project,
+                                               final EventDispatcher dispatcher, final String event, final ReactorManager rm,
+                                               final long buildStartTime, final String target )
         throws BuildFailureException, LifecycleExecutionException
     {
         try
@@ -407,8 +406,8 @@
         }
     }
 
-    private boolean handleExecutionFailure( ReactorManager rm, MavenProject project, Exception e, String task,
-                                            long buildStartTime )
+    private boolean handleExecutionFailure( final ReactorManager rm, final MavenProject project, final Exception e, final String task,
+                                            final long buildStartTime )
     {
         rm.registerBuildFailure( project, e, task, System.currentTimeMillis() - buildStartTime );
 
@@ -424,7 +423,7 @@
         return false;
     }
 
-    private List segmentTaskListByAggregationNeeds( List tasks, MavenSession session, MavenProject project )
+    private List segmentTaskListByAggregationNeeds( final List tasks, final MavenSession session, final MavenProject project )
         throws LifecycleExecutionException, BuildFailureException
     {
         List segments = new ArrayList();
@@ -521,7 +520,7 @@
         return segments;
     }
 
-    private void executeGoal( String task, MavenSession session, MavenProject project )
+    private void executeGoal( final String task, final MavenSession session, final MavenProject project )
         throws LifecycleExecutionException, BuildFailureException
     {
         try
@@ -546,8 +545,8 @@
         }
     }
 
-    private void executeGoalWithLifecycle( String task, Stack forkEntryPoints, MavenSession session,
-                                           Map lifecycleMappings, MavenProject project, Lifecycle lifecycle )
+    private void executeGoalWithLifecycle( final String task, final Stack forkEntryPoints, final MavenSession session,
+                                           final Map lifecycleMappings, final MavenProject project, final Lifecycle lifecycle )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         List goals = processGoalChain( task, lifecycleMappings, lifecycle );
@@ -562,7 +561,7 @@
         }
     }
 
-    private void executeStandaloneGoal( String task, Stack forkEntryPoints, MavenSession session, MavenProject project )
+    private void executeStandaloneGoal( final String task, final Stack forkEntryPoints, final MavenSession session, final MavenProject project )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         // guaranteed to come from the CLI and not be part of a phase
@@ -571,7 +570,7 @@
                       forkEntryPoints, session, project );
     }
 
-    private void executeGoals( List goals, Stack forkEntryPoints, MavenSession session, MavenProject project )
+    private void executeGoals( final List goals, final Stack forkEntryPoints, final MavenSession session, final MavenProject project )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         for ( Iterator i = goals.iterator(); i.hasNext(); )
@@ -726,7 +725,7 @@
         }
     }
     
-    private void createExecutionProject( MavenProject project, MavenSession session, boolean processProjectReferences )
+    private void createExecutionProject( final MavenProject project, final MavenSession session, final boolean processProjectReferences )
         throws LifecycleExecutionException
     {
         MavenProject executionProject = new MavenProject( project );
@@ -736,7 +735,7 @@
         project.setExecutionProject( executionProject );
     }
 
-    private boolean usesSessionOrReactorProjects( PlexusConfiguration configuration )
+    private boolean usesSessionOrReactorProjects( final PlexusConfiguration configuration )
     {
         String value = configuration != null ? String.valueOf( configuration ) : null;
         
@@ -751,7 +750,7 @@
         return false;
     }
 
-    private void calculateConcreteConfiguration( MojoExecution mojoExecution, MavenProject project, MavenSession session )
+    private void calculateConcreteConfiguration( final MojoExecution mojoExecution, final MavenProject project, final MavenSession session )
         throws LifecycleExecutionException
     {
         if ( mojoExecution.getConfiguration() == null )
@@ -773,7 +772,7 @@
         }
     }
     
-    private void calculateAllConcreteStates( MavenSession session )
+    private void calculateAllConcreteStates( final MavenSession session )
         throws LifecycleExecutionException
     {
         List projects = session.getSortedProjects();
@@ -786,7 +785,7 @@
         }
     }
 
-    private void calculateConcreteState( MavenProject project, MavenSession session, boolean processReferences )
+    private void calculateConcreteState( final MavenProject project, final MavenSession session, final boolean processReferences )
         throws LifecycleExecutionException
     {
         if ( mavenProjectBuilder != null && project != null )
@@ -830,7 +829,7 @@
 //        }
 //    }
 
-    private List getReportExecutions( MavenProject project, Stack forkEntryPoints, MojoExecution mojoExecution, MavenSession session )
+    private List getReportExecutions( final MavenProject project, final Stack forkEntryPoints, final MojoExecution mojoExecution, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         List reportPlugins = project.getReportPlugins();
@@ -918,12 +917,12 @@
         return reports;
     }
     
-    private List getReportExecutions( ReportPlugin reportPlugin,
-                             Stack forkEntryPoints,
-                             ReportSet reportSet,
-                             MavenProject project,
-                             MavenSession session,
-                             MojoExecution mojoExecution )
+    private List getReportExecutions( final ReportPlugin reportPlugin,
+                             final Stack forkEntryPoints,
+                             final ReportSet reportSet,
+                             final MavenProject project,
+                             final MavenSession session,
+                             final MojoExecution mojoExecution )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         PluginDescriptor pluginDescriptor = verifyReportPlugin( reportPlugin, project, session );
@@ -968,7 +967,7 @@
         return reports;
     }
 
-    private List getReports( List reportExecutions, MavenProject project, MojoExecution mojoExecution, MavenSession session )
+    private List getReports( final List reportExecutions, final MavenProject project, final MojoExecution mojoExecution, final MavenSession session )
         throws LifecycleExecutionException
     {
         List reports = new ArrayList();
@@ -1012,8 +1011,8 @@
         return reports;
     }
 
-    private void forkLifecycle( MojoDescriptor mojoDescriptor, Stack ancestorLifecycleForkers, MavenSession session,
-                                MavenProject project, String executionId )
+    private void forkLifecycle( final MojoDescriptor mojoDescriptor, final Stack ancestorLifecycleForkers, final MavenSession session,
+                                final MavenProject project, final String executionId )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
@@ -1040,8 +1039,8 @@
         }
     }
 
-    private void forkProjectLifecycle( MojoDescriptor mojoDescriptor, Stack forkEntryPoints, MavenSession session,
-                                       MavenProject project, String executionId )
+    private void forkProjectLifecycle( final MojoDescriptor mojoDescriptor, final Stack forkEntryPoints, final MavenSession session,
+                                       MavenProject project, final String executionId )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         project = project.getExecutionProject();
@@ -1213,7 +1212,7 @@
         }
     }
 
-    private Lifecycle getLifecycleForPhase( String phase )
+    private Lifecycle getLifecycleForPhase( final String phase )
         throws BuildFailureException, LifecycleExecutionException
     {
         Lifecycle lifecycle = (Lifecycle) getPhaseToLifecycleMap().get( phase );
@@ -1225,7 +1224,7 @@
         return lifecycle;
     }
 
-    private MojoDescriptor getMojoDescriptor( PluginDescriptor pluginDescriptor, String goal )
+    private MojoDescriptor getMojoDescriptor( final PluginDescriptor pluginDescriptor, final String goal )
         throws LifecycleExecutionException
     {
         MojoDescriptor desc = pluginDescriptor.getMojo( goal );
@@ -1248,7 +1247,7 @@
         return desc;
     }
 
-    private void removeFromLifecycle( Stack lifecycleForkers, Map lifecycleMappings )
+    private void removeFromLifecycle( final Stack lifecycleForkers, final Map lifecycleMappings )
     {
         for ( Iterator lifecycleIterator = lifecycleMappings.values().iterator(); lifecycleIterator.hasNext(); )
         {
@@ -1268,8 +1267,8 @@
         }
     }
 
-    private Map constructLifecycleMappings( MavenSession session, String selectedPhase, MavenProject project,
-                                            Lifecycle lifecycle )
+    private Map constructLifecycleMappings( final MavenSession session, final String selectedPhase, final MavenProject project,
+                                            final Lifecycle lifecycle )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         // first, bind those associated with the packaging
@@ -1286,8 +1285,8 @@
         return lifecycleMappings;
     }
 
-    private Map bindLifecycleForPackaging( MavenSession session, String selectedPhase, MavenProject project,
-                                           Lifecycle lifecycle )
+    private Map bindLifecycleForPackaging( final MavenSession session, final String selectedPhase, final MavenProject project,
+                                           final Lifecycle lifecycle )
         throws LifecycleExecutionException, BuildFailureException, PluginNotFoundException
     {
         Map mappings = findMappingsForLifecycle( session, project, lifecycle );
@@ -1338,7 +1337,7 @@
         return lifecycleMappings;
     }
 
-    private Map findMappingsForLifecycle( MavenSession session, MavenProject project, Lifecycle lifecycle )
+    private Map findMappingsForLifecycle( final MavenSession session, final MavenProject project, final Lifecycle lifecycle )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         String packaging = project.getPackaging();
@@ -1385,7 +1384,7 @@
         return mappings;
     }
 
-    private List findOptionalMojosForLifecycle( MavenSession session, MavenProject project, Lifecycle lifecycle )
+    private List findOptionalMojosForLifecycle( final MavenSession session, final MavenProject project, final Lifecycle lifecycle )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         String packaging = project.getPackaging();
@@ -1420,7 +1419,7 @@
         return optionalMojos;
     }
 
-    private Object findExtension( MavenProject project, String role, String roleHint, MavenSession session )
+    private Object findExtension( final MavenProject project, final String role, final String roleHint, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         Object pluginComponent = null;
@@ -1456,7 +1455,7 @@
      * @todo Not particularly happy about this. Would like WagonManager and ArtifactTypeHandlerManager to be able to
      * lookup directly, or have them passed in
      */
-    private Map<String, ArtifactHandler> findArtifactTypeHandlersInPlugins( MavenProject project, MavenSession session )
+    private Map<String, ArtifactHandler> findArtifactTypeHandlersInPlugins( final MavenProject project, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         Map<String, ArtifactHandler> map = new HashMap<String, ArtifactHandler>();
@@ -1466,7 +1465,7 @@
 
             if ( plugin.isExtensions() )
             {
-                verifyPlugin( plugin, project, session );
+                loadPluginFully( plugin, project, session );
 
                 // TODO: if moved to the plugin manager we already have the descriptor from above and so do can lookup the container directly
                 try
@@ -1496,7 +1495,7 @@
      * @param project
      * @param session
      */
-    private void bindPluginToLifecycle( Plugin plugin, MavenSession session, Map phaseMap, MavenProject project )
+    private void bindPluginToLifecycle( final Plugin plugin, final MavenSession session, final Map phaseMap, final MavenProject project )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         Settings settings = session.getSettings();
@@ -1530,7 +1529,7 @@
         }
     }
 
-    private PluginDescriptor verifyPlugin( Plugin plugin, MavenProject project, MavenSession session )
+    private PluginDescriptor verifyPlugin( final Plugin plugin, final MavenProject project, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         PluginDescriptor pluginDescriptor;
@@ -1572,7 +1571,7 @@
         return pluginDescriptor;
     }
 
-    private PluginDescriptor loadPluginFully( Plugin plugin, MavenProject project, MavenSession session )
+    private PluginDescriptor loadPluginFully( final Plugin plugin, final MavenProject project, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         PluginDescriptor pluginDescriptor;
@@ -1614,7 +1613,7 @@
         return pluginDescriptor;
     }
 
-    private PluginDescriptor verifyReportPlugin( ReportPlugin plugin, MavenProject project, MavenSession session )
+    private PluginDescriptor verifyReportPlugin( final ReportPlugin plugin, final MavenProject project, final MavenSession session )
         throws LifecycleExecutionException, PluginNotFoundException
     {
         PluginDescriptor pluginDescriptor;
@@ -1654,8 +1653,8 @@
         return pluginDescriptor;
     }
 
-    private void bindExecutionToLifecycle( PluginDescriptor pluginDescriptor, Map phaseMap, PluginExecution execution,
-                                           Settings settings )
+    private void bindExecutionToLifecycle( final PluginDescriptor pluginDescriptor, final Map phaseMap, final PluginExecution execution,
+                                           final Settings settings )
         throws LifecycleExecutionException
     {
         for ( Iterator i = execution.getGoals().iterator(); i.hasNext(); )
@@ -1696,8 +1695,8 @@
         }
     }
 
-    private void addToLifecycleMappings( Map lifecycleMappings, String phase, MojoExecution mojoExecution,
-                                         Settings settings )
+    private void addToLifecycleMappings( final Map lifecycleMappings, final String phase, final MojoExecution mojoExecution,
+                                         final Settings settings )
     {
         List goals = (List) lifecycleMappings.get( phase );
 
@@ -1719,7 +1718,7 @@
         }
     }
 
-    private List processGoalChain( String task, Map phaseMap, Lifecycle lifecycle )
+    private List processGoalChain( final String task, final Map phaseMap, final Lifecycle lifecycle )
     {
         List goals = new ArrayList();
 
@@ -1740,8 +1739,8 @@
         return goals;
     }
 
-    private MojoDescriptor getMojoDescriptor( String task, MavenSession session, MavenProject project,
-                                              String invokedVia, boolean canUsePrefix, boolean isOptionalMojo )
+    private MojoDescriptor getMojoDescriptor( final String task, final MavenSession session, final MavenProject project,
+                                              final String invokedVia, final boolean canUsePrefix, final boolean isOptionalMojo )
         throws BuildFailureException, LifecycleExecutionException, PluginNotFoundException
     {
         String goal;
@@ -1929,14 +1928,14 @@
     {
         private boolean aggregate;
 
-        private List tasks = new ArrayList();
+        private final List tasks = new ArrayList();
 
         TaskSegment()
         {
 
         }
 
-        TaskSegment( boolean aggregate )
+        TaskSegment( final boolean aggregate )
         {
             this.aggregate = aggregate;
         }
@@ -1974,7 +1973,7 @@
             return aggregate;
         }
 
-        void add( String task )
+        void add( final String task )
         {
             tasks.add( task );
         }
@@ -2038,7 +2037,7 @@
         }
     }
     
-    private void warnOfIncompleteComponentConfiguration( String role )
+    private void warnOfIncompleteComponentConfiguration( final String role )
     {
         StringBuffer buffer = new StringBuffer();
         buffer.append( "\n************ WARNING ************" );
@@ -2056,7 +2055,7 @@
 
     private PlexusContainer container;
 
-    public void contextualize( Context context )
+    public void contextualize( final Context context )
         throws ContextException
     {
         container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );