Author: jdcasey Date: Wed Sep 28 11:57:22 2005 New Revision: 292255 URL: http://svn.apache.org/viewcvs?rev=292255&view=rev Log: Resolving: MNG-985...simply fixed merging of plugins from PluginManagement to happen on a plugin-by-plugin basis using individual merge logic from ModelUtils, rather than the wholesale merge logic for plugin lists.
Added: maven/components/trunk/maven-core-it/it0076/ maven/components/trunk/maven-core-it/it0076/pom.xml (with props) Modified: maven/components/trunk/maven-core-it/README.txt maven/components/trunk/maven-core-it/integration-tests.txt maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java Modified: maven/components/trunk/maven-core-it/README.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=292255&r1=292254&r2=292255&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/README.txt (original) +++ maven/components/trunk/maven-core-it/README.txt Wed Sep 28 11:57:22 2005 @@ -200,6 +200,10 @@ it0075: Verify that direct invocation of a mojo from the command line still results in the processing of modules included via profiles. +it0076: Test that plugins in pluginManagement aren't included in the build + unless they are referenced by groupId/artifactId within the plugins + section of a pom. + ------------------------------------------------------------------------------- - generated sources Modified: maven/components/trunk/maven-core-it/integration-tests.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=292255&r1=292254&r2=292255&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/integration-tests.txt (original) +++ maven/components/trunk/maven-core-it/integration-tests.txt Wed Sep 28 11:57:22 2005 @@ -1,3 +1,4 @@ +it0076 it0075 it0074 it0073 Added: maven/components/trunk/maven-core-it/it0076/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0076/pom.xml?rev=292255&view=auto ============================================================================== --- maven/components/trunk/maven-core-it/it0076/pom.xml (added) +++ maven/components/trunk/maven-core-it/it0076/pom.xml Wed Sep 28 11:57:22 2005 @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven.it</groupId> + <artifactId>maven-core-it0076</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>pom</packaging> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + + <executions> + <execution> + <id>exec1</id> + <phase>package</phase> + <goals> + <goal>war</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> Propchange: maven/components/trunk/maven-core-it/it0076/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-core-it/it0076/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java?rev=292255&r1=292254&r2=292255&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java Wed Sep 28 11:57:22 2005 @@ -16,10 +16,12 @@ * limitations under the License. */ +import org.apache.maven.model.Build; import org.apache.maven.model.Dependency; import org.apache.maven.model.DependencyManagement; import org.apache.maven.model.Model; import org.apache.maven.model.Plugin; +import org.apache.maven.model.PluginManagement; import org.apache.maven.project.ModelUtils; import java.util.Iterator; @@ -38,8 +40,40 @@ injectDependencyDefaults( model.getDependencies(), model.getDependencyManagement() ); if ( model.getBuild() != null ) { - ModelUtils.mergePluginLists( model.getBuild(), model.getBuild().getPluginManagement(), false ); + injectPluginDefaults( model.getBuild(), model.getBuild().getPluginManagement() ); } + } + + private void injectPluginDefaults( Build build, PluginManagement pluginManagement ) + { + if ( pluginManagement == null ) + { + // nothing to inject. + return ; + } + + List buildPlugins = build.getPlugins(); + + if ( buildPlugins != null && !buildPlugins.isEmpty() ) + { + Map pmPlugins = pluginManagement.getPluginsAsMap(); + + if ( pmPlugins != null && !pmPlugins.isEmpty() ) + { + for ( Iterator it = buildPlugins.iterator(); it.hasNext(); ) + { + Plugin buildPlugin = (Plugin) it.next(); + + Plugin pmPlugin = (Plugin) pmPlugins.get( buildPlugin.getKey() ); + + if ( pmPlugin != null ) + { + mergePluginWithDefaults( buildPlugin, pmPlugin ); + } + } + } + } + } public void mergePluginWithDefaults( Plugin plugin, Plugin def ) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]