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() } ) );