parent filesystem site.xml is never be found
--------------------------------------------

                 Key: MSITE-245
                 URL: http://jira.codehaus.org/browse/MSITE-245
             Project: Maven 2.x Site Plugin
          Issue Type: Bug
    Affects Versions: 2.0-beta-5
         Environment: 2.0.7
            Reporter: John Allen
            Priority: Blocker
         Attachments: site-patch.txt

The current approach used by the getSiteDescriptorFile(File, Locale) is wrong 
as the basedir passed in to it is not just the project's own basedir, it's 
potentially a parent project's basedir and thus the previous code makes no 
sense as we would need to add on the parent's site.xml site directory and then 
try and find the relative path to it and as there's no way (that I know of) of 
a) finding that out from the parent project's object model (even if we passed 
it in) and b) the current code does not append anything to the passed in 
basedir so is always looking for a site.xml in the parents root directory. 
What's more the use of a relative path here is pointless too as we simply read 
in the descriptor file, not persist it into links where relativePaths are 
useful.

Current code:

{code}
    protected File getSiteDescriptorFile( File basedir, Locale locale )
    {
       String relativePath = getRelativePath( siteDirectory.getAbsolutePath(), 
basedir.getAbsolutePath() );

        File siteDescriptor = new File( relativePath, "site_" + 
locale.getLanguage() + ".xml" );

        if ( !siteDescriptor.exists() )
        {
            siteDescriptor = new File( relativePath, "site.xml" );
        }
        return siteDescriptor;
    }
{code}

Fixed code

{code}
    protected File getSiteDescriptorFile( File basedir, Locale locale )
    {
        String sitePath;
        
        if ( basedir.equals( project.getBasedir() ))
        {
            // it's this project's basedir so use our siteDirectory (allows 
this project
            // to use a custom site location)
            
            sitePath = siteDirectory.getAbsolutePath();
        }
        else
        {
            // it's not this project's basedir so it must be one of our 
parent's,
            // so we'll just have to assume they store their site.xml in the
            // standard location (src/site)
            
            sitePath = basedir.getAbsolutePath() + "/src/site";
        }
        
        File siteDescriptor = new File( sitePath, "site_" + 
locale.getLanguage() + ".xml" );

        if ( !siteDescriptor.exists() )
        {
            siteDescriptor = new File( sitePath, "site.xml" );
        }

        return siteDescriptor;
{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to