You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2008/10/29 13:21:28 UTC

svn commit: r708888 - in /maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer: ./ src/main/java/org/apache/maven/doxia/docrenderer/ src/main/java/org/apache/maven/doxia/docrenderer/itext/ src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/ src/ma...

Author: vsiveton
Date: Wed Oct 29 05:21:26 2008
New Revision: 708888

URL: http://svn.apache.org/viewvc?rev=708888&view=rev
Log:
o using ReaderFactory and WriterFactory

Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/pom.xml
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/itext/AbstractITextRender.java
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
    maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java

Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/pom.xml
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/pom.xml?rev=708888&r1=708887&r2=708888&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/pom.xml (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/pom.xml Wed Oct 29 05:21:26 2008
@@ -46,6 +46,16 @@
     </developer>
   </developers>
 
+  <dependencyManagement>
+    <dependencies>
+      <!-- Latest Plexus -->
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>1.5.7-SNAPSHOT</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>

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=708888&r1=708887&r2=708888&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 Wed Oct 29 05:21:26 2008
@@ -20,8 +20,8 @@
  */
 
 import java.io.File;
-import java.io.FileReader;
 import java.io.IOException;
+import java.io.Reader;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
@@ -43,6 +43,9 @@
 
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.XmlUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 /**
@@ -252,14 +255,20 @@
     {
         DocumentModel documentModel;
 
+        Reader reader = null;
         try
         {
-            documentModel = new DocumentXpp3Reader().read( new FileReader( documentDescriptor ) );
+            reader = ReaderFactory.newXmlReader( documentDescriptor );
+            documentModel = new DocumentXpp3Reader().read( reader );
         }
         catch ( XmlPullParserException e )
         {
             throw new DocumentRendererException( "Error parsing document descriptor", e );
         }
+        finally
+        {
+            IOUtil.close( reader );
+        }
 
         return documentModel;
     }
@@ -300,9 +309,19 @@
     protected void parse( String fullDocPath, String parserId, Sink sink )
         throws DocumentRendererException, IOException
     {
+        Reader reader = null;
         try
         {
-            FileReader reader = new FileReader( fullDocPath );
+            File f = new File( fullDocPath );
+            if ( XmlUtil.isXml( f ) )
+            {
+                reader = ReaderFactory.newXmlReader( f );
+            }
+            else
+            {
+                // TODO Platform dependent?
+                reader = ReaderFactory.newPlatformReader( f );
+            }
 
             sink.enableLogging( new PlexusLoggerWrapper( getLogger() ) );
 
@@ -319,6 +338,8 @@
         }
         finally
         {
+            IOUtil.close( reader );
+
             sink.flush();
         }
     }
@@ -378,5 +399,4 @@
             }
         }
     }
-
 }

Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/itext/AbstractITextRender.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/itext/AbstractITextRender.java?rev=708888&r1=708887&r2=708888&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/itext/AbstractITextRender.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/itext/AbstractITextRender.java Wed Oct 29 05:21:26 2008
@@ -20,8 +20,8 @@
  */
 
 import java.io.File;
-import java.io.FileReader;
 import java.io.IOException;
+import java.io.Reader;
 import java.io.Writer;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -50,15 +50,18 @@
 import org.apache.maven.doxia.module.itext.ITextSink;
 import org.apache.maven.doxia.module.itext.ITextSinkFactory;
 import org.apache.maven.doxia.module.itext.ITextUtil;
-import org.apache.maven.doxia.parser.ParseException;
-import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
 import org.apache.maven.doxia.module.site.SiteModule;
 import org.apache.maven.doxia.module.site.manager.SiteModuleManager;
+import org.apache.maven.doxia.parser.ParseException;
+import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
 import org.apache.xml.utils.DefaultErrorHandler;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
+import org.codehaus.plexus.util.xml.XmlUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
@@ -154,9 +157,11 @@
         }
 
         DocumentModel documentModel;
+        Reader reader = null;
         try
         {
-            documentModel = new DocumentXpp3Reader().read( new FileReader( documentDescriptor ) );
+            reader = ReaderFactory.newXmlReader( documentDescriptor );
+            documentModel = new DocumentXpp3Reader().read( reader );
         }
         catch ( XmlPullParserException e )
         {
@@ -166,6 +171,10 @@
         {
             throw new DocumentRendererException( "Error reading document descriptor", e );
         }
+        finally
+        {
+            IOUtil.close( reader );
+        }
 
         if ( documentModel.getOutputName() == null )
         {
@@ -280,13 +289,24 @@
     private void parse( String fullPathDoc, SiteModule module, File outputITextFile )
         throws DocumentRendererException, IOException
     {
-        Writer writer = WriterFactory.newWriter( outputITextFile, WriterFactory.UTF_8 );
+        Writer writer = WriterFactory.newXmlWriter( outputITextFile );
         ITextSink sink = (ITextSink) new ITextSinkFactory().createSink( writer );
 
         sink.setClassLoader( new URLClassLoader( new URL[] { outputITextFile.getParentFile().toURL() } ) );
+
+        Reader reader = null;
         try
         {
-            FileReader reader = new FileReader( fullPathDoc );
+            File f = new File( fullPathDoc );
+            if ( XmlUtil.isXml( f ) )
+            {
+                reader = ReaderFactory.newXmlReader( f );
+            }
+            else
+            {
+                // TODO Platform dependent?
+                reader = ReaderFactory.newPlatformReader( f );
+            }
 
             doxia.parse( reader, module.getParserId(), sink );
         }
@@ -300,6 +320,8 @@
         }
         finally
         {
+            IOUtil.close( reader );
+
             sink.flush();
 
             sink.close();

Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java?rev=708888&r1=708887&r2=708888&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java Wed Oct 29 05:21:26 2008
@@ -20,23 +20,23 @@
  */
 
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
-
+import java.io.Writer;
 import java.util.Iterator;
 import java.util.Map;
 
 import javax.xml.transform.TransformerException;
 
 import org.apache.maven.doxia.docrenderer.DocumentRendererException;
+import org.apache.maven.doxia.docrenderer.pdf.AbstractPdfRenderer;
 import org.apache.maven.doxia.document.DocumentModel;
 import org.apache.maven.doxia.document.DocumentTOCItem;
-import org.apache.maven.doxia.docrenderer.pdf.AbstractPdfRenderer;
-import org.apache.maven.doxia.module.site.SiteModule;
 import org.apache.maven.doxia.module.fo.FoAggregateSink;
 import org.apache.maven.doxia.module.fo.FoUtils;
-
+import org.apache.maven.doxia.module.site.SiteModule;
+import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.WriterFactory;
 import org.xml.sax.SAXParseException;
 
 /**
@@ -117,92 +117,101 @@
             pdfOutputFile.getParentFile().mkdirs();
         }
 
-        FoAggregateSink sink = new FoAggregateSink( new FileWriter( outputFOFile ) );
+        Writer writer = null;
+        try
+        {
+            writer = WriterFactory.newXmlWriter( outputFOFile );
 
-        sink.setDocumentModel( documentModel  );
+            FoAggregateSink sink = new FoAggregateSink( writer );
 
-        sink.beginDocument();
+            sink.setDocumentModel( documentModel  );
 
-        sink.coverPage();
+            sink.beginDocument();
 
-        sink.toc();
+            sink.coverPage();
 
-        if ( ( documentModel.getToc() == null ) || ( documentModel.getToc().getItems() == null ) )
-        {
-            getLogger().info( "No TOC is defined in the document descriptor. Merging all documents." );
+            sink.toc();
 
-            for ( Iterator j = filesToProcess.keySet().iterator(); j.hasNext(); )
+            if ( ( documentModel.getToc() == null ) || ( documentModel.getToc().getItems() == null ) )
             {
-                String key = (String) j.next();
+                getLogger().info( "No TOC is defined in the document descriptor. Merging all documents." );
 
-                SiteModule module = (SiteModule) filesToProcess.get( key );
+                for ( Iterator j = filesToProcess.keySet().iterator(); j.hasNext(); )
+                {
+                    String key = (String) j.next();
 
-                sink.setDocumentName( key );
-                // TODO: sink.setDocumentTitle( "Title" ); ???
+                    SiteModule module = (SiteModule) filesToProcess.get( key );
 
-                String fullDocPath = getBaseDir() + File.separator
-                            + module.getSourceDirectory() + File.separator + key;
+                    sink.setDocumentName( key );
+                    // TODO: sink.setDocumentTitle( "Title" ); ???
 
-                if ( getLogger().isDebugEnabled() )
-                {
-                    getLogger().debug( "Parsing file " + fullDocPath );
-                }
+                    String fullDocPath = getBaseDir() + File.separator
+                                + module.getSourceDirectory() + File.separator + key;
 
-                parse( fullDocPath, module.getParserId(), sink );
+                    if ( getLogger().isDebugEnabled() )
+                    {
+                        getLogger().debug( "Parsing file " + fullDocPath );
+                    }
+
+                    parse( fullDocPath, module.getParserId(), sink );
+                }
             }
-        }
-        else
-        {
-            for ( Iterator k = documentModel.getToc().getItems().iterator(); k.hasNext(); )
+            else
             {
-                DocumentTOCItem tocItem = (DocumentTOCItem) k.next();
-
-                if ( tocItem.getRef() == null )
+                for ( Iterator k = documentModel.getToc().getItems().iterator(); k.hasNext(); )
                 {
-                    getLogger().info( "No ref defined for tocItem " + tocItem.getName() );
-
-                    continue;
-                }
+                    DocumentTOCItem tocItem = (DocumentTOCItem) k.next();
 
-                String href = StringUtils.replace( tocItem.getRef(), "\\", "/" );
+                    if ( tocItem.getRef() == null )
+                    {
+                        getLogger().info( "No ref defined for tocItem " + tocItem.getName() );
 
-                if ( href.lastIndexOf( "." ) != -1 )
-                {
-                    href = href.substring( 0, href.lastIndexOf( "." ) );
-                }
+                        continue;
+                    }
 
-                for ( Iterator i = siteModuleManager.getSiteModules().iterator(); i.hasNext(); )
-                {
-                    SiteModule module = (SiteModule) i.next();
+                    String href = StringUtils.replace( tocItem.getRef(), "\\", "/" );
 
-                    File moduleBasedir = new File( getBaseDir(), module.getSourceDirectory() );
+                    if ( href.lastIndexOf( "." ) != -1 )
+                    {
+                        href = href.substring( 0, href.lastIndexOf( "." ) );
+                    }
 
-                    if ( moduleBasedir.exists() )
+                    for ( Iterator i = siteModuleManager.getSiteModules().iterator(); i.hasNext(); )
                     {
-                        String doc = href + "." + module.getExtension();
+                        SiteModule module = (SiteModule) i.next();
 
-                        File source = new File( moduleBasedir, doc );
+                        File moduleBasedir = new File( getBaseDir(), module.getSourceDirectory() );
 
-                        if ( source.exists() )
+                        if ( moduleBasedir.exists() )
                         {
-                            if ( getLogger().isDebugEnabled() )
+                            String doc = href + "." + module.getExtension();
+
+                            File source = new File( moduleBasedir, doc );
+
+                            if ( source.exists() )
                             {
-                                getLogger().debug( "Parsing file " + source );
-                            }
+                                if ( getLogger().isDebugEnabled() )
+                                {
+                                    getLogger().debug( "Parsing file " + source );
+                                }
 
-                            sink.setDocumentName( doc );
+                                sink.setDocumentName( doc );
 
-                            sink.setDocumentTitle( tocItem.getName() );
+                                sink.setDocumentTitle( tocItem.getName() );
 
-                            parse( source.getPath(), module.getParserId(), sink );
+                                parse( source.getPath(), module.getParserId(), sink );
+                            }
                         }
                     }
                 }
             }
 
+            sink.endDocument();
+        }
+        finally
+        {
+            IOUtil.close( writer );
         }
-
-        sink.endDocument();
 
         // copy resources, images, etc.
         copyResources( outputDirectory );

Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java?rev=708888&r1=708887&r2=708888&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java Wed Oct 29 05:21:26 2008
@@ -188,7 +188,7 @@
     private void parse( String fullDocPath, SiteModule module, File iTextFile )
         throws DocumentRendererException, IOException
     {
-        Writer writer = WriterFactory.newWriter( iTextFile, WriterFactory.UTF_8 );
+        Writer writer = WriterFactory.newXmlWriter( iTextFile );
         ITextSink sink = (ITextSink) new ITextSinkFactory().createSink( writer );
 
         sink.setClassLoader( new URLClassLoader( new URL[] { iTextFile.getParentFile().toURI().toURL() } ) );