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]