Author: bentmann
Date: Tue Aug 11 18:45:28 2009
New Revision: 803243

URL: http://svn.apache.org/viewvc?rev=803243&view=rev
Log:
o Delayed injection of plugin default configuration until the project is 
actually executed to allow for plugin resolution from the reactor

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 Tue Aug 11 18:45:28 2009
@@ -42,6 +42,7 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.ProjectBuildingResult;
 import org.apache.maven.repository.DelegatingLocalArtifactRepository;
 import org.codehaus.plexus.PlexusContainer;
@@ -215,8 +216,11 @@
         ExceptionHandler handler = new DefaultExceptionHandler();
         
         ExceptionSummary es = handler.handleException( e );                    
    
-     
-        result.addException( e );
+
+        if ( !result.getExceptions().contains( e ) )
+        {
+            result.addException( e );
+        }
         
         result.setExceptionSummary( es );    
         
@@ -288,8 +292,15 @@
     private void collectProjects( List<MavenProject> projects, List<File> 
files, MavenExecutionRequest request )
         throws MavenExecutionException, ProjectBuildingException
     {
-        List<ProjectBuildingResult> results =
-            projectBuilder.build( files, request.isRecursive(), 
request.getProjectBuildingRequest() );
+        ProjectBuildingRequest projectBuildingRequest = 
request.getProjectBuildingRequest();
+
+        /*
+         * NOTE: We delay plugin configuration processing until a project is 
actually build to allow plugins to be
+         * resolved from the reactor.
+         */
+        projectBuildingRequest.setProcessPluginConfiguration( false );
+
+        List<ProjectBuildingResult> results = projectBuilder.build( files, 
request.isRecursive(), projectBuildingRequest );
 
         for ( ProjectBuildingResult result : results )
         {

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 Tue Aug 11 18:45:28 2009
@@ -176,6 +176,9 @@
             {
                 session.setCurrentProject( currentProject );
 
+                repositoryRequest.setRemoteRepositories( 
currentProject.getPluginArtifactRepositories() );
+                populateDefaultConfigurationForPlugins( 
currentProject.getBuild().getPlugins(), repositoryRequest );
+
                 ClassRealm projectRealm = currentProject.getClassRealm();
                 if ( projectRealm != null )
                 {

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
 Tue Aug 11 18:45:28 2009
@@ -499,7 +499,7 @@
 
         try
         {
-            if ( configuration.isProcessPlugins() )
+            if ( configuration.isProcessPlugins() && 
configuration.isProcessPluginConfiguration() )
             {
                 RepositoryRequest repositoryRequest = new 
DefaultRepositoryRequest();
                 repositoryRequest.setLocalRepository( 
configuration.getLocalRepository() );

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
 Tue Aug 11 18:45:28 2009
@@ -52,6 +52,8 @@
 
     private boolean processPlugins;
 
+    private boolean processPluginConfiguration;
+
     private List<Profile> profiles;
 
     private List<String> activeProfileIds;
@@ -67,6 +69,7 @@
     public DefaultProjectBuildingRequest()
     {
         processPlugins = true;
+        processPluginConfiguration = true;
         profiles = new ArrayList<Profile>();
         activeProfileIds = new ArrayList<String>();
         inactiveProfileIds = new ArrayList<String>();
@@ -221,6 +224,17 @@
         return this;
     }
 
+    public boolean isProcessPluginConfiguration()
+    {
+        return processPluginConfiguration;
+    }
+
+    public ProjectBuildingRequest setProcessPluginConfiguration( boolean 
processPluginConfiguration )
+    {
+        this.processPluginConfiguration = processPluginConfiguration;
+        return this;
+    }
+
     public ProjectBuildingRequest setValidationLevel( int validationLevel )
     {
         this.validationLevel = validationLevel;

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
 Tue Aug 11 18:45:28 2009
@@ -92,11 +92,15 @@
     void setTopLevelProjectForReactor(MavenProject mavenProject);
 
     MavenProject getTopLevelProjectFromReactor();
-        
+
     ProjectBuildingRequest setProcessPlugins( boolean processPlugins );
-    
+
     boolean isProcessPlugins();
 
+    ProjectBuildingRequest setProcessPluginConfiguration( boolean 
processPluginConfiguration );
+
+    boolean isProcessPluginConfiguration();
+
     /**
      * Controls the level of validation to perform on processed models. By 
default, models are validated in strict mode.
      * 


Reply via email to