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:[email protected]">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() );
- }
}