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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to