You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2011/02/13 15:26:58 UTC
svn commit: r1070242 -
/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
Author: bentmann
Date: Sun Feb 13 14:26:57 2011
New Revision: 1070242
URL: http://svn.apache.org/viewvc?rev=1070242&view=rev
Log:
[MNG-5014] [regression] MavenProject.getParent().isExecutionRoot() not properly set
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.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=1070242&r1=1070241&r2=1070242&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 Sun Feb 13 14:26:57 2011
@@ -141,7 +141,8 @@ public class DefaultProjectBuilder
modelProblems = result.getProblems();
- initProject( project, result, new HashMap<File, Boolean>() );
+ initProject( project, Collections.<String, MavenProject> emptyMap(), result,
+ new HashMap<File, Boolean>() );
}
else if ( configuration.isResolveDependencies() )
{
@@ -302,9 +303,11 @@ public class DefaultProjectBuilder
ReactorModelCache modelCache = new ReactorModelCache();
+ Map<String, MavenProject> projectIndex = new HashMap<String, MavenProject>( 256 );
+
boolean noErrors =
- build( results, interimResults, pomFiles, new LinkedHashSet<File>(), true, recursive, config, modelPool,
- modelCache );
+ build( results, interimResults, projectIndex, pomFiles, new LinkedHashSet<File>(), true, recursive, config,
+ modelPool, modelCache );
populateReactorModelPool( modelPool, interimResults );
@@ -313,8 +316,8 @@ public class DefaultProjectBuilder
try
{
noErrors =
- build( results, new ArrayList<MavenProject>(), interimResults, config, new HashMap<File, Boolean>() )
- && noErrors;
+ build( results, new ArrayList<MavenProject>(), projectIndex, interimResults, config,
+ new HashMap<File, Boolean>() ) && noErrors;
}
finally
{
@@ -330,9 +333,9 @@ public class DefaultProjectBuilder
}
private boolean build( List<ProjectBuildingResult> results, List<InterimResult> interimResults,
- List<File> pomFiles, Set<File> aggregatorFiles, boolean isRoot, boolean recursive,
- ProjectBuildingRequest config, ReactorModelPool reactorModelPool,
- ReactorModelCache modelCache )
+ Map<String, MavenProject> projectIndex, List<File> pomFiles, Set<File> aggregatorFiles,
+ boolean isRoot, boolean recursive, ProjectBuildingRequest config,
+ ReactorModelPool reactorModelPool, ReactorModelCache modelCache )
{
boolean noErrors = true;
@@ -340,7 +343,7 @@ public class DefaultProjectBuilder
{
aggregatorFiles.add( pomFile );
- if ( !build( results, interimResults, pomFile, aggregatorFiles, isRoot, recursive, config,
+ if ( !build( results, interimResults, projectIndex, pomFile, aggregatorFiles, isRoot, recursive, config,
reactorModelPool, modelCache ) )
{
noErrors = false;
@@ -352,8 +355,9 @@ public class DefaultProjectBuilder
return noErrors;
}
- private boolean build( List<ProjectBuildingResult> results, List<InterimResult> interimResults, File pomFile,
- Set<File> aggregatorFiles, boolean isRoot, boolean recursive, ProjectBuildingRequest config,
+ private boolean build( List<ProjectBuildingResult> results, List<InterimResult> interimResults,
+ Map<String, MavenProject> projectIndex, File pomFile, Set<File> aggregatorFiles,
+ boolean isRoot, boolean recursive, ProjectBuildingRequest config,
ReactorModelPool reactorModelPool, ReactorModelCache modelCache )
{
boolean noErrors = true;
@@ -377,6 +381,8 @@ public class DefaultProjectBuilder
Model model = result.getEffectiveModel();
+ projectIndex.put( result.getModelIds().get( 0 ), project );
+
InterimResult interimResult = new InterimResult( pomFile, request, result, listener, isRoot );
interimResults.add( interimResult );
@@ -456,8 +462,8 @@ public class DefaultProjectBuilder
interimResult.modules = new ArrayList<InterimResult>();
- if ( !build( results, interimResult.modules, moduleFiles, aggregatorFiles, false, recursive, config,
- reactorModelPool, modelCache ) )
+ if ( !build( results, interimResult.modules, projectIndex, moduleFiles, aggregatorFiles, false,
+ recursive, config, reactorModelPool, modelCache ) )
{
noErrors = false;
}
@@ -512,7 +518,8 @@ public class DefaultProjectBuilder
}
private boolean build( List<ProjectBuildingResult> results, List<MavenProject> projects,
- List<InterimResult> interimResults, ProjectBuildingRequest config, Map<File, Boolean> profilesXmls )
+ Map<String, MavenProject> projectIndex, List<InterimResult> interimResults,
+ ProjectBuildingRequest config, Map<File, Boolean> profilesXmls )
{
boolean noErrors = true;
@@ -523,10 +530,11 @@ public class DefaultProjectBuilder
ModelBuildingResult result = modelBuilder.build( interimResult.request, interimResult.result );
MavenProject project = interimResult.listener.getProject();
- initProject( project, result, profilesXmls );
+ initProject( project, projectIndex, result, profilesXmls );
List<MavenProject> modules = new ArrayList<MavenProject>();
- noErrors = build( results, modules, interimResult.modules, config, profilesXmls ) && noErrors;
+ noErrors =
+ build( results, modules, projectIndex, interimResult.modules, config, profilesXmls ) && noErrors;
projects.addAll( modules );
projects.add( project );
@@ -547,7 +555,8 @@ public class DefaultProjectBuilder
return noErrors;
}
- private void initProject( MavenProject project, ModelBuildingResult result, Map<File, Boolean> profilesXmls )
+ private void initProject( MavenProject project, Map<String, MavenProject> projects, ModelBuildingResult result,
+ Map<File, Boolean> profilesXmls )
{
Model model = result.getEffectiveModel();
@@ -559,6 +568,8 @@ public class DefaultProjectBuilder
File parentPomFile = result.getRawModel( result.getModelIds().get( 1 ) ).getPomFile();
project.setParentFile( parentPomFile );
+ project.setParent( projects.get( result.getModelIds().get( 1 ) ) );
+
Artifact projectArtifact =
repositorySystem.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), null,
project.getPackaging() );