Author: ltheussl Date: Fri Sep 14 00:16:21 2007 New Revision: 575568 URL: http://svn.apache.org/viewvc?rev=575568&view=rev Log: Adjust to changes in the FO sink. Links between different source documents should work now.
Modified: maven/sandbox/trunk/plugins/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/renderer/DefaultPdfRenderer.java Modified: maven/sandbox/trunk/plugins/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/renderer/DefaultPdfRenderer.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/renderer/DefaultPdfRenderer.java?rev=575568&r1=575567&r2=575568&view=diff ============================================================================== --- maven/sandbox/trunk/plugins/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/renderer/DefaultPdfRenderer.java (original) +++ maven/sandbox/trunk/plugins/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/renderer/DefaultPdfRenderer.java Fri Sep 14 00:16:21 2007 @@ -38,7 +38,7 @@ import org.apache.maven.doxia.docrenderer.document.io.xpp3.DocumentXpp3Reader; import org.apache.maven.doxia.module.site.SiteModule; import org.apache.maven.doxia.module.site.manager.SiteModuleManager; -import org.apache.maven.doxia.module.fo.FoSink; +import org.apache.maven.doxia.module.fo.FoAggregateSink; import org.apache.maven.doxia.module.fo.FoUtils; import org.apache.maven.doxia.parser.ParseException; import org.apache.maven.doxia.parser.manager.ParserNotFoundException; @@ -116,7 +116,7 @@ pdfOutputFile.getParentFile().mkdirs(); } - FoSink sink = new FoSink( new FileWriter( outputFOFile ), /** aggregate */ true ); + FoAggregateSink sink = new FoAggregateSink( new FileWriter( outputFOFile ) ); sink.beginDocument(); @@ -137,6 +137,8 @@ String fullPathDoc = new File( moduleBasedir, doc ).getPath(); + sink.setDocumentName( doc ); + parse( fullPathDoc, module, sink ); } } @@ -206,10 +208,10 @@ } - FoSink sink = new FoSink( new FileWriter( outputFOFile ), /** aggregate */ true ); + FoAggregateSink sink = new FoAggregateSink( new FileWriter( outputFOFile ) ); sink.beginDocument(); - + for ( Iterator k = documentModel.getToc().getItems().iterator(); k.hasNext(); ) { DocumentTOCItem tocItem = (DocumentTOCItem) k.next(); @@ -219,14 +221,14 @@ // TODO: getLogger().info( "No ref defined for an tocItem in the document descriptor." ); continue; } - + String href = StringUtils.replace( tocItem.getRef(), "\\", "/" ); - + if ( href.lastIndexOf( "." ) != -1 ) { href = href.substring( 0, href.lastIndexOf( "." ) ); } - + for ( Iterator i = siteModuleManager.getSiteModules().iterator(); i.hasNext(); ) { SiteModule module = (SiteModule) i.next(); @@ -235,10 +237,14 @@ if ( moduleBasedir.exists() && !"fml".equals( module.getExtension() ) ) { - File source = new File( moduleBasedir, href + "." + module.getExtension() ); + String doc = href + "." + module.getExtension(); + + File source = new File( moduleBasedir, doc ); if ( source.exists() ) { + sink.setDocumentName( doc ); + parse( source.getPath(), module, sink ); } } @@ -259,7 +265,7 @@ * @throws DocRendererException * @throws IOException */ - private void parse( String fullPathDoc, SiteModule module, FoSink sink ) + private void parse( String fullPathDoc, SiteModule module, FoAggregateSink sink ) throws DocRendererException, IOException { try