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/06/21 06:20:20 UTC

svn commit: r191621 - /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java

Author: jdcasey
Date: Mon Jun 20 21:20:18 2005
New Revision: 191621

URL: http://svn.apache.org/viewcvs?rev=191621&view=rev
Log:
Forcing collision of plugin-execution id's in non-inherited, direct-goal invocation scenarios.

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

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=191621&r1=191620&r2=191621&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Mon Jun 20 21:20:18 2005
@@ -243,13 +243,16 @@
         }
         
         MavenProject project = assembleLineage( model, lineage, aggregatedRemoteWagonRepositories, localRepository );
-
+        
+        // we don't have to force the collision exception for superModel here, it's already been done in getSuperModel()
         Model previous = superModel;
-
+        
         for ( Iterator i = lineage.iterator(); i.hasNext(); )
         {
             Model current = ( (MavenProject) i.next() ).getModel();
 
+            forcePluginExecutionIdCollision( current );
+
             modelInheritanceAssembler.assembleModelInheritance( current, previous );
 
             previous = current;
@@ -266,6 +269,28 @@
         return project;
     }
 
+    private void forcePluginExecutionIdCollision( Model model )
+    {
+        Build build = model.getBuild();
+        
+        if ( build != null )
+        {
+            List plugins = build.getPlugins();
+            
+            if ( plugins != null )
+            {
+                for ( Iterator it = plugins.iterator(); it.hasNext(); )
+                {
+                    Plugin plugin = (Plugin) it.next();
+                    
+                    // this will force an IllegalStateException, even if we don't have to do inheritance assembly.
+                    plugin.getExecutionsAsMap();
+                }
+            }
+        }
+    }
+    
+
     /**
      * @todo can this take in a model instead of a project and still be successful?
      * @todo In fact, does project REALLY need a MavenProject as a parent? Couldn't it have just a wrapper around a
@@ -541,7 +566,11 @@
     {
         URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" );
 
-        return readModel( url );
+        Model superModel = readModel( url );
+        
+        forcePluginExecutionIdCollision( superModel );
+
+        return superModel;
     }
 
     public void contextualize( Context context )



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