Author: bentmann
Date: Sun May  3 23:47:56 2009
New Revision: 771151

URL: http://svn.apache.org/viewvc?rev=771151&view=rev
Log:
o Fixed order of plugin configuration merging

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

Modified: 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=771151&r1=771150&r2=771151&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Sun May  3 23:47:56 2009
@@ -191,32 +191,44 @@
                                pln.add(copy);
                        }
                
+                       // Merge the various sources for mojo configuration:
+            // 1. default values from mojo descriptor
+            // 2. POM values from per-plugin configuration
+            // 3. POM values from per-execution configuration
+            // These configuration sources are given in increasing order of 
dominance.
+
                        Set<Plugin> pl = 
lifecycle.populateDefaultConfigurationForPlugins(new HashSet<Plugin>(pln), 
                                project, configuration.getLocalRepository());
                                
-                       for (Plugin buildPlugin : pl) {
-                               Xpp3Dom dom = (Xpp3Dom) 
buildPlugin.getConfiguration();
-                               Plugin x = containsPlugin(buildPlugin, 
project.getModel()
-                                               .getBuild().getPlugins());
-
-                               for (PluginExecution e : 
buildPlugin.getExecutions()) {
-                                       for (String g : e.getGoals()) {
-                                               if (x != null) {
-                                                       PluginExecution pe = 
contains(g, x.getExecutions());
-                                                       if (pe != null) {
-                                                               Xpp3Dom dom1 = 
Xpp3Dom.mergeXpp3Dom(
-                                                                               
(Xpp3Dom) pe.getConfiguration(),
-                                                                               
(Xpp3Dom) e.getConfiguration());
-                                                               
e.setConfiguration(dom1);
-                                                       }
-                                               }
-                                               Xpp3Dom dom1 = 
Xpp3Dom.mergeXpp3Dom((Xpp3Dom) e
-                                                               
.getConfiguration(), dom);
-                                               e.setConfiguration(dom1);
-                                       }
-                               }
+                       for ( Plugin buildPlugin : pl )
+            {
+                Xpp3Dom dom = (Xpp3Dom) buildPlugin.getConfiguration();
+                Plugin x = containsPlugin( buildPlugin, 
project.getModel().getBuild().getPlugins() );
 
-                       }
+                for ( PluginExecution e : buildPlugin.getExecutions() )
+                {
+                    if ( dom != null )
+                    {
+                        Xpp3Dom dom1 = Xpp3Dom.mergeXpp3Dom( new Xpp3Dom( dom 
), (Xpp3Dom) e.getConfiguration() );
+                        e.setConfiguration( dom1 );
+                    }
+                    for ( String g : e.getGoals() )
+                    {
+                        if ( x != null )
+                        {
+                            PluginExecution pe = contains( g, 
x.getExecutions() );
+                            if ( pe != null )
+                            {
+                                Xpp3Dom dom2 =
+                                    Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) 
pe.getConfiguration(),
+                                                          (Xpp3Dom) 
e.getConfiguration() );
+                                e.setConfiguration( dom2 );
+                            }
+                        }
+                    }
+                }
+
+            }
                        
                        project.getModel().getBuild().setPlugins(new 
ArrayList<Plugin>(pl));
                } 


Reply via email to