Author: bentmann Date: Fri Sep 18 15:46:26 2009 New Revision: 816681 URL: http://svn.apache.org/viewvc?rev=816681&view=rev Log: o Restored MavenProject.getCollectedProjects()
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=816681&r1=816680&r2=816681&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Fri Sep 18 15:46:26 2009 @@ -18,6 +18,7 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.apache.maven.Maven; @@ -265,45 +266,23 @@ ReactorModelCache modelCache = new ReactorModelCache(); - boolean errors = + boolean noErrors = build( results, interimResults, pomFiles, true, recursive, config, reactorModelPool, modelCache ); - for ( InterimResult interimResult : interimResults ) - { - Model model = interimResult.result.getEffectiveModel(); - reactorModelPool.put( model.getGroupId(), model.getArtifactId(), model.getVersion(), model.getPomFile() ); - } + populateReactorModelPool( reactorModelPool, interimResults ); ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader(); try { - for ( InterimResult interimResult : interimResults ) - { - try - { - ModelBuildingResult result = modelBuilder.build( interimResult.request, interimResult.result ); - - MavenProject project = toProject( result, config, interimResult.listener ); - project.setExecutionRoot( interimResult.root ); - - results.add( new DefaultProjectBuildingResult( project, result.getProblems(), null ) ); - } - catch ( ModelBuildingException e ) - { - results.add( new DefaultProjectBuildingResult( e.getModelId(), interimResult.pomFile, - e.getProblems() ) ); - - errors = true; - } - } + noErrors = build( results, new ArrayList<MavenProject>(), interimResults, config ) && noErrors; } finally { Thread.currentThread().setContextClassLoader( oldContextClassLoader ); } - if ( errors ) + if ( !noErrors ) { throw new ProjectBuildingException( results ); } @@ -315,7 +294,7 @@ List<File> pomFiles, boolean isRoot, boolean recursive, ProjectBuildingRequest config, ReactorModelPool reactorModelPool, ReactorModelCache modelCache ) { - boolean errors = false; + boolean noErrors = true; for ( File pomFile : pomFiles ) { @@ -334,7 +313,8 @@ Model model = result.getEffectiveModel(); - interimResults.add( new InterimResult( pomFile, request, result, listener, isRoot ) ); + InterimResult interimResult = new InterimResult( pomFile, request, result, listener, isRoot ); + interimResults.add( interimResult ); if ( recursive && !model.getModules().isEmpty() ) { @@ -363,7 +343,7 @@ + " does not exist", ModelProblem.Severity.ERROR, model, -1, -1, null ); result.getProblems().add( problem ); - errors = true; + noErrors = false; continue; } @@ -388,10 +368,12 @@ moduleFiles.add( moduleFile ); } - if ( build( results, interimResults, moduleFiles, false, recursive, config, reactorModelPool, - modelCache ) ) + interimResult.modules = new ArrayList<InterimResult>(); + + if ( !build( results, interimResult.modules, moduleFiles, false, recursive, config, + reactorModelPool, modelCache ) ) { - errors = true; + noErrors = false; } } } @@ -399,11 +381,11 @@ { results.add( new DefaultProjectBuildingResult( e.getModelId(), pomFile, e.getProblems() ) ); - errors = true; + noErrors = false; } } - return errors; + return noErrors; } static class InterimResult @@ -419,6 +401,8 @@ boolean root; + List<InterimResult> modules = Collections.emptyList(); + InterimResult( File pomFile, ModelBuildingRequest request, ModelBuildingResult result, DefaultModelBuildingListener listener, boolean root ) { @@ -431,6 +415,54 @@ } + private void populateReactorModelPool( ReactorModelPool reactorModelPool, List<InterimResult> interimResults ) + { + for ( InterimResult interimResult : interimResults ) + { + Model model = interimResult.result.getEffectiveModel(); + reactorModelPool.put( model.getGroupId(), model.getArtifactId(), model.getVersion(), model.getPomFile() ); + + populateReactorModelPool( reactorModelPool, interimResult.modules ); + } + } + + private boolean build( List<ProjectBuildingResult> results, List<MavenProject> projects, + List<InterimResult> interimResults, ProjectBuildingRequest config ) + { + boolean noErrors = true; + + for ( InterimResult interimResult : interimResults ) + { + try + { + ModelBuildingResult result = modelBuilder.build( interimResult.request, interimResult.result ); + + MavenProject project = toProject( result, config, interimResult.listener ); + + projects.add( project ); + + results.add( new DefaultProjectBuildingResult( project, result.getProblems(), null ) ); + + project.setExecutionRoot( interimResult.root ); + + List<MavenProject> modules = new ArrayList<MavenProject>(); + noErrors = build( results, modules, interimResult.modules, config ) && noErrors; + + projects.addAll( modules ); + + project.setCollectedProjects( modules ); + } + catch ( ModelBuildingException e ) + { + results.add( new DefaultProjectBuildingResult( e.getModelId(), interimResult.pomFile, e.getProblems() ) ); + + noErrors = false; + } + } + + return noErrors; + } + private MavenProject toProject( ModelBuildingResult result, ProjectBuildingRequest configuration, DefaultModelBuildingListener listener ) { Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=816681&r1=816680&r2=816681&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Fri Sep 18 15:46:26 2009 @@ -112,6 +112,8 @@ private MavenProject executionProject; + private List<MavenProject> collectedProjects; + private List<String> compileSourceRoots = new ArrayList<String>(); private List<String> testCompileSourceRoots = new ArrayList<String>(); @@ -1477,6 +1479,16 @@ this.executionProject = executionProject; } + public List<MavenProject> getCollectedProjects() + { + return collectedProjects; + } + + public void setCollectedProjects( List<MavenProject> collectedProjects ) + { + this.collectedProjects = collectedProjects; + } + /** * Direct dependencies that this project has. *