Author: bentmann
Date: Tue Aug  4 11:59:57 2009
New Revision: 800740

URL: http://svn.apache.org/viewvc?rev=800740&view=rev
Log:
o Fixed missing injection of default parameter values for direct goals 
invocations

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

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=800740&r1=800739&r2=800740&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  4 11:59:57 2009
@@ -680,6 +680,8 @@
 
         Plugin plugin = project.getPlugin( g + ":" + a );
 
+        MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
         if ( plugin != null && StringUtils.isNotEmpty( 
mojoExecution.getExecutionId() ) )
         {
             for ( PluginExecution e : plugin.getExecutions() )
@@ -688,12 +690,23 @@
                 {
                     Xpp3Dom executionConfiguration = (Xpp3Dom) 
e.getConfiguration();
 
-                    Xpp3Dom mojoConfiguration = extractMojoConfiguration( 
executionConfiguration, mojoExecution.getMojoDescriptor() );
+                    Xpp3Dom mojoConfiguration = extractMojoConfiguration( 
executionConfiguration, mojoDescriptor );
+
+                    mojoConfiguration = Xpp3Dom.mergeXpp3Dom( 
mojoExecution.getConfiguration(), mojoConfiguration );
+
+                    /*
+                     * The model only contains the default configuration for 
those goals that are present in the plugin
+                     * execution. For goals invoked from the CLI or a forked 
execution, we need to grab the default
+                     * parameter values explicitly.
+                     */
+                    if ( !e.getGoals().contains( mojoExecution.getGoal() ) )
+                    {
+                        Xpp3Dom defaultConfiguration = getMojoConfiguration( 
mojoDescriptor );
 
-                    Xpp3Dom mergedConfiguration =
-                        Xpp3Dom.mergeXpp3Dom( 
mojoExecution.getConfiguration(), mojoConfiguration );
+                        mojoConfiguration = Xpp3Dom.mergeXpp3Dom( 
mojoConfiguration, defaultConfiguration );
+                    }
 
-                    mojoExecution.setConfiguration( mergedConfiguration );
+                    mojoExecution.setConfiguration( mojoConfiguration );
 
                     return;
                 }
@@ -702,20 +715,20 @@
 
         if ( allowPluginLevelConfig )
         {
-            Xpp3Dom defaultDom = convert( mojoExecution.getMojoDescriptor() );
+            Xpp3Dom defaultConfiguration = getMojoConfiguration( 
mojoDescriptor );
 
-            Xpp3Dom mojoDom = defaultDom;
+            Xpp3Dom mojoConfiguration = defaultConfiguration;
 
             if ( plugin != null && plugin.getConfiguration() != null )
             {
-                Xpp3Dom projectDom = (Xpp3Dom) plugin.getConfiguration();
-                projectDom = extractMojoConfiguration( projectDom, 
mojoExecution.getMojoDescriptor() );
-                mojoDom = Xpp3Dom.mergeXpp3Dom( projectDom, defaultDom, 
Boolean.TRUE );
+                Xpp3Dom pluginConfiguration = (Xpp3Dom) 
plugin.getConfiguration();
+                pluginConfiguration = extractMojoConfiguration( 
pluginConfiguration, mojoDescriptor );
+                mojoConfiguration = Xpp3Dom.mergeXpp3Dom( pluginConfiguration, 
defaultConfiguration, Boolean.TRUE );
             }
 
-            mojoDom = Xpp3Dom.mergeXpp3Dom( mojoExecution.getConfiguration(), 
mojoDom );
+            mojoConfiguration = Xpp3Dom.mergeXpp3Dom( 
mojoExecution.getConfiguration(), mojoConfiguration );
 
-            mojoExecution.setConfiguration( mojoDom );
+            mojoExecution.setConfiguration( mojoConfiguration );
         }
     }
 
@@ -1170,7 +1183,7 @@
             throw new LifecycleExecutionException( "Error getting default 
plugin information: ", e );
         } 
         
-        return convert( mojoDescriptor );
+        return getMojoConfiguration( mojoDescriptor );
     }
     
     public Xpp3Dom getMojoConfiguration( MojoDescriptor mojoDescriptor )


Reply via email to