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;
+    }
+
 }


Reply via email to