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
 //    {


Reply via email to