You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/04/28 04:13:49 UTC

svn commit: r165089 - /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java

Author: brett
Date: Wed Apr 27 19:13:49 2005
New Revision: 165089

URL: http://svn.apache.org/viewcvs?rev=165089&view=rev
Log:
clean up the inheritence of build
- don't copy build verbatim if missing to ensure you don't get things that aren't intended for inheritence
- this ensures plugins are -never- inherited
- plugin management inheritence was fixed by John - moved it under build to be clearer

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=165089&r1=165088&r2=165089&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java Wed Apr 27 19:13:49 2005
@@ -38,8 +38,7 @@
  * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
  * @version $Id: DefaultModelInheritanceAssembler.java,v 1.4 2004/08/23 20:24:54
  *          jdcasey Exp $
- * @todo generate this with modello to keep it in sync with changes in the
- * model.
+ * @todo generate this with modello to keep it in sync with changes in the model.
  */
 public class DefaultModelInheritanceAssembler
     implements ModelInheritanceAssembler
@@ -166,8 +165,6 @@
             }
         }
         
-        // Plugins are not aggregated
-
         // Reports :: aggregate
         if ( child.getReports() != null && parent.getReports() != null )
         {
@@ -193,96 +190,77 @@
 
         assembleDependencyManagementInheritance( child, parent );
 
-        assemblePluginManagementInheritance( child, parent );
-
     }
 
-    private void assemblePluginManagementInheritance( Model child, Model parent )
+    private void assemblePluginManagementInheritance( Build childBuild, Build parentBuild )
     {
-        Build parentBuild = parent.getBuild();
-        Build childBuild = child.getBuild();
+        PluginManagement parentPluginMgmt = parentBuild.getPluginManagement();
 
-        if ( childBuild == null )
+        PluginManagement childPluginMgmt = childBuild.getPluginManagement();
+
+        if ( parentPluginMgmt != null )
         {
-            if ( parentBuild != null )
+            if ( childPluginMgmt == null )
             {
-                child.setBuild( parentBuild );
+                childBuild.setPluginManagement( parentPluginMgmt );
             }
             else
             {
-                childBuild = new Build();
-            }
-        }
-        else
-        {
-            PluginManagement parentPluginMgmt = parentBuild.getPluginManagement();
-
-            PluginManagement childPluginMgmt = childBuild.getPluginManagement();
+                List childPlugins = childPluginMgmt.getPlugins();
 
-            if ( parentPluginMgmt != null )
-            {
-                if ( childPluginMgmt == null )
+                Map mappedChildPlugins = new TreeMap();
+                for ( Iterator it = childPlugins.iterator(); it.hasNext(); )
                 {
-                    childBuild.setPluginManagement( parentPluginMgmt );
+                    Plugin plugin = (Plugin) it.next();
+                    mappedChildPlugins.put( constructPluginKey( plugin ), plugin );
                 }
-                else
+
+                for ( Iterator it = parentPluginMgmt.getPlugins().iterator(); it.hasNext(); )
                 {
-                    List childPlugins = childPluginMgmt.getPlugins();
+                    Plugin plugin = (Plugin) it.next();
 
-                    Map mappedChildPlugins = new TreeMap();
-                    for ( Iterator it = childPlugins.iterator(); it.hasNext(); )
+                    String pluginKey = constructPluginKey( plugin );
+
+                    if ( !mappedChildPlugins.containsKey( pluginKey ) )
                     {
-                        Plugin plugin = (Plugin) it.next();
-                        mappedChildPlugins.put( constructPluginKey( plugin ), plugin );
+                        childPluginMgmt.addPlugin( plugin );
                     }
-
-                    for ( Iterator it = parentPluginMgmt.getPlugins().iterator(); it.hasNext(); )
+                    else
                     {
-                        Plugin plugin = (Plugin) it.next();
-                        
-                        String pluginKey = constructPluginKey( plugin );
-                        
-                        if ( !mappedChildPlugins.containsKey( pluginKey ) )
+                        Plugin childPlugin = (Plugin) mappedChildPlugins.get( pluginKey );
+
+                        if ( childPlugin.getVersion() == null )
                         {
-                            childPluginMgmt.addPlugin( plugin );
+                            childPlugin.setVersion( childPlugin.getVersion() );
                         }
-                        else
+
+                        Map mappedChildGoals = new TreeMap();
+                        for ( Iterator itGoals = childPlugin.getGoals().iterator(); itGoals.hasNext(); )
                         {
-                            Plugin childPlugin = (Plugin) mappedChildPlugins.get( pluginKey );
+                            Goal goal = (Goal) itGoals.next();
+                            mappedChildGoals.put( goal.getId(), goal );
+                        }
 
-                            if ( childPlugin.getVersion() == null )
-                            {
-                                childPlugin.setVersion( childPlugin.getVersion() );
-                            }
+                        for ( Iterator itGoals = plugin.getGoals().iterator(); itGoals.hasNext(); )
+                        {
+                            Goal parentGoal = (Goal) itGoals.next();
+                            Goal childGoal = (Goal) mappedChildGoals.get( parentGoal.getId() );
 
-                            Map mappedChildGoals = new TreeMap();
-                            for ( Iterator itGoals = childPlugin.getGoals().iterator(); itGoals.hasNext(); )
+                            if ( childGoal == null )
                             {
-                                Goal goal = (Goal) itGoals.next();
-                                mappedChildGoals.put( goal.getId(), goal );
+                                childPlugin.addGoal( parentGoal );
                             }
-
-                            for ( Iterator itGoals = plugin.getGoals().iterator(); itGoals.hasNext(); )
+                            else
                             {
-                                Goal parentGoal = (Goal) itGoals.next();
-                                Goal childGoal = (Goal) mappedChildGoals.get( parentGoal.getId() );
-
-                                if ( childGoal == null )
-                                {
-                                    childPlugin.addGoal( parentGoal );
-                                }
-                                else
-                                {
-                                    Xpp3Dom childDom = (Xpp3Dom) childGoal.getConfiguration();
-                                    Xpp3Dom parentDom = (Xpp3Dom) parentGoal.getConfiguration();
-                                    childGoal.setConfiguration( Xpp3Dom.mergeXpp3Dom( childDom, parentDom ) );
-                                }
+                                Xpp3Dom childDom = (Xpp3Dom) childGoal.getConfiguration();
+                                Xpp3Dom parentDom = (Xpp3Dom) parentGoal.getConfiguration();
+                                childGoal.setConfiguration( Xpp3Dom.mergeXpp3Dom( childDom, parentDom ) );
                             }
-                            
-                            Xpp3Dom childConfig = (Xpp3Dom) childPlugin.getConfiguration();
-                            Xpp3Dom parentConfig = (Xpp3Dom) plugin.getConfiguration();
-                            childPlugin.setConfiguration( Xpp3Dom.mergeXpp3Dom( childConfig, parentConfig ) );
                         }
+
+                        Xpp3Dom childConfig = (Xpp3Dom) childPlugin.getConfiguration();
+                        Xpp3Dom parentConfig = (Xpp3Dom) plugin.getConfiguration();
+                        childPlugin.setConfiguration( Xpp3Dom.mergeXpp3Dom( childConfig, parentConfig ) );
                     }
                 }
             }
@@ -336,61 +314,62 @@
 
         if ( childBuild == null )
         {
-            child.setBuild( parentBuild );
+            child.setBuild( new Build() );
         }
-        else
-        {
-            // The build has been set but we want to step in here and fill in
-            // values
-            // that have not been set by the child.
+        // The build has been set but we want to step in here and fill in
+        // values
+        // that have not been set by the child.
 
-            if ( childBuild.getDirectory() == null )
-            {
-                childBuild.setDirectory( parentBuild.getDirectory() );
-            }
+        if ( childBuild.getDirectory() == null )
+        {
+            childBuild.setDirectory( parentBuild.getDirectory() );
+        }
 
-            if ( childBuild.getSourceDirectory() == null )
-            {
-                childBuild.setSourceDirectory( parentBuild.getSourceDirectory() );
-            }
+        if ( childBuild.getSourceDirectory() == null )
+        {
+            childBuild.setSourceDirectory( parentBuild.getSourceDirectory() );
+        }
 
-            if ( childBuild.getScriptSourceDirectory() == null )
-            {
-                childBuild.setScriptSourceDirectory( parentBuild.getScriptSourceDirectory() );
-            }
+        if ( childBuild.getScriptSourceDirectory() == null )
+        {
+            childBuild.setScriptSourceDirectory( parentBuild.getScriptSourceDirectory() );
+        }
 
-            if ( childBuild.getTestSourceDirectory() == null )
-            {
-                childBuild.setTestSourceDirectory( parentBuild.getTestSourceDirectory() );
-            }
+        if ( childBuild.getTestSourceDirectory() == null )
+        {
+            childBuild.setTestSourceDirectory( parentBuild.getTestSourceDirectory() );
+        }
 
-            if ( childBuild.getOutputDirectory() == null )
-            {
-                childBuild.setOutputDirectory( parentBuild.getOutputDirectory() );
-            }
+        if ( childBuild.getOutputDirectory() == null )
+        {
+            childBuild.setOutputDirectory( parentBuild.getOutputDirectory() );
+        }
 
-            if ( childBuild.getTestOutputDirectory() == null )
-            {
-                childBuild.setTestOutputDirectory( parentBuild.getTestOutputDirectory() );
-            }
+        if ( childBuild.getTestOutputDirectory() == null )
+        {
+            childBuild.setTestOutputDirectory( parentBuild.getTestOutputDirectory() );
+        }
 
-            if ( childBuild.getFinalName() == null )
-            {
-                childBuild.setFinalName( parentBuild.getFinalName() );
-            }
+        if ( childBuild.getFinalName() == null )
+        {
+            childBuild.setFinalName( parentBuild.getFinalName() );
+        }
 
-            List resources = childBuild.getResources();
-            if ( resources == null || resources.isEmpty() )
-            {
-                childBuild.setResources( parentBuild.getResources() );
-            }
+        List resources = childBuild.getResources();
+        if ( resources == null || resources.isEmpty() )
+        {
+            childBuild.setResources( parentBuild.getResources() );
+        }
 
-            resources = childBuild.getTestResources();
-            if ( resources == null || resources.isEmpty() )
-            {
-                childBuild.setTestResources( parentBuild.getTestResources() );
-            }
+        resources = childBuild.getTestResources();
+        if ( resources == null || resources.isEmpty() )
+        {
+            childBuild.setTestResources( parentBuild.getTestResources() );
         }
+
+        // Plugins are not aggregated, but management is
+
+        assemblePluginManagementInheritance( childBuild, parentBuild );
     }
 
     private void assembleScmInheritance( Model child, Model parent )



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org