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