You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/05/17 20:39:46 UTC

svn commit: r945294 - /maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java

Author: bentmann
Date: Mon May 17 18:39:46 2010
New Revision: 945294

URL: http://svn.apache.org/viewvc?rev=945294&view=rev
Log:
[MNG-4677] [regression] Plugin configuration incorrectly inherited from parent pom

Modified:
    maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java

Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java?rev=945294&r1=945293&r2=945294&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java Mon May 17 18:39:46 2010
@@ -122,15 +122,18 @@ public class DefaultInheritanceAssembler
 
                 for ( Plugin element : src )
                 {
-                    Object key = getPluginKey( element );
+                    if ( element.isInherited() || !element.getExecutions().isEmpty() )
+                    {
+                        // NOTE: Enforce recursive merge to trigger merging/inheritance logic for executions
+                        Plugin plugin = new Plugin();
+                        plugin.setGroupId( element.getGroupId() );
+                        plugin.setArtifactId( element.getArtifactId() );
+                        mergePlugin( plugin, element, sourceDominant, context );
 
-                    // NOTE: Enforce recursive merge to trigger merging/inheritance logic for executions
-                    Plugin plugin = new Plugin();
-                    plugin.setGroupId( element.getGroupId() );
-                    plugin.setArtifactId( element.getArtifactId() );
-                    mergePlugin( plugin, element, sourceDominant, context );
+                        Object key = getPluginKey( element );
 
-                    master.put( key, plugin );
+                        master.put( key, plugin );
+                    }
                 }
 
                 Map<Object, List<Plugin>> predecessors = new LinkedHashMap<Object, List<Plugin>>();
@@ -174,6 +177,21 @@ public class DefaultInheritanceAssembler
         }
 
         @Override
+        protected void mergePlugin( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context )
+        {
+            if ( source.isInherited() )
+            {
+                mergeConfigurationContainer( target, source, sourceDominant, context );
+            }
+            mergePlugin_GroupId( target, source, sourceDominant, context );
+            mergePlugin_ArtifactId( target, source, sourceDominant, context );
+            mergePlugin_Version( target, source, sourceDominant, context );
+            mergePlugin_Extensions( target, source, sourceDominant, context );
+            mergePlugin_Dependencies( target, source, sourceDominant, context );
+            mergePlugin_Executions( target, source, sourceDominant, context );
+        }
+
+        @Override
         protected void mergeReporting_Plugins( Reporting target, Reporting source, boolean sourceDominant,
                                                Map<Object, Object> context )
         {