[ http://jira.codehaus.org/browse/MSITE-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukas Theussl closed MSITE-245. ------------------------------- Assignee: Lukas Theussl (was: John Casey) Resolution: Fixed Fix Version/s: (was: 2.1) I believe this has been fixed with MSHARED-18. > 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 > Components: inheritance > Affects Versions: 2.0-beta-5 > Environment: 2.0.7 > Reporter: John Allen > Assignee: Lukas Theussl > 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