Author: ltheussl
Date: Thu Sep 30 11:51:11 2010
New Revision: 1003021
URL: http://svn.apache.org/viewvc?rev=1003021&view=rev
Log:
[DOXIA-413] properly close sinks
Modified:
maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/AbstractITextBookRenderer.java
maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/DocbookBookRenderer.java
maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java
Modified: maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/AbstractITextBookRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/AbstractITextBookRenderer.java?rev=1003021&r1=1003020&r2=1003021&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/AbstractITextBookRenderer.java
(original)
+++ maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/AbstractITextBookRenderer.java
Thu Sep 30 11:51:11 2010
@@ -25,10 +25,8 @@ import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.text.DateFormat;
-import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
-import java.util.List;
import org.apache.maven.doxia.Doxia;
import org.apache.maven.doxia.book.BookDoxiaException;
@@ -36,7 +34,6 @@ import org.apache.maven.doxia.book.conte
import org.apache.maven.doxia.book.model.BookModel;
import org.apache.maven.doxia.book.model.Chapter;
import org.apache.maven.doxia.book.model.Section;
-import org.apache.maven.doxia.sink.PipelineSink;
import org.apache.maven.doxia.module.itext.ITextSinkFactory;
import org.apache.maven.doxia.parser.ParseException;
import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
@@ -138,6 +135,7 @@ public abstract class AbstractITextBookR
// TODO: Write out TOC
System.setProperty( "itext.basedir", bookFile.getParentFile().getAbsolutePath() );
+ Sink sink = new ITextSinkFactory().createSink( writer );
try
{
@@ -145,13 +143,16 @@ public abstract class AbstractITextBookR
{
Chapter chapter = (Chapter) it.next();
- renderChapter( writer, chapter, context );
+ renderChapter( sink, writer, chapter, context );
}
writer.endElement(); // itext
}
finally
{
+ sink.flush();
+ sink.close();
+
IOUtil.close( fileWriter );
System.getProperties().remove( "itext.basedir" );
}
@@ -199,7 +200,7 @@ public abstract class AbstractITextBookR
* @param context the BookContext.
* @throws BookDoxiaException if the chapter cannot be written.
*/
- private void renderChapter( PrettyPrintXMLWriter writer, Chapter chapter, BookContext
context )
+ private void renderChapter( Sink sink, PrettyPrintXMLWriter writer, Chapter chapter,
BookContext context )
throws BookDoxiaException
{
writer.startElement( "chapter" );
@@ -216,7 +217,7 @@ public abstract class AbstractITextBookR
{
Section section = (Section) it.next();
- renderSection( writer, section, context );
+ renderSection( sink, writer, section, context );
}
// writer.endElement(); // sectioncontent
@@ -231,7 +232,7 @@ public abstract class AbstractITextBookR
* @param context the BookContext.
* @throws BookDoxiaException if the section cannot be written.
*/
- private void renderSection( PrettyPrintXMLWriter writer, Section section, BookContext
context )
+ private void renderSection( Sink sink, PrettyPrintXMLWriter writer, Section section,
BookContext context )
throws BookDoxiaException
{
// writer.startElement( "section" );
@@ -251,12 +252,6 @@ public abstract class AbstractITextBookR
//
// ----------------------------------------------------------------------
- Sink itextSink = new ITextSinkFactory().createSink( writer );
-
- List pipeline = new ArrayList();
- pipeline.add( itextSink );
- Sink sink = PipelineSink.newInstance( pipeline );
-
Reader reader = null;
try
{
@@ -282,6 +277,10 @@ public abstract class AbstractITextBookR
throw new BookDoxiaException( "Error while rendering book: "
+ bookFile.getFile().getAbsolutePath() + ".", e );
}
+ finally
+ {
+ IOUtil.close( reader );
+ }
}
/**
Modified: maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/DocbookBookRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/DocbookBookRenderer.java?rev=1003021&r1=1003020&r2=1003021&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/DocbookBookRenderer.java
(original)
+++ maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/DocbookBookRenderer.java
Thu Sep 30 11:51:11 2010
@@ -139,7 +139,7 @@ public class DocbookBookRenderer
sink.chapterTitle_();
}
- renderChapter( fileWriter, chapter, context, sink );
+ renderChapter( chapter, context, sink );
sink.chapter_();
}
@@ -165,14 +165,14 @@ public class DocbookBookRenderer
* @param sink a Sink.
* @throws BookDoxiaException if the chapter cannot be written.
*/
- private void renderChapter( Writer writer, Chapter chapter, BookContext context, Sink
sink )
+ private void renderChapter( Chapter chapter, BookContext context, Sink sink )
throws BookDoxiaException
{
for ( Iterator it = chapter.getSections().iterator(); it.hasNext(); )
{
Section section = (Section) it.next();
- renderSection( writer, section, context, sink );
+ renderSection( section, context, sink );
}
}
@@ -185,7 +185,7 @@ public class DocbookBookRenderer
* @param sink a Sink.
* @throws BookDoxiaException if the section cannot be written.
*/
- private void renderSection( Writer writer, Section section, BookContext context, Sink
sink )
+ private void renderSection( Section section, BookContext context, Sink sink )
throws BookDoxiaException
{
BookContext.BookFile bookFile = (BookContext.BookFile) context.getFiles().get( section.getId()
);
Modified: maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java?rev=1003021&r1=1003020&r2=1003021&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
(original)
+++ maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
Thu Sep 30 11:51:11 2010
@@ -239,6 +239,9 @@ public class LatexBookRenderer
}
finally
{
+ sink.flush();
+ sink.close();
+
IOUtil.close( reader );
IOUtil.close( writer );
}
Modified: maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java?rev=1003021&r1=1003020&r2=1003021&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java
(original)
+++ maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java
Thu Sep 30 11:51:11 2010
@@ -24,9 +24,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
import java.util.Locale;
import org.apache.maven.doxia.Doxia;
@@ -38,12 +36,10 @@ import org.apache.maven.doxia.book.model
import org.apache.maven.doxia.book.services.renderer.xdoc.ChapterXdocBookSink;
import org.apache.maven.doxia.book.services.renderer.xdoc.IndexXdocBookSink;
import org.apache.maven.doxia.book.services.renderer.xdoc.SectionXdocBookSink;
-import org.apache.maven.doxia.sink.PipelineSink;
import org.apache.maven.doxia.index.IndexEntry;
import org.apache.maven.doxia.module.xdoc.XdocSink;
import org.apache.maven.doxia.parser.ParseException;
import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
-import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.util.HtmlTools;
import org.codehaus.plexus.i18n.I18N;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -419,16 +415,11 @@ public class XdocBookRenderer
throw new BookDoxiaException( "No document that matches section with id="
+ section.getId() + "." );
}
- List pipeline = new ArrayList();
- // pipeline.add( DebugSink.newInstance() );
- pipeline.add( sink );
- Sink pipelineSink = PipelineSink.newInstance( pipeline );
-
Reader reader = null;
try
{
reader = ReaderFactory.newReader( bookFile.getFile(), context.getInputEncoding()
);
- doxia.parse( reader, bookFile.getParserId(), pipelineSink );
+ doxia.parse( reader, bookFile.getParserId(), sink );
}
catch ( ParserNotFoundException e )
{
@@ -446,6 +437,9 @@ public class XdocBookRenderer
}
finally
{
+ sink.flush();
+ sink.close();
+
IOUtil.close( reader );
IOUtil.close( writer );
}
|