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)); }