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>