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]

Reply via email to