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

svn commit: r165096 - /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java

Author: jdcasey
Date: Wed Apr 27 21:21:11 2005
New Revision: 165096

URL: http://svn.apache.org/viewcvs?rev=165096&view=rev
Log:
Corrected goal and plugin configuration injection (from managed info).

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java

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=165096&r1=165095&r2=165096&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 Apr 27 21:21:11 2005
@@ -18,6 +18,7 @@
 
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Goal;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginManagement;
@@ -89,18 +90,49 @@
         {
             plugin.setVersion( def.getVersion() );
         }
-        
-        List pluginGoals = plugin.getGoals();
-        if( pluginGoals == null || pluginGoals.isEmpty() )
+
+        Map defaultGoals = new TreeMap();
+
+        List defGoalList = def.getGoals();
+
+        if ( defGoalList != null )
         {
-            plugin.setGoals( def.getGoals() );
+            for ( Iterator it = defGoalList.iterator(); it.hasNext(); )
+            {
+                Goal defaultGoal = (Goal) it.next();
+
+                defaultGoals.put( defaultGoal.getId(), defaultGoal );
+            }
         }
-        
-        Xpp3Dom pluginConfiguration = (Xpp3Dom) plugin.getConfiguration();
-        if( pluginConfiguration == null )
+
+        List pluginGoals = plugin.getGoals();
+
+        if ( pluginGoals != null )
         {
-            plugin.setConfiguration( def.getConfiguration() );
+            for ( Iterator it = pluginGoals.iterator(); it.hasNext(); )
+            {
+                Goal pluginGoal = (Goal) it.next();
+
+                Goal defaultGoal = (Goal) defaultGoals.get( pluginGoal.getId() );
+
+                if ( defaultGoal != null )
+                {
+                    Xpp3Dom pluginGoalConfig = (Xpp3Dom) pluginGoal.getConfiguration();
+                    Xpp3Dom defaultGoalConfig = (Xpp3Dom) defaultGoal.getConfiguration();
+
+                    pluginGoalConfig = Xpp3Dom.mergeXpp3Dom( pluginGoalConfig, defaultGoalConfig );
+
+                    pluginGoal.setConfiguration( pluginGoalConfig );
+                }
+            }
         }
+
+        Xpp3Dom pluginConfiguration = (Xpp3Dom) plugin.getConfiguration();
+        Xpp3Dom defaultConfiguration = (Xpp3Dom) def.getConfiguration();
+
+        pluginConfiguration = Xpp3Dom.mergeXpp3Dom( pluginConfiguration, defaultConfiguration );
+
+        plugin.setConfiguration( pluginConfiguration );
     }
 
     private void injectDependencyDefaults( List dependencies, DependencyManagement dependencyManagement )



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