maven-doxia-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ltheu...@apache.org
Subject svn commit: r947013 - /maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
Date Fri, 21 May 2010 14:04:47 GMT
Author: ltheussl
Date: Fri May 21 14:04:46 2010
New Revision: 947013

URL: http://svn.apache.org/viewvc?rev=947013&view=rev
Log:
ad DOXIA-392, DOXIASITETOOLS-37: also make DocumentRenderer validate xml

Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java

Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java?rev=947013&r1=947012&r2=947013&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
(original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
Fri May 21 14:04:46 2010
@@ -19,6 +19,7 @@ package org.apache.maven.doxia.docrender
  * under the License.
  */
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
@@ -44,6 +45,8 @@ import org.apache.maven.doxia.parser.man
 import org.apache.maven.doxia.logging.PlexusLoggerWrapper;
 import org.apache.maven.doxia.module.site.SiteModule;
 import org.apache.maven.doxia.module.site.manager.SiteModuleManager;
+import org.apache.maven.doxia.util.XmlValidator;
+
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
 
@@ -211,7 +214,6 @@ public abstract class AbstractDocumentRe
      * @param filesToProcess the Map of Files to process. The Map should contain as keys
the paths of the
      *      source files (relative to {@link #getBaseDir() baseDir}), and the corresponding
SiteModule as values.
      * @param outputDirectory the output directory where the documents should be generated.
-     * @param context the rendering context.
      * @throws org.apache.maven.doxia.docrenderer.DocumentRendererException if any
      * @throws java.io.IOException if any
      * @since 1.1.1
@@ -473,6 +475,10 @@ public abstract class AbstractDocumentRe
                     {
                         reader = getVelocityReader( f, ( (XmlStreamReader) reader ).getEncoding(),
context );
                     }
+                    if ( context != null && Boolean.TRUE.equals( (Boolean) context.get(
"validate" ) ) )
+                    {
+                        reader = validate( reader, fullDocPath );
+                    }
                     break;
 
                 case Parser.TXT_TYPE:
@@ -504,7 +510,7 @@ public abstract class AbstractDocumentRe
         catch ( ParserNotFoundException e )
         {
             throw new DocumentRendererException( "No parser '" + parserId
-                        + "' found for " + fullDocPath + ": " + e.getMessage() );
+                        + "' found for " + fullDocPath + ": " + e.getMessage(), e );
         }
         catch ( ParseException e )
         {
@@ -664,4 +670,23 @@ public abstract class AbstractDocumentRe
     {
         return FileUtils.getExtension( f.getAbsolutePath() ).toLowerCase( Locale.ENGLISH
).endsWith( "vm" );
     }
+
+    private Reader validate( Reader source, String resource )
+            throws ParseException, IOException
+    {
+        getLogger().debug( "Validating: " + resource );
+
+        try
+        {
+            String content = IOUtil.toString( new BufferedReader( source ) );
+
+            new XmlValidator( new PlexusLoggerWrapper( getLogger() ) ).validate( content
);
+
+            return new StringReader( content );
+        }
+        finally
+        {
+            IOUtil.close( source );
+        }
+    }
 }



Mime
View raw message