Author: jvanzyl
Date: Tue May 12 20:50:04 2009
New Revision: 774078

URL: http://svn.apache.org/viewvc?rev=774078&view=rev
Log:
o getting the project dependencies now does not require two passes and we now 
always resolve from the root artifact. we no longer have to set the dependency 
artifacts either. with chained local repositories everything will be found in a 
repository so you don't have to make a distinction between what you have in a 
reactor/workspace/repo. the artifact will be found.

Modified:
    
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Modified: 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=774078&r1=774077&r2=774078&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 Tue May 12 20:50:04 2009
@@ -41,9 +41,6 @@
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginExecution;
 import org.apache.maven.plugin.MojoExecution;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.PluginConfigurationException;
-import org.apache.maven.plugin.PluginExecutionException;
 import org.apache.maven.plugin.PluginLoaderException;
 import org.apache.maven.plugin.PluginManager;
 import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
@@ -101,7 +98,6 @@
     private Map<String, Lifecycle> phaseToLifecycleMap;
 
     public void execute( MavenSession session )
-        throws LifecycleExecutionException, MojoFailureException
     {
         logger.info(  "Build Order:" );
         logger.info( "" );
@@ -124,11 +120,6 @@
                 goals = Collections.singletonList( goal );
             }
         }
-
-        if ( goals.isEmpty() )
-        {
-            throw new LifecycleExecutionException( "\n\nYou must specify at 
least one goal. Try 'mvn install' to build or 'mvn --help' for options \nSee 
http://maven.apache.org for more information.\n\n" );
-        }
         
         for ( MavenProject currentProject : session.getProjects() )
         {
@@ -140,7 +131,17 @@
 
                 for ( String goal : goals )
                 {                    
-                    List<MojoExecution> lifecyclePlan = 
calculateLifecyclePlan( goal, session );        
+                    List<MojoExecution> lifecyclePlan;
+                    
+                    try
+                    {
+                        lifecyclePlan = calculateLifecyclePlan( goal, session 
);
+                    }
+                    catch ( LifecycleExecutionException e )
+                    {
+                        session.getResult().addException( e );
+                        return;
+                    }        
 
                     //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
@@ -153,9 +154,13 @@
                     }
                     catch ( ArtifactResolutionException e )
                     {
+                        session.getResult().addException( e );
+                        return;
                     }
                     catch ( ArtifactNotFoundException e )
                     {
+                        session.getResult().addException( e );
+                        return;
                     }
                     
                     if ( logger.isDebugEnabled() )
@@ -182,15 +187,10 @@
                             logger.info( executionDescription( mojoExecution, 
currentProject ) );
                             pluginManager.executeMojo( session, mojoExecution 
);
                         }
-                        catch ( PluginExecutionException e )
-                        {
-                            // This looks like a duplicate
-                            throw new LifecycleExecutionException( "Error 
executing goal.", e );                                        
-                        }
-                        catch ( PluginConfigurationException e )
+                        catch ( Exception e )
                         {
-                            // If the mojo can't actually be configured
-                            throw new LifecycleExecutionException( "Error 
executing goal.", e );                                        
+                            session.getResult().addException( e );
+                            return;
                         }
                     }                         
                 }
@@ -949,40 +949,25 @@
     
     */
     
-    // This can ultimately be moved up to the Maven component
-    
     private void downloadProjectDependencies( MavenSession session, String 
scope )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
         MavenProject project = session.getCurrentProject();
 
-        Artifact artifact = repositorySystem.createArtifact( 
project.getGroupId(), project.getArtifactId(), project.getVersion(), null, 
project.getPackaging() );
-
+        Artifact artifact = repositorySystem.createArtifact( 
project.getGroupId(), project.getArtifactId(), project.getVersion(), null, 
project.getPackaging() );      
+        
         ArtifactFilter filter = new ScopeArtifactFilter( scope );
 
-        ArtifactResolutionRequest request = new 
ArtifactResolutionRequest().setArtifact( artifact )
-            // Here the root is not resolved because we are presumably working 
with a project locally.
-            .setResolveRoot( false )
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest()
+            .setArtifact( artifact )
             .setResolveTransitively( true )
-            //.setArtifactDependencies( project.getDependencyArtifacts() )
             .setLocalRepository( session.getLocalRepository() )
             .setRemoteRepostories( project.getRemoteArtifactRepositories() )
             .setManagedVersionMap( project.getManagedVersionMap() )
             .setFilter( filter );
 
         ArtifactResolutionResult result = repositorySystem.resolve( request );
-
         resolutionErrorHandler.throwErrors( request, result );
-
-        //TODO: this is wrong
-        project.setArtifacts( result.getArtifacts() );
-
-        ArtifactRepository localRepository = session.getLocalRepository();
-        List<ArtifactRepository> remoteArtifactRepositories = 
session.getCurrentProject().getRemoteArtifactRepositories();
-
-        for ( Artifact projectArtifact : 
session.getCurrentProject().getArtifacts() )
-        {
-            repositorySystem.resolve( new ArtifactResolutionRequest( 
projectArtifact, localRepository, remoteArtifactRepositories ) );
-        }
+        project.setArtifacts( result.getArtifacts() );        
     }    
 }


Reply via email to