Author: rfscholte Date: Thu Dec 15 21:22:49 2011 New Revision: 1214960 URL: http://svn.apache.org/viewvc?rev=1214960&view=rev Log: revert changes of rev 1214470, some parts of site.xml inheritence must be interpolated immediately, other parts at the end. Requires another approach.
Removed: maven/shared/trunk/maven-doxia-tools/src/test/resources/unit/interpolation-child-test/ maven/shared/trunk/maven-doxia-tools/src/test/resources/unit/interpolation-parent-test/ Modified: maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Modified: maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java?rev=1214960&r1=1214959&r2=1214960&view=diff ============================================================================== --- maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java (original) +++ maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java Thu Dec 15 21:22:49 2011 @@ -23,7 +23,6 @@ import java.io.File; import java.io.IOException; import java.io.Reader; import java.io.StringReader; -import java.io.StringWriter; import java.net.MalformedURLException; import java.net.URL; @@ -55,7 +54,6 @@ import org.apache.maven.doxia.site.decor import org.apache.maven.doxia.site.decoration.Skin; import org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler; import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader; -import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Writer; import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Model; import org.apache.maven.model.Site; @@ -461,9 +459,10 @@ public class DefaultSiteTool getDecorationModel( project, parentProject, reactorProjects, localRepository, repositories, siteDirectory, llocale, props, inputEncoding, outputEncoding ); - String siteDescriptorContent; if ( decorationModel == null ) { + String siteDescriptorContent; + try { // Note the default is not a super class - it is used when nothing else is found @@ -474,24 +473,12 @@ public class DefaultSiteTool { throw new SiteToolException( "Error reading default site descriptor: " + e.getMessage(), e ); } + + siteDescriptorContent = getInterpolatedSiteDescriptorContent( props, project, siteDescriptorContent, + inputEncoding, outputEncoding ); + + decorationModel = readDecorationModel( siteDescriptorContent ); } - else - { - try - { - StringWriter writer = new StringWriter(); - new DecorationXpp3Writer().write( writer, decorationModel ); - siteDescriptorContent = writer.toString(); - } - catch ( IOException e ) - { - throw new SiteToolException( "The site descriptor cannot be parsed!", e ); - } - } - - siteDescriptorContent = getInterpolatedSiteDescriptorContent( props, project, siteDescriptorContent, - inputEncoding, outputEncoding ); - decorationModel = readDecorationModel( siteDescriptorContent ); if ( parentProject != null ) { @@ -1173,15 +1160,16 @@ public class DefaultSiteTool siteDescriptor = getSiteDescriptorFromBasedir( siteDirectory, project.getBasedir(), locale ); } - DecorationModel decoration = null; + String siteDescriptorContent = null; + long siteDescriptorLastModified = 0L; try { if ( siteDescriptor != null && siteDescriptor.exists() ) { getLogger().debug( "Reading site descriptor from " + siteDescriptor ); Reader siteDescriptorReader = ReaderFactory.newXmlReader( siteDescriptor ); - decoration = readDecorationModel( siteDescriptorReader ); - decoration.setLastModified( siteDescriptor.lastModified() ); + siteDescriptorContent = IOUtil.toString( siteDescriptorReader ); + siteDescriptorLastModified = siteDescriptor.lastModified(); } } catch ( IOException e ) @@ -1189,6 +1177,16 @@ public class DefaultSiteTool throw new SiteToolException( "The site descriptor cannot be read!", e ); } + DecorationModel decoration = null; + if ( siteDescriptorContent != null ) + { + siteDescriptorContent = getInterpolatedSiteDescriptorContent( props, project, siteDescriptorContent, + inputEncoding, outputEncoding ); + + decoration = readDecorationModel( siteDescriptorContent ); + decoration.setLastModified( siteDescriptorLastModified ); + } + if ( parentProject != null ) { getLogger().debug( "Parent project loaded ..." ); @@ -1235,21 +1233,10 @@ public class DefaultSiteTool private DecorationModel readDecorationModel( String siteDescriptorContent ) throws SiteToolException { - return readDecorationModel( new StringReader( siteDescriptorContent ) ); - } - - /** - * @param siteDescriptorContent not null - * @return the decoration model object - * @throws SiteToolException if any - */ - private DecorationModel readDecorationModel( Reader siteDescriptorReader ) - throws SiteToolException - { DecorationModel decoration; try { - decoration = new DecorationXpp3Reader().read( siteDescriptorReader ); + decoration = new DecorationXpp3Reader().read( new StringReader( siteDescriptorContent ) ); } catch ( XmlPullParserException e ) { Modified: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java?rev=1214960&r1=1214959&r2=1214960&view=diff ============================================================================== --- maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java (original) +++ maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Thu Dec 15 21:22:49 2011 @@ -25,23 +25,17 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.doxia.site.decoration.DecorationModel; -import org.apache.maven.doxia.site.decoration.LinkItem; import org.apache.maven.doxia.site.decoration.Skin; import org.apache.maven.doxia.tools.stubs.SiteToolMavenProjectStub; -import org.apache.maven.plugin.testing.stubs.ArtifactStub; -import org.apache.maven.plugin.testing.stubs.MavenProjectStub; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.PlexusTestCase; -import edu.emory.mathcs.backport.java.util.Collections; - /** * @author <a href="mailto:vincent.sive...@gmail.com">Vincent Siveton</a> * @version $Id$ @@ -295,38 +289,5 @@ public class SiteToolTest siteDirectory, Locale.getDefault(), "UTF-8", "UTF-8" ); assertNotNull( model ); } - - // MSHARED-217 - public void testMultiModuleInterpolation() - throws Exception - { - SiteTool tool = (SiteTool) lookup( SiteTool.ROLE ); - assertNotNull( tool ); - - MavenProjectStub parentProject = new SiteToolMavenProjectStub( "interpolation-parent-test" ); - parentProject.setGroupId( "org.apache.maven.shared.its" ); - parentProject.setArtifactId( "mshared-217-parent" ); - parentProject.setVersion( "1.0-SNAPSHOT" ); - parentProject.setBasedir( null ); // get it from repo - parentProject.setName( "MSHARED-217 Parent" ); - String siteDirectory = "src/site"; - - MavenProjectStub childProject = new SiteToolMavenProjectStub( "interpolation-child-test" ); - childProject.setParent( parentProject ); - childProject.setGroupId( "org.apache.maven.shared.its" ); - childProject.setArtifactId( "mshared-217-child" ); - childProject.setVersion( "1.0-SNAPSHOT" ); - childProject.setBasedir( null ); // get it from repo - childProject.setName( "MSHARED-217 Child" ); - - List<MavenProject> reactorProjects = Collections.singletonList( parentProject ); - - DecorationModel model = - tool.getDecorationModel( childProject, reactorProjects, getLocalRepo(), - childProject.getRemoteArtifactRepositories(), siteDirectory, Locale.getDefault(), - "ISO-8859-1", "ISO-8859-1" ); - assertNotNull( model ); - assertEquals( "MSHARED-217 Child", model.getName() ); - } }