jvanzyl     2003/12/28 15:36:48

  Modified:    maven-project/src/java/org/apache/maven/project
                        DefaultProjectBuilder.java
  Log:
  o look for maven.final.name and replace it. POM values interpolated in properties
    files are a no no in 1.1+. Don't need it anyway in this case as we could certainly
    change the plugin to just use the POM directly anyway if a real value isn't set.
  
  Revision  Changes    Path
  1.22      +55 -3     
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.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- DefaultProjectBuilder.java        27 Dec 2003 04:37:55 -0000      1.21
  +++ DefaultProjectBuilder.java        28 Dec 2003 23:36:48 -0000      1.22
  @@ -33,6 +33,8 @@
   
       private Artifactory artifactory;
   
  +    private String FILE_SEPARATOR = System.getProperty( "file.separator" );
  +
       // ----------------------------------------------------------------------
       // Protected methods to be used by the Maven facade.
       // ----------------------------------------------------------------------
  @@ -80,15 +82,22 @@
           {
               modelToExtend = StringUtils.interpolate( modelToExtend, properties );
   
  -            File parentModel = new File( modelToExtend );
  +            File parentModel;
  +
  +            if ( modelToExtend.startsWith( FILE_SEPARATOR ) )
  +            {
  +                parentModel = new File( modelToExtend );
  +            }
  +            else
  +            {
  +                parentModel = new File( projectDescriptor.getParentFile(), 
modelToExtend );
  +            }
   
               Project parent = build( parentModel );
   
               project.setParent( parent );
   
               setupModelInheritance( project.getModel(), parent.getModel() );
  -
  -            //project.setInterpolatedModel( parent.getInterpolatedModel() );
           }
   
           project.setProperties( properties );
  @@ -97,7 +106,50 @@
   
           project.setArtifacts( artifactory.createArtifacts( project ) );
   
  +        alignDirectoryFieldsToBaseDirectory( project );
  +
  +        String mavenFinalName = project.getProperty( "maven.final.name" );
  +
  +        if ( mavenFinalName.indexOf( "${" ) >= 0 )
  +        {
  +            project.setProperty( "maven.final.name", project.getArtifactId() + "-" 
+ project.getVersion() );
  +        }
  +
           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 )
  +        {
  +
  +            String s = project.getBuild().getSourceDirectory();
  +
  +            if ( s != null && !s.startsWith( FILE_SEPARATOR ) )
  +            {
  +                project.getBuild().setSourceDirectory( new File( 
project.getFile().getParentFile(), s ).getPath() );
  +            }
  +
  +            s = project.getBuild().getUnitTestSourceDirectory();
  +
  +            if ( s != null && !s.startsWith( FILE_SEPARATOR ) )
  +            {
  +                project.getBuild().setUnitTestSourceDirectory( new File( 
project.getFile().getParentFile(), s ).getPath() );
  +            }
  +
  +            s = project.getBuild().getAspectSourceDirectory();
  +
  +            if ( s != null && !s.startsWith( FILE_SEPARATOR ) )
  +            {
  +                project.getBuild().setAspectSourceDirectory( new File( 
project.getFile().getParentFile(), s ).getPath() );
  +            }
  +        }
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to