Author: jdcasey
Date: Thu Aug 14 20:35:01 2008
New Revision: 686134

URL: http://svn.apache.org/viewvc?rev=686134&view=rev
Log:
[MNG-3694] Fix detection of aggregator plugins and those that might potentially 
use reactorProjects (even via session parameters), and make sure when this 
happens all projects have execution projects if that mojo forks.

Modified:
    maven/components/branches/maven-2.0.10-RC/build.xml
    
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/branches/maven-2.0.10-RC/pom.xml

Modified: maven/components/branches/maven-2.0.10-RC/build.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/build.xml?rev=686134&r1=686133&r2=686134&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/build.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/build.xml Thu Aug 14 20:35:01 2008
@@ -159,6 +159,7 @@
 
   <target name="maven-compile" depends="compile-boot" description="compiles 
Maven using the bootstrap Maven, skipping automated tests">
     <java fork="true" classname="org.apache.maven.cli.MavenCli" 
failonerror="true">
+      <jvmarg value="-Xmx256M"/>
       <classpath refid="maven.classpath"/>
       <arg value="-B"/>
       <arg value="clean"/>

Modified: 
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=686134&r1=686133&r2=686134&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 (original)
+++ 
maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 Thu Aug 14 20:35:01 2008
@@ -567,10 +567,10 @@
 
             calculateConcreteState( project, session );
             
-            boolean usesAllProjects = false;
-            
             PlexusConfiguration configuration = 
mojoDescriptor.getMojoConfiguration();
-            if ( usesSessionOrReactorProjects( configuration ) )
+            boolean usesAllProjects = mojoDescriptor.isAggregator() || 
usesSessionOrReactorProjects( configuration );
+            
+            if ( usesAllProjects )
             {
                 calculateAllConcreteStates( session );
             }
@@ -599,14 +599,13 @@
                         hasFork = true;
                     }
                 }
-                
             }
             
             if ( hasFork )
             {
                 createExecutionProject( project, session );
                 
-                if ( mojoDescriptor.isAggregator() )
+                if ( usesAllProjects )
                 {
                     List reactorProjects = session.getSortedProjects();
                     for ( Iterator it = reactorProjects.iterator(); 
it.hasNext(); )
@@ -656,12 +655,13 @@
                 // TODO: Would be nice to find a way to cause the execution 
project to stay in a concrete state...
                 calculateConcreteState( project.getExecutionProject(), session 
);
                 
-                if ( mojoDescriptor.isAggregator() )
+                if ( usesAllProjects )
                 {
                     List reactorProjects = session.getSortedProjects();
                     for ( Iterator it = reactorProjects.iterator(); 
it.hasNext(); )
                     {
                         MavenProject reactorProject = (MavenProject) it.next();
+                        calculateConcreteState( reactorProject, session );
                         calculateConcreteState( 
reactorProject.getExecutionProject(), session );
                     }
                 }
@@ -705,7 +705,7 @@
             {
                 project.setExecutionProject( null );
                 
-                if ( mojoDescriptor.isAggregator() )
+                if ( usesAllProjects )
                 {
                     List reactorProjects = session.getSortedProjects();
                     for ( Iterator it = reactorProjects.iterator(); 
it.hasNext(); )
@@ -737,33 +737,16 @@
 
     private boolean usesSessionOrReactorProjects( PlexusConfiguration 
configuration )
     {
-        String value = null;
-        try
-        {
-            value = configuration.getValue();
-        }
-        catch ( PlexusConfigurationException e )
-        {
-            // ignore it.
-        }
+        String value = configuration != null ? String.valueOf( configuration ) 
: null;
         
         if ( value != null )
         {
-            if ( value.startsWith( "${session" ) || value.equals( 
"${reactorProjects}" ) )
+            if ( value.indexOf( "${session" ) > -1 || value.indexOf( 
"${reactorProjects}" ) > -1 )
             {
                 return true;
             }
         }
         
-        PlexusConfiguration[] children = configuration.getChildren();
-        if ( children != null )
-        {
-            for ( int i = 0; i < children.length; i++ )
-            {
-                return usesSessionOrReactorProjects( children[i] );
-            }
-        }
-        
         return false;
     }
 

Modified: maven/components/branches/maven-2.0.10-RC/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/pom.xml?rev=686134&r1=686133&r2=686134&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.10-RC/pom.xml (original)
+++ maven/components/branches/maven-2.0.10-RC/pom.xml Thu Aug 14 20:35:01 2008
@@ -244,7 +244,7 @@
   </modules>
 
   <properties>
-    <mavenVersion>2.0.10-RC7</mavenVersion>
+    <mavenVersion>2.0.10-RC8-SNAPSHOT</mavenVersion>
     <wagonVersion>1.0-beta-4</wagonVersion>
   </properties>
 


Reply via email to