Author: jdcasey
Date: Wed Jun 25 13:28:45 2008
New Revision: 671647
URL: http://svn.apache.org/viewvc?rev=671647&view=rev
Log:
Defining build paths in terms of project basedir using expressions (in the
super-pom), and fixing ITs.
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/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
maven/components/branches/maven-2.0.x/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.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=671647&r1=671646&r2=671647&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 Jun 25 13:28:45 2008
@@ -993,7 +993,7 @@
model.setBuild( ModelUtils.cloneBuild( dynamicBuild ) );
- model = modelInterpolator.interpolate( model, project.getBasedir(),
config, getLogger().isDebugEnabled() );
+ model = modelInterpolator.interpolate( model, projectDir, config,
getLogger().isDebugEnabled() );
mergeDeterministicBuildElements( model.getBuild(), dynamicBuild );
@@ -1851,7 +1851,10 @@
Model model2 = ModelUtils.cloneModel( model );
- pathTranslator.alignToBaseDirectory( model, basedir );
+ if ( basedir != null )
+ {
+ pathTranslator.alignToBaseDirectory( model, basedir );
+ }
project.preserveBuild( model2.getBuild() );
project.setBuild( model.getBuild() );
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java?rev=671647&r1=671646&r2=671647&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
(original)
+++
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
Wed Jun 25 13:28:45 2008
@@ -229,6 +229,11 @@
{
Logger logger = getLogger();
+ if ( logger != null && logger.isDebugEnabled() && projectDir == null )
+ {
+ logger.debug( "Null project directory from:", new Throwable() );
+ }
+
String timestampFormat = DEFAULT_BUILD_TIMESTAMP_FORMAT;
Properties modelProperties = model.getProperties();
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml?rev=671647&r1=671646&r2=671647&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.x/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
(original)
+++
maven/components/branches/maven-2.0.x/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
Wed Jun 25 13:28:45 2008
@@ -50,21 +50,21 @@
</pluginRepositories>
<build>
- <directory>target</directory>
- <outputDirectory>target/classes</outputDirectory>
+ <directory>${project.basedir}/target</directory>
+ <outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
- <testOutputDirectory>target/test-classes</testOutputDirectory>
- <sourceDirectory>src/main/java</sourceDirectory>
- <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
- <testSourceDirectory>src/test/java</testSourceDirectory>
+
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
+ <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
+
<scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
+ <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
- <directory>src/main/resources</directory>
+ <directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
- <directory>src/test/resources</directory>
+ <directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
<pluginManagement>
@@ -150,7 +150,7 @@
</build>
<reporting>
- <outputDirectory>target/site</outputDirectory>
+ <outputDirectory>${project.build.directory}/site</outputDirectory>
</reporting>
<profiles>
<profile>
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=671647&r1=671646&r2=671647&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
(original)
+++
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
Wed Jun 25 13:28:45 2008
@@ -26,7 +26,9 @@
import org.apache.maven.model.Repository;
import org.apache.maven.model.Resource;
import org.apache.maven.model.Scm;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
@@ -297,6 +299,24 @@
assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next()
).getDirectory() );
}
+ public void testShouldInterpolateUnprefixedBasedirExpression()
+ throws ModelInterpolationException, IOException
+ {
+ File basedir = new File( "/test/path" );
+ Model model = new Model();
+ Dependency dep = new Dependency();
+ dep.setSystemPath( "${basedir}/artifact.jar" );
+
+ model.addDependency( dep );
+
+ Model result = new RegexBasedModelInterpolator().interpolate( model,
basedir, new DefaultProjectBuilderConfiguration(), true );
+
+ List rDeps = result.getDependencies();
+ assertNotNull( rDeps );
+ assertEquals( 1, rDeps.size() );
+ assertEquals( new File( basedir, "artifact.jar" ).getPath(),
((Dependency)rDeps.get( 0 )).getSystemPath() );
+ }
+
// public void testPOMExpressionDoesNotUseSystemProperty()
// throws Exception
// {