You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2009/04/24 23:33:00 UTC
svn commit: r768421 - in /maven/components/trunk:
maven-mercury/src/main/java/org/apache/maven/mercury/
maven-model-builder/src/main/java/org/apache/maven/model/
maven-project/src/main/java/org/apache/maven/project/
maven-project/src/test/java/org/apac...
Author: sisbell
Date: Fri Apr 24 21:32:57 2009
New Revision: 768421
URL: http://svn.apache.org/viewvc?rev=768421&view=rev
Log:
Now we do interpolation before management processing. This allow depMng/pluginMng to have interpolated values for group/artifact ids.
Added:
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml
Modified:
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ProcessorContext.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
Modified: maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java?rev=768421&r1=768420&r2=768421&view=diff
==============================================================================
--- maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java (original)
+++ maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java Fri Apr 24 21:32:57 2009
@@ -119,7 +119,7 @@
}
iModels.get(0).setMostSpecialized(true);
- return new MavenDomainModel(ProcessorContext.build(iModels, null)).getDependencyMetadata();
+ return new MavenDomainModel( ProcessorContext.processManagementNodes(ProcessorContext.build(iModels, null).getModel() ) ).getDependencyMetadata();
} catch (IOException e) {
throw new DependencyProcessorException(e);
}
Modified: maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java?rev=768421&r1=768420&r2=768421&view=diff
==============================================================================
--- maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java (original)
+++ maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java Fri Apr 24 21:32:57 2009
@@ -27,6 +27,7 @@
import org.apache.maven.mercury.artifact.ArtifactMetadata;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.PomClassicDomainModel;
@@ -54,6 +55,12 @@
super(model.getModel());
}
+ public MavenDomainModel(Model model)
+ throws IOException
+ {
+ super(model);
+ }
+
public boolean hasParent()
{
return getParentMetadata() != null;
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ProcessorContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ProcessorContext.java?rev=768421&r1=768420&r2=768421&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ProcessorContext.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ProcessorContext.java Fri Apr 24 21:32:57 2009
@@ -251,6 +251,14 @@
}
}
}
+
+ return target;
+
+ }
+
+ public static Model processManagementNodes(Model target)
+ throws IOException
+ {
// Dependency Management
DependencyManagementProcessor depProc = new DependencyManagementProcessor();
@@ -261,16 +269,14 @@
}
// Plugin Management
-
PluginsManagementProcessor procMng = new PluginsManagementProcessor();
if ( target.getBuild() != null && target.getBuild().getPluginManagement() != null)
{
procMng.process( null, new ArrayList<Plugin>( target.getBuild().getPluginManagement().getPlugins() ),
target.getBuild().getPlugins(), true );
}
-
- return target;
-
+
+ return target;
}
public static Profile copyOfProfile(Profile profile)
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=768421&r1=768420&r2=768421&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Fri Apr 24 21:32:57 2009
@@ -160,14 +160,22 @@
}
domainModel = ProcessorContext.mergeProfilesIntoModel( externalProfiles, domainModel );
+
}
catch ( IOException e )
{
throw new ProjectBuildingException("", "");
}
- //Interpolation
- MavenProject project = interpolateDomainModel( domainModel, configuration, pomFile );
+ //Interpolation & Management
+ MavenProject project;
+ try {
+ Model model = ProcessorContext.processManagementNodes(interpolateDomainModel( domainModel, configuration, pomFile ));
+ project = this.fromDomainModelToMavenProject(model, domainModel.getParentFile(), configuration, pomFile);
+ } catch (IOException e) {
+ throw new ProjectBuildingException("", "");
+ }
+
project.setActiveProfiles( projectProfiles );
Build build = project.getBuild();
@@ -269,7 +277,14 @@
{
throw new ProjectBuildingException("", "");
}
- project = interpolateDomainModel( domainModel, configuration, artifact.getFile() );
+
+ try {
+ Model model = ProcessorContext.processManagementNodes(interpolateDomainModel( domainModel, configuration, artifact.getFile() ));
+ project = this.fromDomainModelToMavenProject(model, domainModel.getParentFile(), configuration, artifact.getFile());
+ } catch (IOException e) {
+ throw new ProjectBuildingException("", "");
+ }
+
project.setActiveProfiles( projectProfiles );
artifact.setFile( artifact.getFile() );
project.setVersion( artifact.getVersion() );
@@ -368,7 +383,7 @@
return new MavenProjectBuildingResult( project, result );
}
- private MavenProject interpolateDomainModel( PomClassicDomainModel domainModel, ProjectBuilderConfiguration config, File projectDescriptor )
+ private Model interpolateDomainModel( PomClassicDomainModel domainModel, ProjectBuilderConfiguration config, File projectDescriptor )
throws ProjectBuildingException
{
Model model;
@@ -403,9 +418,15 @@
throw new ProjectBuildingException(projectId, "", projectDescriptor, e);
}
+ return model;
+ }
+
+ private MavenProject fromDomainModelToMavenProject(Model model, File parentFile, ProjectBuilderConfiguration config, File projectDescriptor)
+ throws InvalidProjectModelException, IOException
+ {
MavenProject project;
-
+ String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
try
{
project = new MavenProject( model, repositorySystem, this, config );
@@ -415,7 +436,7 @@
Artifact projectArtifact = repositorySystem.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), null, project.getPackaging() );
project.setArtifact( projectArtifact );
- project.setParentFile( domainModel.getParentFile() );
+ project.setParentFile( parentFile );
}
catch ( InvalidRepositoryException e )
@@ -423,7 +444,7 @@
throw new InvalidProjectModelException( projectId, e.getMessage(), projectDescriptor, e );
}
- return project;
+ return project;
}
private PomClassicDomainModel build( String projectId, File pomFile, ProjectBuilderConfiguration projectBuilderConfiguration )
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=768421&r1=768420&r2=768421&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java Fri Apr 24 21:32:57 2009
@@ -1419,13 +1419,23 @@
assertNull("Scope not null: " + scope, scope);
System.out.println(pom.getDomainModel().asString());
- }
+ }
+
public void testDependencyScope()
throws Exception
{
PomTestWrapper pom = buildPom( "dependency-scope/sub" );
- System.out.println(pom.getDomainModel().asString());
- }
+ // System.out.println(pom.getDomainModel().asString());
+ }
+
+ //This will fail on a validation error if incorrect
+ public void testDependencyManagementWithInterpolation()
+ throws Exception
+ {
+ PomTestWrapper pom = buildPom( "dependency-management-with-interpolation/sub" );
+ }
+
+
private void assertPathSuffixEquals( String expected, Object actual )
{
String a = actual.toString();
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml?rev=768421&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml Fri Apr 24 21:32:57 2009
@@ -0,0 +1,19 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ <packaging>pom</packaging>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <artifactId>asm-util</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml?rev=768421&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml Fri Apr 24 21:32:57 2009
@@ -0,0 +1,17 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>asm-xml</artifactId>
+ <version>3.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-util</artifactId>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file