[ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r259 - in trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen: render and 2 other directories.

ajax4jsf-svn-commits at lists.jboss.org ajax4jsf-svn-commits at lists.jboss.org
Fri Jun 8 19:32:54 EDT 2007


Author: alexsmirnov
Date: 2007-06-08 19:32:54 -0400 (Fri, 08 Jun 2007)
New Revision: 259

Modified:
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java
   trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java
Log:
Properly documentation build in a Maven environment

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -34,7 +34,7 @@
 			FileUtils.mkdir( targetDirectory.getAbsolutePath() );
 		}
 
-		RendererFactory rendererFactory = new RendererFactory( options, source, targetDirectory, getLog() );
+		RendererFactory rendererFactory = new RendererFactory( options, source, targetDirectory, project, getLog() );
 
 		for ( int i = 0; i < formattings.length; i++ ) {
 			rendererFactory.buildRenderer( formattings[i] ).render( source );

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -39,7 +39,7 @@
 
 
 	protected void process(Formatting[] formattings) throws RenderingException, XSLTException {
-		RendererFactory rendererFactory = new RendererFactory( options, null, targetDirectory, getLog() );
+		RendererFactory rendererFactory = new RendererFactory( options, null, targetDirectory, project, getLog() );
 		try {
 			for ( int i = 0; i < formattings.length; i++ ) {
 				if ( formattings[i].isImageCopyingRequired() ) {

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -2,10 +2,20 @@
 
 import java.io.BufferedOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.OutputStream;
 import java.io.FileNotFoundException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.imageio.stream.FileImageInputStream;
 import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.URIResolver;
 import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.stream.StreamSource;
 
 //import org.apache.fop.apps.Driver;
 import org.apache.fop.apps.FOPException;
@@ -13,117 +23,113 @@
 import org.apache.fop.apps.FopFactory;
 import org.apache.fop.apps.MimeConstants;
 import org.apache.avalon.framework.logger.Logger;
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.logging.Log;
+import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
+import org.jboss.maven.plugin.docbook.gen.xslt.resolve.ResolverChain;
 
 /**
  * Special handling for pdf rendering
- *
+ * 
  * @author Steve Ebersole
  */
 public class PdfRenderer extends BasicRenderer {
-	public PdfRenderer(RendererFactory factory, Formatting formatting) {
-		super( factory, formatting );
-	}
+    private FopFactory fopFactory;
 
-	protected Result buildResult(File targetFile) throws RenderingException {
-		getLog().info( "building formatting result [" + targetFile.getAbsolutePath() + "]" );
-//		 Step 1: Construct a FopFactory
-//		 (reuse if you plan to render multiple documents!)
-		FopFactory fopFactory = FopFactory.newInstance();
-//		Driver driver = new Driver();
-//		driver.setLogger( new LoggingBridge( getLog() ) );
-//		driver.setRenderer( Driver.RENDER_PDF );
-		try {
-			OutputStream out = new BufferedOutputStream(new java.io.FileOutputStream( targetFile ));
-//			 Step 3: Construct fop with desired output format
-			Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
-			  
-//			  driver.setOutputStream( out );
-			return new SAXResult( fop.getDefaultHandler() );
-		}
-		catch ( FileNotFoundException e ) {
-			throw new RenderingException(
-					"unable to access target file " + targetFile.getAbsolutePath()
-			);
-		} catch (FOPException e) {
-			throw new RenderingException(
-				"Error create FOP  renderer ",e
-		);
-		}
-	}
+    public PdfRenderer(RendererFactory factory, Formatting formatting) {
+	super(factory, formatting);
+    }
 
-	private static class LoggingBridge implements Logger {
+    /**
+         * @param factory
+         * @param formatting
+         * @throws XSLTException
+         */
+    private FopFactory getFopFactory() throws RenderingException {
+	if (null == fopFactory) {
+	    fopFactory = FopFactory.newInstance();
+	    final List resources = factory.getProject().getResources();
+	    ResolverChain resolvers = new ResolverChain();
+	    URIResolver resolver = new URIResolver() {
 
-		private Log mavenLog;
-
-		public LoggingBridge(Log mavenLog) {
-			this.mavenLog = mavenLog;
+		public Source resolve(String href, String base)
+			throws TransformerException {
+		    getLog().info(
+			    "Request to resource " + href
+				    + " with document base " + base);
+		    for (Iterator iter = resources.iterator(); iter.hasNext();) {
+			Resource resource = (Resource) iter.next();
+			String directory = resource.getDirectory();
+			File res = new File(new File(directory), href);
+			if (res.exists()) {
+			    try {
+				return new StreamSource(
+					new FileInputStream(res));
+			    } catch (FileNotFoundException e) {
+				continue;
+			    }
+			}
+		    }
+		    return null;
 		}
 
-		public void debug(String arg0) {
-			mavenLog.debug( arg0 );
-		}
+	    };
+	    resolvers.addResolver(resolver);
+	    try {
+		resolvers.addResolver(factory.getTransformerFactory()
+		    .buildUriResolver(formatting.getStandardDocBookSpec()));
+	    } catch (XSLTException e) {
+		    throw new RenderingException("Error create URIResolver for a fop transformation", e);
+	    }
+	    fopFactory.setURIResolver(resolvers);
+	}
+	return fopFactory;
+    }
 
-		public void debug(String arg0, Throwable arg1) {
-			mavenLog.debug( arg0, arg1 );
-		}
+    protected Result buildResult(File targetFile) throws RenderingException {
+	getLog().info(
+		"building formatting result [" + targetFile.getAbsolutePath()
+			+ "]");
+	return new PdfResult(getFopFactory(),targetFile);
+   }
 
-		public void error(String arg0) {
-			mavenLog.error( arg0 );
-		}
+    private static class PdfResult extends SAXResult {
+	 private OutputStream out;
 
-		public void error(String arg0, Throwable arg1) {
-			mavenLog.error( arg0, arg1 );
+	public PdfResult(FopFactory fopFactory, File target) throws RenderingException {
+	        super();
+		try {
+		    out = new BufferedOutputStream(
+		    			    new java.io.FileOutputStream(target));
+		    // Step 3: Construct fop with desired output format
+		    Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
+		    // driver.setOutputStream( out );
+		    setHandler(fop.getDefaultHandler());
+		} catch (FileNotFoundException e) {
+		    throw new RenderingException("unable to access target file "
+			    + target.getAbsolutePath());
+		} catch (FOPException e) {
+		    throw new RenderingException("Error create FOP  renderer ", e);
 		}
-
-		public void fatalError(String arg0) {
-			mavenLog.error( arg0 );
-		}
-
-		public void fatalError(String arg0, Throwable arg1) {
-			mavenLog.error( arg0, arg1 );
-		}
-
-		public Logger getChildLogger(String arg0) {
-			return null;
-		}
-
-		public void info(String arg0) {
-			mavenLog.info( arg0 );
-		}
-
-		public void info(String arg0, Throwable arg1) {
-			mavenLog.info( arg0, arg1 );
-		}
-
-		public boolean isDebugEnabled() {
-			return mavenLog.isDebugEnabled();
-		}
-
-		public boolean isErrorEnabled() {
-			return mavenLog.isErrorEnabled();
-		}
-
-		public boolean isFatalErrorEnabled() {
-			return mavenLog.isErrorEnabled();
-		}
-
-		public boolean isInfoEnabled() {
-			return mavenLog.isInfoEnabled();
-		}
-
-		public boolean isWarnEnabled() {
-			return mavenLog.isWarnEnabled();
-		}
-
-		public void warn(String arg0) {
-			mavenLog.warn( arg0 );
-		}
-
-		public void warn(String arg0, Throwable arg1) {
-			mavenLog.warn( arg0, arg1 );
-		}
-
 	}
+	
+	public void flush() throws IOException {
+	    out.flush();
+	    out.close();
+	}
+    }
+    
+    protected void releaseResult(Result transformationResult) {
+        super.releaseResult(transformationResult);
+        if (transformationResult instanceof PdfResult) {
+	    PdfResult pdfResult = (PdfResult) transformationResult;
+	    try {
+		pdfResult.flush();
+	    } catch (IOException e) {
+		getLog().error("Error close output PDF file", e);
+	    }
+	}
+    }
+    
 
 }

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -13,6 +13,7 @@
 import org.apache.xml.resolver.CatalogManager;
 import org.apache.xml.resolver.tools.CatalogResolver;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
 
 /**
  * Builds a renderer for the given format
@@ -23,15 +24,17 @@
 	private final Options options;
 	private final File source;
 	private final File targetDirectory;
-	private final Log log;
+	private final MavenProject project;
+	private Log log;
 
 	private CatalogResolver catalogResolver;
 	private TransformerFactory transformerFactory;
 
-	public RendererFactory(Options options, File source, File targetDirectory, Log log) {
+	public RendererFactory(Options options, File source, File targetDirectory, MavenProject project, Log log) {
 		this.options = options;
 		this.source = source;
 		this.targetDirectory = targetDirectory;
+		this.project = project;
 		this.log = log;
 	}
 
@@ -91,4 +94,12 @@
 			return new BasicRenderer( this, formatting );
 		}
 	}
+
+
+	/**
+	 * @return the project
+	 */
+	public MavenProject getProject() {
+	    return project;
+	}
 }

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -106,7 +106,7 @@
 		}
 	}
 
-	private URIResolver buildUriResolver(FormatType formatType) throws XSLTException {
+	public URIResolver buildUriResolver(FormatType formatType) throws XSLTException {
 		ResolverChain resolverChain = new ResolverChain();
 		if ( formatType != null ) {
 			resolverChain.addResolver( new ExplicitUrnResolver( formatType ) );

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -19,7 +19,7 @@
 		}
 
 		// base would need to start with jar:
-		if ( !base.startsWith( "jar:" ) ) {
+		if ( null == base || (!base.startsWith( "jar:" )) ) {
 			return null;
 		}
 

Modified: trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java
===================================================================
--- trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java	2007-06-08 21:37:36 UTC (rev 258)
+++ trunk/docs/maven-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java	2007-06-08 23:32:54 UTC (rev 259)
@@ -29,7 +29,7 @@
 		if ( href.startsWith( versionHref ) ) {
 			return resolve( href );
 		}
-		else if ( base.startsWith( versionHref ) ) {
+		else if ( null != base && base.startsWith( versionHref ) ) {
 			return resolve( base + "/" + href );
 		}
 		return null;




More information about the ajax4jsf-svn-commits mailing list