[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