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/08/25 19:00:20 UTC

svn commit: r989222 - in /maven/maven-3/trunk/maven-core/src: main/java/org/apache/maven/lifecycle/internal/ test/java/org/apache/maven/lifecycle/internal/

Author: bentmann
Date: Wed Aug 25 17:00:20 2010
New Revision: 989222

URL: http://svn.apache.org/viewvc?rev=989222&view=rev
Log:
[MNG-4776] NPE during build from parent but not from child

Modified:
    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/LifecyclePluginResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java

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=989222&r1=989221&r2=989222&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 Wed Aug 25 17:00:20 2010
@@ -483,11 +483,9 @@ public class DefaultLifecycleExecutionPl
         PluginDescriptorParsingException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException,
         LifecyclePhaseNotFoundException, LifecycleNotFoundException, PluginVersionResolutionException
     {
-            calculateForkedExecutions( mojoExecution, session, session.getCurrentProject(), new HashSet<MojoDescriptor>() );
-
+        calculateForkedExecutions( mojoExecution, session, session.getCurrentProject(), new HashSet<MojoDescriptor>() );
     }
 
-
     private void calculateForkedExecutions( MojoExecution mojoExecution, MavenSession session, MavenProject project,
                                             Collection<MojoDescriptor> alreadyForkedExecutions )
         throws MojoNotFoundException, PluginNotFoundException, PluginResolutionException,
@@ -511,6 +509,11 @@ public class DefaultLifecycleExecutionPl
 
         for ( MavenProject forkedProject : forkedProjects )
         {
+            if ( forkedProject != project )
+            {
+                lifecyclePluginResolver.resolveMissingPluginVersions( forkedProject, session );
+            }
+
             List<MojoExecution> forkedExecutions;
 
             if ( StringUtils.isNotEmpty( mojoDescriptor.getExecutePhase() ) )

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java?rev=989222&r1=989221&r2=989222&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java Wed Aug 25 17:00:20 2010
@@ -60,7 +60,7 @@ public class LifecyclePluginResolver
     public void resolveMissingPluginVersions( MavenProject project, MavenSession session )
         throws PluginVersionResolutionException
     {
-        Map<String, String> versions = new HashMap<String, String>();
+        Map<String, String> versions = new HashMap<String, String>( 64 );
 
         for ( Plugin plugin : project.getBuildPlugins() )
         {

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java?rev=989222&r1=989221&r2=989222&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java Wed Aug 25 17:00:20 2010
@@ -42,6 +42,7 @@ import org.apache.maven.project.MavenPro
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.util.ArrayList;
@@ -63,6 +64,10 @@ import java.util.StringTokenizer;
 @Component( role = MojoDescriptorCreator.class )
 public class MojoDescriptorCreator
 {
+
+    @Requirement
+    private Logger logger;
+
     @Requirement
     private PluginVersionResolver pluginVersionResolver;
 
@@ -72,17 +77,22 @@ public class MojoDescriptorCreator
     @Requirement
     private PluginPrefixResolver pluginPrefixResolver;
 
+    @Requirement
+    private LifecyclePluginResolver lifecyclePluginResolver;
+
     @SuppressWarnings( { "UnusedDeclaration" } )
     public MojoDescriptorCreator()
     {
     }
 
     public MojoDescriptorCreator( PluginVersionResolver pluginVersionResolver, BuildPluginManager pluginManager,
-                                  PluginPrefixResolver pluginPrefixResolver )
+                                  PluginPrefixResolver pluginPrefixResolver,
+                                  LifecyclePluginResolver lifecyclePluginResolver )
     {
         this.pluginVersionResolver = pluginVersionResolver;
         this.pluginManager = pluginManager;
         this.pluginPrefixResolver = pluginPrefixResolver;
+        this.lifecyclePluginResolver = lifecyclePluginResolver;
     }
 
     private Plugin findPlugin( String groupId, String artifactId, Collection<Plugin> plugins )
@@ -221,6 +231,19 @@ public class MojoDescriptorCreator
     {
         // [prefix]:[goal]
 
+        if ( session.getCurrentProject() != null )
+        {
+            try
+            {
+                lifecyclePluginResolver.resolveMissingPluginVersions( session.getCurrentProject(), session );
+            }
+            catch ( PluginVersionResolutionException e )
+            {
+                // not critical here
+                logger.debug( e.getMessage(), e );
+            }
+        }
+
         PluginPrefixRequest prefixRequest = new DefaultPluginPrefixRequest( prefix, session );
         PluginPrefixResult prefixResult = pluginPrefixResolver.resolve( prefixRequest );
 

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java?rev=989222&r1=989221&r2=989222&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java Wed Aug 25 17:00:20 2010
@@ -73,6 +73,7 @@ public class LifecycleExecutionPlanCalcu
     public static MojoDescriptorCreator createMojoDescriptorCreator()
     {
         return new MojoDescriptorCreator( new PluginVersionResolverStub(), new BuildPluginManagerStub(),
-                                          new PluginPrefixResolverStub() );
+                                          new PluginPrefixResolverStub(),
+                                          new LifecyclePluginResolver( new PluginVersionResolverStub() ) );
     }
 }