Author: hboutemy
Date: Mon Dec 21 23:47:06 2015
New Revision: 1721283

URL: http://svn.apache.org/viewvc?rev=1721283&view=rev
Log:
[DOXIASITETOOLS-133] added an option to dump Velocity processed Doxia files 
before parsing

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
    
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=1721283&r1=1721282&r2=1721283&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
 Mon Dec 21 23:47:06 2015
@@ -344,7 +344,30 @@ public class DefaultSiteRenderer
 
                     velocity.getEngine().mergeTemplate( resource, 
siteContext.getInputEncoding(), vc, sw );
 
-                    reader = new StringReader( sw.toString() );
+                    String doxiaContent = sw.toString();
+
+                    if ( siteContext.getVelocityDocumentOutput() != null )
+                    {
+                        // save Velocity processing result, ie the Doxia 
content that will be parsed after
+                        if ( !siteContext.getVelocityDocumentOutput().exists() 
)
+                        {
+                            siteContext.getVelocityDocumentOutput().mkdirs();
+                        }
+
+                        String input = renderingContext.getInputName();
+                        File outputFile = new File( 
siteContext.getVelocityDocumentOutput(),
+                                                    input.substring( 0, 
input.length() - 3 ) );
+
+                        File outputParent = outputFile.getParentFile();
+                        if ( !outputParent.exists() )
+                        {
+                            outputParent.mkdirs();
+                        }
+
+                        FileUtils.fileWrite( outputFile, 
siteContext.getInputEncoding(), doxiaContent );
+                    }
+
+                    reader = new StringReader( doxiaContent );
                 }
                 catch ( Exception e )
                 {

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java?rev=1721283&r1=1721282&r2=1721283&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
 Mon Dec 21 23:47:06 2015
@@ -71,6 +71,8 @@ public class SiteRenderingContext
 
     private Date publishDate;
 
+    private File velocityDocumentOutput;
+
     /**
      * If input documents should be validated before parsing.
      * By default no validation is performed.
@@ -397,5 +399,22 @@ public class SiteRenderingContext
     {
         this.publishDate = publishDate;
     }
-    
+
+    /**
+     * Directory where to save documents after Velocity processing (*.vm), but 
before parsing them with Doxia.
+     * @return not null if the documents are to be saved
+     */
+    public File getVelocityDocumentOutput()
+    {
+        return velocityDocumentOutput;
+    }
+
+    /**
+     * Where to (eventually) save documents after Velocity processing (*.vm), 
but before parsing them with Doxia?
+     * @param velocityDocumentOutput not null if the documents are to be saved
+     */
+    public void setVelocityDocumentOutput( File velocityDocumentOutput )
+    {
+        this.velocityDocumentOutput = velocityDocumentOutput;
+    }
 }


Reply via email to