You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/03/27 02:05:27 UTC
svn commit: r641671 - in
/maven/components/branches/maven-2.0.x/maven-project/src:
main/java/org/apache/maven/project/ test/java/org/apache/maven/project/
test/java/org/apache/maven/project/imports/t01/
Author: jdcasey
Date: Wed Mar 26 18:05:26 2008
New Revision: 641671
URL: http://svn.apache.org/viewvc?rev=641671&view=rev
Log:
[MNG-3482] This moves the mergeManagedDependencies(..) call to within processProjectLogic(..) to allow it to execute between interpolation and defaults-injection (where its results will be used), so the managed-dependency information can be interpolated for versions, etc. ahead of its first use. Tests will follow.
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=641671&r1=641670&r2=641671&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Mar 26 18:05:26 2008
@@ -289,7 +289,7 @@
try
{
- project = processProjectLogic( "<Super-POM>", project, null, null, true );
+ project = processProjectLogic( "<Super-POM>", project, null, null, null, null, true, true );
project.setExecutionRoot( true );
@@ -846,11 +846,9 @@
// merge any duplicated plugin definitions together, using the first appearance as the dominant one.
ModelUtils.mergeDuplicatePluginDefinitions( project.getModel().getBuild() );
- mergeManagedDependencies(project.getModel(), localRepository, repositories);
-
try
{
- project = processProjectLogic( pomLocation, project, externalProfileManager, projectDir, strict );
+ project = processProjectLogic( pomLocation, project, externalProfileManager, projectDir, localRepository, repositories, strict, false );
}
catch ( ModelInterpolationException e )
{
@@ -938,7 +936,10 @@
MavenProject project,
ProfileManager profileMgr,
File projectDir,
- boolean strict )
+ ArtifactRepository localRepository,
+ List remoteRepositories,
+ boolean strict,
+ boolean isSuperPom )
throws ProjectBuildingException, ModelInterpolationException, InvalidRepositoryException
{
Model model = project.getModel();
@@ -981,6 +982,12 @@
context.putAll( System.getProperties() );
model = modelInterpolator.interpolate( model, context, strict );
+ // MNG-3482: Make sure depMgmt is interpolated before merging.
+ if ( !isSuperPom )
+ {
+ mergeManagedDependencies( model, localRepository, remoteRepositories );
+ }
+
// interpolation is before injection, because interpolation is off-limits in the injected variables
modelDefaultsInjector.injectDefaults( model );
@@ -1366,7 +1373,7 @@
{
Dependency dep = (Dependency) iter.next();
depsMap.put( dep.getManagementKey(), dep );
- if (dep.getType().equals("pom") && Artifact.SCOPE_IMPORT.equals(dep.getScope()))
+ if ( dep.getType().equals( "pom" ) && Artifact.SCOPE_IMPORT.equals( dep.getScope() ) )
{
doInclude = true;
}
@@ -1378,7 +1385,8 @@
while (iter.hasNext())
{
Dependency dep = (Dependency)iter.next();
- if (dep.getType().equals("pom") && Artifact.SCOPE_IMPORT.equals(dep.getScope()))
+ if ( dep.getType().equals( "pom" )
+ && Artifact.SCOPE_IMPORT.equals( dep.getScope() ) )
{
Artifact artifact = artifactFactory.createProjectArtifact( dep.getGroupId(), dep.getArtifactId(),
dep.getVersion(), dep.getScope() );
Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java?rev=641671&r1=641670&r2=641671&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java Wed Mar 26 18:05:26 2008
@@ -23,6 +23,7 @@
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.project.validation.ModelValidationResult;
import org.codehaus.plexus.PlexusTestCase;
import java.io.File;
@@ -103,7 +104,22 @@
protected MavenProject getProjectWithDependencies( File pom )
throws Exception
{
- return projectBuilder.buildWithDependencies( pom, getLocalRepository(), null );
+ try
+ {
+ return projectBuilder.buildWithDependencies( pom, getLocalRepository(), null );
+ }
+ catch ( Exception e )
+ {
+ if ( e instanceof InvalidProjectModelException )
+ {
+ ModelValidationResult validationResult = ((InvalidProjectModelException)e).getValidationResult();
+ String message = "In: " + pom + "(" + ((ProjectBuildingException) e).getProjectId() + ")\n\n" + validationResult.render( " " );
+ System.out.println( message );
+ fail( message );
+ }
+
+ throw e;
+ }
}
protected MavenProject getProject( File pom )
Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java?rev=641671&r1=641670&r2=641671&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java Wed Mar 26 18:05:26 2008
@@ -19,12 +19,12 @@
* under the License.
*/
-import java.io.File;
-import java.util.Map;
-
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.imports.AbstractProjectImportsTestCase;
-import org.apache.maven.artifact.Artifact;
+
+import java.io.File;
+import java.util.Map;
/**