jvanzyl 2003/12/29 12:05:49
Modified: maven-project/src/java/org/apache/maven/project
DefaultProjectBuilder.java Project.java
maven-project/src/test/org/apache/maven/project
DefaultProjectBuilderTest.java
Log:
o moving the directory alignment into the project because it can't happen
while inheritance processing is happening because if the child doesn't
have these values the parent's will be aligned to its base directory
and the child's alignment will not be triggered.
everything we are interested is in the build so when it is requested
for the first time we will align the directories.
Revision Changes Path
1.27 +0 -77
maven-components/maven-project/src/java/org/apache/maven/project/DefaultProjectBuilder.java
Index: DefaultProjectBuilder.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/java/org/apache/maven/project/DefaultProjectBuilder.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- DefaultProjectBuilder.java 29 Dec 2003 19:24:02 -0000 1.26
+++ DefaultProjectBuilder.java 29 Dec 2003 20:05:49 -0000 1.27
@@ -175,8 +175,6 @@
project.setArtifacts( artifactory.createArtifacts( project ) );
- alignDirectoryFieldsToBaseDirectory( project );
-
String mavenFinalName = project.getProperty( "maven.final.name" );
if ( mavenFinalName.indexOf( "${" ) >= 0 )
@@ -192,81 +190,6 @@
}
return project;
- }
-
- private void alignDirectoryFieldsToBaseDirectory( Project project )
- {
- // build.sourceDirectory
- // build.unitTestSourceDirectory
- // build.aspectSourceDirectory
- // build.resources.resource.directory
- // unitTest.resources.resource.directory
-
- if ( project.getBuild() != null )
- {
- Build build = project.getBuild();
-
- String s = build.getSourceDirectory();
-
- if ( requiresBaseDirectoryAlignment( s ) )
- {
- build.setSourceDirectory( new File(
project.getFile().getParentFile(), s ).getPath() );
- }
-
- s = build.getUnitTestSourceDirectory();
-
- if ( requiresBaseDirectoryAlignment( s ) )
- {
- build.setUnitTestSourceDirectory( new File(
project.getFile().getParentFile(), s ).getPath() );
- }
-
- s = build.getAspectSourceDirectory();
-
- if ( requiresBaseDirectoryAlignment( s ) )
- {
- build.setAspectSourceDirectory( new File(
project.getFile().getParentFile(), s ).getPath() );
- }
-
- List buildResources = build.getResources();
-
- for ( Iterator i = buildResources.iterator(); i.hasNext(); )
- {
- Resource resource = (Resource) i.next();
-
- s = resource.getDirectory();
-
- if ( requiresBaseDirectoryAlignment( s ) )
- {
- resource.setDirectory( new File(
project.getFile().getParentFile(), s ).getPath() );
-
- System.out.println( "resource.getDirectory() = " +
resource.getDirectory() );
- }
- }
-
- List unitTestResources = build.getResources();
-
- for ( Iterator i = unitTestResources.iterator(); i.hasNext(); )
- {
- Resource resource = (Resource) i.next();
-
- s = resource.getDirectory();
-
- if ( requiresBaseDirectoryAlignment( s ) )
- {
- resource.setDirectory( new File(
project.getFile().getParentFile(), s ).getPath() );
- }
- }
- }
- }
-
- private boolean requiresBaseDirectoryAlignment( String s )
- {
- if ( s != null && !s.startsWith( FILE_SEPARATOR ) )
- {
- return true;
- }
-
- return false;
}
/**
1.20 +88 -4
maven-components/maven-project/src/java/org/apache/maven/project/Project.java
Index: Project.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/java/org/apache/maven/project/Project.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- Project.java 28 Dec 2003 23:30:42 -0000 1.19
+++ Project.java 29 Dec 2003 20:05:49 -0000 1.20
@@ -11,6 +11,7 @@
import org.apache.maven.model.Organization;
import org.apache.maven.model.Repository;
import org.apache.maven.model.Version;
+import org.apache.maven.model.Resource;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
@@ -18,6 +19,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Iterator;
/**
* The concern of the project is provide runtime values based on the model.
@@ -508,6 +510,11 @@
public Build getBuild()
{
+ if ( ! alignedToBaseDirectory )
+ {
+ alignToBaseDirectory();
+ }
+
return getModel().getBuild();
}
@@ -660,9 +667,86 @@
{
String value = getProperty( key );
- if ( "true".equalsIgnoreCase( value )
- || "on".equalsIgnoreCase( value )
- || "1".equals( value ) )
+ if ( "true".equalsIgnoreCase( value )
+ || "on".equalsIgnoreCase( value )
+ || "1".equals( value ) )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ private String FILE_SEPARATOR = System.getProperty( "file.separator" );
+
+ private boolean alignedToBaseDirectory;
+
+ private void alignToBaseDirectory()
+ {
+ // build.sourceDirectory
+ // build.unitTestSourceDirectory
+ // build.aspectSourceDirectory
+ // build.resources.resource.directory
+ // unitTest.resources.resource.directory
+
+ Build build = getModel().getBuild();
+
+ if ( build != null )
+ {
+ String s = build.getSourceDirectory();
+
+ if ( requiresBaseDirectoryAlignment( s ) )
+ {
+ build.setSourceDirectory( new File( getFile().getParentFile(), s
).getPath() );
+ }
+
+ s = build.getUnitTestSourceDirectory();
+
+ if ( requiresBaseDirectoryAlignment( s ) )
+ {
+ build.setUnitTestSourceDirectory( new File(
getFile().getParentFile(), s ).getPath() );
+ }
+
+ s = build.getAspectSourceDirectory();
+
+ if ( requiresBaseDirectoryAlignment( s ) )
+ {
+ build.setAspectSourceDirectory( new File(
getFile().getParentFile(), s ).getPath() );
+ }
+
+ List buildResources = build.getResources();
+
+ for ( Iterator i = buildResources.iterator(); i.hasNext(); )
+ {
+ Resource resource = (Resource) i.next();
+
+ s = resource.getDirectory();
+
+ if ( requiresBaseDirectoryAlignment( s ) )
+ {
+ resource.setDirectory( new File( getFile().getParentFile(), s
).getPath() );
+ }
+ }
+
+ List unitTestResources = build.getResources();
+
+ for ( Iterator i = unitTestResources.iterator(); i.hasNext(); )
+ {
+ Resource resource = (Resource) i.next();
+
+ s = resource.getDirectory();
+
+ if ( requiresBaseDirectoryAlignment( s ) )
+ {
+ resource.setDirectory( new File( getFile().getParentFile(), s
).getPath() );
+ }
+ }
+ }
+ }
+
+ private boolean requiresBaseDirectoryAlignment( String s )
+ {
+ if ( s != null && !s.startsWith( FILE_SEPARATOR ) )
{
return true;
}
1.27 +4 -0
maven-components/maven-project/src/test/org/apache/maven/project/DefaultProjectBuilderTest.java
Index: DefaultProjectBuilderTest.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-project/src/test/org/apache/maven/project/DefaultProjectBuilderTest.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- DefaultProjectBuilderTest.java 29 Dec 2003 19:24:02 -0000 1.26
+++ DefaultProjectBuilderTest.java 29 Dec 2003 20:05:49 -0000 1.27
@@ -73,6 +73,8 @@
Project project = projectBuilder.build( f );
+ System.out.println( "project.getFile() = " + project.getFile() );
+
assertNotNull( "Test project can't be null!", project );
ModelTestHelper.testModelMapping( project.getModel() );
@@ -343,6 +345,8 @@
Build build = project.getBuild();
Resource resource = (Resource) build.getResources().get( 0 );
+
+ // We should not be picking up the parents values here.
assertTrue( resource.getDirectory().indexOf( ".." ) < 0 );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]