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]

Reply via email to