Author: brett Date: Wed Apr 5 16:47:59 2006 New Revision: 391848 URL: http://svn.apache.org/viewcvs?rev=391848&view=rev Log: [MSITE-40] don't regenerate doc files that are unchanged Submitted by: Jesse McConnell
Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=391848&r1=391847&r2=391848&view=diff ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java Wed Apr 5 16:47:59 2006 @@ -201,22 +201,35 @@ { DocumentRenderer docRenderer = (DocumentRenderer) i.next(); - File outputFile = new File( outputDirectory, docRenderer.getOutputName() ); + RenderingContext renderingContext = docRenderer.getRenderingContext(); - if ( !outputFile.getParentFile().exists() ) - { - outputFile.getParentFile().mkdirs(); - } + File outputFile = new File ( outputDirectory, docRenderer.getOutputName() ); + + File inputFile = new File ( renderingContext.getBasedir(), renderingContext.getInputName() ); - OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream( outputFile ), outputEncoding ); - try + if ( !outputFile.exists() || inputFile.lastModified() > outputFile.lastModified() ) { - docRenderer.renderDocument( writer, this, siteRenderingContext ); + if ( !outputFile.getParentFile().exists() ) + { + outputFile.getParentFile().mkdirs(); + } + + OutputStreamWriter writer = + new OutputStreamWriter( new FileOutputStream( outputFile ), outputEncoding ); + + try + { + docRenderer.renderDocument( writer, this, siteRenderingContext ); + } + finally + { + IOUtil.close( writer ); + } } - finally + else { - IOUtil.close( writer ); + getLogger().info( inputFile + " unchanged, not regenerating..." ); } } } Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java?rev=391848&r1=391847&r2=391848&view=diff ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java Wed Apr 5 16:47:59 2006 @@ -16,6 +16,8 @@ * limitations under the License. */ +import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; + import java.io.FileNotFoundException; import java.io.Writer; @@ -26,8 +28,10 @@ */ public interface DocumentRenderer { - void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext ) + public void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext ) throws RendererException, FileNotFoundException; - String getOutputName(); + public String getOutputName(); + + public RenderingContext getRenderingContext(); } Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java?rev=391848&r1=391847&r2=391848&view=diff ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java Wed Apr 5 16:47:59 2006 @@ -47,4 +47,9 @@ return renderingContext.getOutputName(); } + public RenderingContext getRenderingContext() + { + return renderingContext; + } + }