Hibernate SVN: r11684 - in trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen: render and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-13 14:19:17 -0400 (Wed, 13 Jun 2007)
New Revision: 11684
Modified:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
Log:
cleanup
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java 2007-06-12 20:01:20 UTC (rev 11683)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java 2007-06-13 18:19:17 UTC (rev 11684)
@@ -1,13 +1,9 @@
package org.jboss.maven.plugin.docbook.gen;
import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -118,15 +114,14 @@
* mojo.
*
* @param formattings The fomattings configured for render
- * @param resources
* @throws RenderingException
* @throws XSLTException
*/
- protected abstract void process(Formatting[] formattings, Artifact[] resources) throws RenderingException, XSLTException;
+ protected abstract void process(Formatting[] formattings) throws RenderingException, XSLTException;
public final void execute() throws MojoExecutionException, MojoFailureException {
try {
- process( buildFormattings(), collectDocBookResourceDependentArtifacts() );
+ process( buildFormattings() );
}
catch ( XSLTException e ) {
throw new MojoExecutionException( "XSLT problem", e );
@@ -143,27 +138,4 @@
}
return formattings;
}
-
- private Artifact[] collectDocBookResourceDependentArtifacts() {
- List artifacts = new ArrayList();
- addDocBookResourceArtifacts( artifacts, projectArtifacts );
- addDocBookResourceArtifacts( artifacts, pluginArtifacts );
- return ( Artifact[] ) artifacts.toArray( new Artifact[ artifacts.size() ] );
- }
-
- private void addDocBookResourceArtifacts(Collection target, Collection source) {
- Iterator itr = source.iterator();
- while ( itr.hasNext() ) {
- final Artifact artifact = ( Artifact ) itr.next();
- getLog().info( "checking artifact : "+ artifact.getId() + " [" + artifact.getType() + "]" );
- if ( "docbook-xslt".equals( artifact.getType() ) ||
- "docbook-resources".equals( artifact.getType() ) ) {
- target.add( artifact );
- }
- // temp...
- else if ( "docbook-xslt".equals( artifact.getArtifactId() ) ) {
- target.add( artifact );
- }
- }
- }
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java 2007-06-12 20:01:20 UTC (rev 11683)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java 2007-06-13 18:19:17 UTC (rev 11684)
@@ -2,7 +2,6 @@
import java.io.File;
-import org.apache.maven.artifact.Artifact;
import org.codehaus.plexus.util.FileUtils;
import org.jboss.maven.plugin.docbook.gen.render.Formatting;
import org.jboss.maven.plugin.docbook.gen.render.RendererFactory;
@@ -15,12 +14,13 @@
*
* @goal generate
* @phase compile
+ * @requiresDependencyResolution
*
* @author Steve Ebersole
*/
public class GenerationMojo extends AbstractDocBookMojo {
- protected void process(Formatting[] formattings, Artifact[] resources) throws XSLTException, RenderingException {
+ protected void process(Formatting[] formattings) throws XSLTException, RenderingException {
if ( !sourceDirectory.exists() ) {
getLog().info( "sourceDirectory [" + sourceDirectory.getAbsolutePath() + "] did not exist" );
return;
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java 2007-06-12 20:01:20 UTC (rev 11683)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java 2007-06-13 18:19:17 UTC (rev 11684)
@@ -3,6 +3,10 @@
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.MojoExecutionException;
@@ -22,17 +26,39 @@
*
* @goal resources
* @phase process-resources
+ * @requiresDependencyResolution
*
* @author Steve Ebersole
*/
public class ResourceMojo extends AbstractDocBookMojo {
- protected void process(Formatting[] formattings, Artifact[] resources)
- throws RenderingException, XSLTException {
+ protected void process(Formatting[] formattings) throws RenderingException, XSLTException {
processProjectResources();
- processDependencyResources( resources );
+ processDependencyResources( collectDocBookResourceDependentArtifacts() );
}
+ private Artifact[] collectDocBookResourceDependentArtifacts() {
+ List artifacts = new ArrayList();
+ addDocBookResourceArtifacts( artifacts, projectArtifacts );
+ addDocBookResourceArtifacts( artifacts, pluginArtifacts );
+ return ( Artifact[] ) artifacts.toArray( new Artifact[ artifacts.size() ] );
+ }
+
+ private void addDocBookResourceArtifacts(Collection target, Collection source) {
+ Iterator itr = source.iterator();
+ while ( itr.hasNext() ) {
+ final Artifact artifact = ( Artifact ) itr.next();
+ if ( "docbook-xslt".equals( artifact.getType() ) ||
+ "docbook-resources".equals( artifact.getType() ) ) {
+ target.add( artifact );
+ }
+ // temp...
+ else if ( "docbook-xslt".equals( artifact.getArtifactId() ) ) {
+ target.add( artifact );
+ }
+ }
+ }
+
private void processProjectResources() throws RenderingException {
ResourcesMojo mavenResourcesMojo = new ResourcesMojo();
injectMojoValue( mavenResourcesMojo, "outputDirectory", stagingDirectory.getAbsolutePath() );
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-12 20:01:20 UTC (rev 11683)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-13 18:19:17 UTC (rev 11684)
@@ -1,6 +1,5 @@
package org.jboss.maven.plugin.docbook.gen.render;
-import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
@@ -11,6 +10,11 @@
import org.apache.fop.apps.Driver;
import org.apache.maven.plugin.logging.Log;
+//import org.apache.fop.apps.FOUserAgent;
+//import org.apache.fop.apps.Fop;
+//import org.apache.fop.apps.FopFactory;
+//import org.apache.fop.apps.MimeConstants;
+
/**
* Special handling for pdf rendering
*
@@ -29,6 +33,7 @@
driver.setRenderer( Driver.RENDER_PDF );
try {
+// I've had issues trying to buffer this output...
// OutputStream out = new BufferedOutputStream( new FileOutputStream( targetFile ) );
OutputStream out = new FileOutputStream( targetFile );
driver.setOutputStream( out );
18 years, 5 months
Hibernate SVN: r11683 - trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-12 16:01:20 -0400 (Tue, 12 Jun 2007)
New Revision: 11683
Modified:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
Log:
phase 2 : cleanup
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java 2007-06-12 19:49:28 UTC (rev 11682)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java 2007-06-12 20:01:20 UTC (rev 11683)
@@ -48,7 +48,7 @@
}
if ( formatting.isImageCopyingRequired() ) {
try {
- FileUtils.copyDirectory( factory.getStagingDirectory(), target );
+ FileUtils.copyDirectoryStructure( factory.getStagingDirectory(), target );
}
catch ( IOException e ) {
throw new RenderingException( "unable to copy images", e );
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-12 19:49:28 UTC (rev 11682)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-12 20:01:20 UTC (rev 11683)
@@ -29,7 +29,8 @@
driver.setRenderer( Driver.RENDER_PDF );
try {
- OutputStream out = new BufferedOutputStream( new FileOutputStream( targetFile ) );
+// OutputStream out = new BufferedOutputStream( new FileOutputStream( targetFile ) );
+ OutputStream out = new FileOutputStream( targetFile );
driver.setOutputStream( out );
return new SAXResult( driver.getContentHandler() );
}
18 years, 5 months
Hibernate SVN: r11682 - trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-12 15:49:28 -0400 (Tue, 12 Jun 2007)
New Revision: 11682
Removed:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java
Modified:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
Log:
phase 2 : cleanup
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java 2007-06-12 17:52:36 UTC (rev 11681)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java 2007-06-12 19:49:28 UTC (rev 11682)
@@ -1,23 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.render;
-
-import java.io.File;
-import javax.xml.transform.Transformer;
-
-import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
-
-/**
- * Special handling for html processing
- *
- * @author Steve Ebersole
- */
-public class HtmlRenderer extends BasicRenderer {
- public HtmlRenderer(RendererFactory factory, Formatting formatting) {
- super( factory, formatting );
- }
-
- protected Transformer buildTransformer(File targetFile)
- throws RenderingException, XSLTException {
- Transformer transformer = super.buildTransformer( targetFile );
- return transformer;
- }
-}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java 2007-06-12 17:52:36 UTC (rev 11681)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java 2007-06-12 19:49:28 UTC (rev 11682)
@@ -96,14 +96,9 @@
}
public Renderer buildRenderer(Formatting formatting) throws XSLTException {
- // todo : these usages of 'FormatType' are ok as well
if ( formatting.getFormatName().equals( StandardDocBookFormatSpecification.PDF.getName() ) ) {
return new PdfRenderer( this, formatting );
}
- else if ( formatting.getFormatName().equals( StandardDocBookFormatSpecification.HTML.getName() )
- || formatting.getFormatName().equals( StandardDocBookFormatSpecification.HTML_SINGLE.getName() ) ) {
- return new HtmlRenderer( this, formatting );
- }
else {
return new BasicRenderer( this, formatting );
}
18 years, 5 months
Hibernate SVN: r11681 - trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-12 13:52:36 -0400 (Tue, 12 Jun 2007)
New Revision: 11681
Modified:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/pom.xml
Log:
initial phase 2 dev
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/pom.xml
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/pom.xml 2007-06-12 17:51:25 UTC (rev 11680)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/pom.xml 2007-06-12 17:52:36 UTC (rev 11681)
@@ -6,7 +6,7 @@
<groupId>org.jboss.maven.plugins</groupId>
<artifactId>maven-jboss-docbook-plugin</artifactId>
- <version>1.0</version>
+ <version>2.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>DocBook XML Transformations</name>
@@ -16,7 +16,7 @@
<dependency>
<groupId>net.sf.docbook</groupId>
<artifactId>docbook</artifactId>
- <version>1.70.1</version>
+ <version>1.72.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
@@ -105,7 +105,19 @@
<artifactId>fop</artifactId>
<version>0.20.5</version>
</dependency>
+ <!--
<dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>fop</artifactId>
+ <version>0.93</version>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>batik</groupId>
+ <artifactId>batik-1.5-fop</artifactId>
+ <version>0.20-5</version>
+ </dependency>
+ <dependency>
<groupId>javax.media</groupId>
<artifactId>jai-core</artifactId>
<version>1.1.3</version>
@@ -118,15 +130,14 @@
<scope>runtime</scope>
</dependency>
<dependency>
- <groupId>batik</groupId>
- <artifactId>batik-1.5-fop</artifactId>
- <version>0.20-5</version>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.2</version>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
+ <version>1.0-alpha-7</version>
</dependency>
</dependencies>
18 years, 5 months
Hibernate SVN: r11680 - in trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main: java/org/jboss/maven/plugin/docbook/gen/render and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-12 13:51:25 -0400 (Tue, 12 Jun 2007)
New Revision: 11680
Added:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Formatting.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/StandardDocBookFormatSpecification.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/AbstractCatalogManager.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ExplicitCatalogManager.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ImplicitCatalogManager.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/CurrentVersionResolver.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitUrnResolver.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java
Removed:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Settings.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/FormatType.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/AbstractCatalogManager.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/DocBookStylesheetResolver.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitCatalogManager.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/StandardCatalogManager.java
Modified:
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Format.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Options.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Renderer.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ResolverChain.java
trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/resources/META-INF/plexus/components.xml
Log:
initial phase 2 dev
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/AbstractDocBookMojo.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,169 @@
+package org.jboss.maven.plugin.docbook.gen;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.jboss.maven.plugin.docbook.gen.render.Formatting;
+import org.jboss.maven.plugin.docbook.gen.render.RenderingException;
+import org.jboss.maven.plugin.docbook.gen.util.StandardDocBookFormatSpecification;
+import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
+
+/**
+ * Basic support for the various DocBook mojos in this package. Mainly, we are
+ * defining common configuration attributes of the packaging.
+ *
+ * @author Steve Ebersole
+ */
+public abstract class AbstractDocBookMojo extends AbstractMojo {
+ /**
+ * INTERNAL : The project being built
+ *
+ * @parameter expression="${project}"
+ * @required
+ * @readonly
+ */
+ protected MavenProject project;
+
+ /**
+ * INTERNAL : The artifacts associated with the dependencies defined as part
+ * of the project to which we are being attached.
+ *
+ * @parameter expression="${project.artifacts}"
+ * @required
+ * @readonly
+ */
+ protected Set projectArtifacts;
+
+ /**
+ * INTERNAL : The artifacts associated to the dependencies defined as part
+ * of our configuration within the project to which we are being attached.
+ *
+ * @parameter expression="${plugin.artifacts}"
+ * @required
+ * @readonly
+ */
+ protected List pluginArtifacts;
+
+ /**
+ * INTERNAL : used to get reference to environemtn Archiver/UnArchiver.
+ *
+ * @parameter expression="${component.org.codehaus.plexus.archiver.manager.ArchiverManager}"
+ * @required
+ * @readonly
+ */
+ protected ArchiverManager archiverManager;
+
+ /**
+ * The name of the document (relative to sourceDirectory) which is the
+ * document to be rendered.
+ *
+ * @parameter
+ * @required
+ */
+ protected String sourceDocumentName;
+
+ /**
+ * The directory where the sources are located.
+ *
+ * @parameter expression="${basedir}/src/main/docbook"
+ */
+ protected File sourceDirectory;
+
+ /**
+ * The directory where the output will be written.
+ *
+ * @parameter expression="${basedir}/target/docbook"
+ */
+ protected File targetDirectory;
+
+ /**
+ * The directory where "docbook resource" staging occurs. Mainly this is
+ * used for (1) image/css staging for html-based output; (2) base directory
+ * for value of <tt>img.src.path</tt> DocBook XSLT parameter for fop-based
+ * formattings.
+ *
+ * @parameter expression="${basedir}/target/staging"
+ * @required
+ * @readonly
+ */
+ protected File stagingDirectory;
+
+ /**
+ * The formats in which to perform rendering.
+ *
+ * @parameter
+ * @required
+ */
+ protected Format[] formats;
+
+ /**
+ * Configurable options
+ *
+ * @parameter
+ */
+ protected Options options;
+
+ /**
+ * The override method to perform the actual processing of the
+ * mojo.
+ *
+ * @param formattings The fomattings configured for render
+ * @param resources
+ * @throws RenderingException
+ * @throws XSLTException
+ */
+ protected abstract void process(Formatting[] formattings, Artifact[] resources) throws RenderingException, XSLTException;
+
+ public final void execute() throws MojoExecutionException, MojoFailureException {
+ try {
+ process( buildFormattings(), collectDocBookResourceDependentArtifacts() );
+ }
+ catch ( XSLTException e ) {
+ throw new MojoExecutionException( "XSLT problem", e );
+ }
+ catch ( RenderingException e ) {
+ throw new MojoExecutionException( "Rendering problem", e );
+ }
+ }
+
+ private Formatting[] buildFormattings() {
+ Formatting[] formattings = new Formatting[ formats.length ];
+ for ( int i = 0; i < formats.length; i++ ) {
+ formattings[i] = new Formatting( StandardDocBookFormatSpecification.parse( formats[i].getFormatName() ), formats[i] );
+ }
+ return formattings;
+ }
+
+ private Artifact[] collectDocBookResourceDependentArtifacts() {
+ List artifacts = new ArrayList();
+ addDocBookResourceArtifacts( artifacts, projectArtifacts );
+ addDocBookResourceArtifacts( artifacts, pluginArtifacts );
+ return ( Artifact[] ) artifacts.toArray( new Artifact[ artifacts.size() ] );
+ }
+
+ private void addDocBookResourceArtifacts(Collection target, Collection source) {
+ Iterator itr = source.iterator();
+ while ( itr.hasNext() ) {
+ final Artifact artifact = ( Artifact ) itr.next();
+ getLog().info( "checking artifact : "+ artifact.getId() + " [" + artifact.getType() + "]" );
+ if ( "docbook-xslt".equals( artifact.getType() ) ||
+ "docbook-resources".equals( artifact.getType() ) ) {
+ target.add( artifact );
+ }
+ // temp...
+ else if ( "docbook-xslt".equals( artifact.getArtifactId() ) ) {
+ target.add( artifact );
+ }
+ }
+ }
+}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Format.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Format.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Format.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,39 +1,65 @@
package org.jboss.maven.plugin.docbook.gen;
-import org.jboss.maven.plugin.docbook.gen.util.FormatType;
-
/**
- * {@inheritDoc}
+ * Represents a user format specification.
*
* @author Steve Ebersole
*/
public class Format {
private String formatName;
+
+ private String targetFileExtension;
+ private String finalName;
private String stylesheetResource;
- private String finalName;
+ private Boolean imagePathSettingRequired;
+ private Boolean imageCopyingRequired;
+ private Boolean doingChunking;
public Format() {
}
- public Format(String formatName, String stylesheetResource, String finalName) {
+ public Format(
+ String formatName,
+ String targetFileExtension,
+ String finalName,
+ String stylesheetResource,
+ Boolean imagePathSettingRequired,
+ Boolean imageCopyingRequired,
+ Boolean doingChunking) {
this.formatName = formatName;
+ this.targetFileExtension = targetFileExtension;
+ this.finalName = finalName;
this.stylesheetResource = stylesheetResource;
- this.finalName = finalName;
+ this.imagePathSettingRequired = imagePathSettingRequired;
+ this.imageCopyingRequired = imageCopyingRequired;
+ this.doingChunking = doingChunking;
}
public String getFormatName() {
return formatName;
}
- public String getStylesheetResource() {
- return stylesheetResource;
+ public String getTargetFileExtension() {
+ return targetFileExtension;
}
public String getFinalName() {
return finalName;
}
- public FormatType getFormatType() {
- return FormatType.parse( formatName );
+ public String getStylesheetResource() {
+ return stylesheetResource;
}
+
+ public Boolean getImagePathSettingRequired() {
+ return imagePathSettingRequired;
+ }
+
+ public Boolean getImageCopyingRequired() {
+ return imageCopyingRequired;
+ }
+
+ public Boolean getDoingChunking() {
+ return doingChunking;
+ }
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/GenerationMojo.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -2,64 +2,25 @@
import java.io.File;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.artifact.Artifact;
import org.codehaus.plexus.util.FileUtils;
-import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
+import org.jboss.maven.plugin.docbook.gen.render.Formatting;
import org.jboss.maven.plugin.docbook.gen.render.RendererFactory;
import org.jboss.maven.plugin.docbook.gen.render.RenderingException;
+import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
/**
* A DocBook plugin based on the excellent docbkx-maven-plugin, but which
* specifically handles language translations in a more transparent way.
*
* @goal generate
- * @phase package
+ * @phase compile
*
* @author Steve Ebersole
*/
-public class GenerationMojo extends AbstractMojo {
+public class GenerationMojo extends AbstractDocBookMojo {
- /**
- * The directory where the sources are located.
- *
- * @parameter expression="${basedir}/src/main/docbook"
- */
- private File sourceDirectory;
-
- /**
- * The directory where the output will be written.
- *
- * @parameter expression="${basedir}/target/docbook"
- */
- private File targetDirectory;
-
- /**
- * The name of the document (relative to sourceDirectory) which is the
- * document to be rendered.
- *
- * @parameter
- * @required
- */
- private String sourceDocumentName;
-
- /**
- * The formats in which to perform rendering.
- *
- * @parameter
- * @required
- */
- private Format[] formats;
-
- /**
- * Configurable options
- *
- * @parameter
- */
- private Options options;
-
- public void execute() throws MojoExecutionException, MojoFailureException {
+ protected void process(Formatting[] formattings, Artifact[] resources) throws XSLTException, RenderingException {
if ( !sourceDirectory.exists() ) {
getLog().info( "sourceDirectory [" + sourceDirectory.getAbsolutePath() + "] did not exist" );
return;
@@ -74,18 +35,18 @@
FileUtils.mkdir( targetDirectory.getAbsolutePath() );
}
- RendererFactory rendererFactory = new RendererFactory( options, source, targetDirectory, getLog() );
- try {
- for ( int i = 0; i < formats.length; i++ ) {
- rendererFactory.buildRenderer( formats[i] ).render( source );
- }
- }
- catch ( XSLTException e ) {
- throw new MojoExecutionException( "XSLT problem", e );
- }
- catch ( RenderingException e ) {
- throw new MojoExecutionException( "Rendering problem", e );
- }
+ RendererFactory rendererFactory = new RendererFactory(
+ options,
+ source,
+ targetDirectory,
+ stagingDirectory,
+ project,
+ getLog()
+ );
+ for ( int i = 0; i < formattings.length; i++ ) {
+ rendererFactory.buildRenderer( formattings[i] ).render( source );
+ }
}
+
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Options.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Options.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Options.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -3,7 +3,7 @@
import java.util.Properties;
/**
- * {@inheritDoc}
+ * A (detachable) representation of the user configuration.
*
* @author Steve Ebersole
*/
@@ -12,6 +12,14 @@
private String[] catalogs;
private String xmlTransformerType;
private Properties transformerParameters;
+ private boolean useRelativeImageUris = true;
+ // TODO : try as hard as I possibly can to remove this :(
+ // this is gettable either from (1) VERSION (fm:project/fm:Version) or
+ // (2) the dependencies making up the execution classpath
+ //
+ // In #1, it would require had parsing :(, and #2 I've yet to actually
+ // find a wsay to do this...
+ private String docbookVersion;
public Options() {
}
@@ -20,11 +28,15 @@
boolean xincludeSupported,
String[] catalogs,
String xmlTransformerType,
- Properties transformerParameters) {
+ Properties transformerParameters,
+ boolean useRelativeImageUris,
+ String docBookVersion) {
this.xincludeSupported = xincludeSupported;
this.catalogs = catalogs;
this.xmlTransformerType = xmlTransformerType;
this.transformerParameters = transformerParameters;
+ this.useRelativeImageUris = useRelativeImageUris;
+ this.docbookVersion = docBookVersion;
}
public boolean isXincludeSupported() {
@@ -43,4 +55,11 @@
return transformerParameters;
}
+ public boolean isUseRelativeImageUris() {
+ return useRelativeImageUris;
+ }
+
+ public String getDocbookVersion() {
+ return docbookVersion;
+ }
}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/ResourceMojo.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,93 @@
+package org.jboss.maven.plugin.docbook.gen;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.resources.ResourcesMojo;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.jboss.maven.plugin.docbook.gen.render.Formatting;
+import org.jboss.maven.plugin.docbook.gen.render.RenderingException;
+import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
+
+/**
+ * This mojo's purpose within the plugin is to process resources defined
+ * by various inputs, moving them into a *single* staging directory for use
+ * during XSLT processing; the DocBook XSLT only allow defining a single
+ * <tt>img.src.path</tt> value.
+ *
+ * @goal resources
+ * @phase process-resources
+ *
+ * @author Steve Ebersole
+ */
+public class ResourceMojo extends AbstractDocBookMojo {
+
+ protected void process(Formatting[] formattings, Artifact[] resources)
+ throws RenderingException, XSLTException {
+ processProjectResources();
+ processDependencyResources( resources );
+ }
+
+ private void processProjectResources() throws RenderingException {
+ ResourcesMojo mavenResourcesMojo = new ResourcesMojo();
+ injectMojoValue( mavenResourcesMojo, "outputDirectory", stagingDirectory.getAbsolutePath() );
+ injectMojoValue( mavenResourcesMojo, "resources", project.getResources() );
+ injectMojoValue( mavenResourcesMojo, "project", project );
+ injectMojoValue( mavenResourcesMojo, "filters", project.getBuild().getFilters() );
+ mavenResourcesMojo.setLog( getLog() );
+ try {
+ mavenResourcesMojo.execute();
+ }
+ catch ( MojoExecutionException e ) {
+ throw new RenderingException( "unable to process project resources" );
+ }
+ }
+
+ private void injectMojoValue(ResourcesMojo mavenResourcesMojo, String name, Object value) throws RenderingException {
+ try {
+ Field field = ResourcesMojo.class.getDeclaredField( name );
+ if ( !field.isAccessible() ) {
+ field.setAccessible( true );
+ }
+ field.set( mavenResourcesMojo, value );
+ }
+ catch ( NoSuchFieldException e ) {
+ throw new RenderingException( "unable to locate mojo property field [" + name + "]", e );
+ }
+ catch ( IllegalAccessException e ) {
+ throw new RenderingException( "unable to access property field to set value", e );
+ }
+ }
+
+ private void processDependencyResources(Artifact[] resources)
+ throws RenderingException {
+ for ( int i = 0; i < resources.length; i++ ) {
+ processDependencyResource( resources[i].getFile(), stagingDirectory );
+ }
+ }
+
+ protected void processDependencyResource(File file, File target) throws RenderingException {
+ getLog().info( "unpacking dependency resource [" + file.getAbsolutePath() + "] to staging-dir [" + target.getAbsolutePath() + "]" );
+ try {
+ target.mkdirs();
+ UnArchiver unArchiver = archiverManager.getUnArchiver( file );
+ unArchiver.setSourceFile( file );
+ unArchiver.setDestDirectory( target );
+ unArchiver.extract();
+ }
+ catch ( NoSuchArchiverException e ) {
+ throw new RenderingException( "Unknown archiver type", e );
+ }
+ catch ( ArchiverException e ) {
+ throw new RenderingException( "Error unpacking file [" + file + "] to [" + target + "]", e );
+ }
+ catch ( IOException e ) {
+ throw new RenderingException( "Error unpacking file [" + file + "] to [" + target + "]", e );
+ }
+ }
+}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Settings.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Settings.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/Settings.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,60 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.xml.resolver.CatalogManager;
-import org.apache.maven.plugin.logging.Log;
-
-/**
- * {@inheritDoc}
- *
- * @author Steve Ebersole
- */
-public class Settings {
- private final boolean xincludeSupported;
- private final File sourceDocument;
- private final File targetDirectory;
- private final List entities;
- private final CatalogManager catalogManager;
- private final Log log;
-
- public Settings(
- boolean xincludeSupported,
- File sourceDocument,
- File targetDirectory,
- List entities,
- CatalogManager catalogManager,
- Log log) {
- this.xincludeSupported = xincludeSupported;
- this.sourceDocument = sourceDocument;
- this.targetDirectory = targetDirectory;
- this.entities = entities;
- this.catalogManager = catalogManager;
- this.log = log;
- }
-
- public boolean isXincludeSupported() {
- return xincludeSupported;
- }
-
- public File getSourceDocument() {
- return sourceDocument;
- }
-
- public File getTargetDirectory() {
- return targetDirectory;
- }
-
- public List getEntities() {
- return entities;
- }
-
- public CatalogManager getCatalogManager() {
- return catalogManager;
- }
-
- public Log getLog() {
- return log;
- }
-}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/BasicRenderer.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -14,7 +14,6 @@
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.jboss.maven.plugin.docbook.gen.Format;
import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
import org.apache.maven.plugin.logging.Log;
@@ -35,17 +34,33 @@
public static final String DTD_LOADING_FEATURE = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
protected final RendererFactory factory;
- protected final Format format;
+ protected final Formatting formatting;
- public BasicRenderer(RendererFactory factory, Format format) {
+ public BasicRenderer(RendererFactory factory, Formatting formatting) {
this.factory = factory;
- this.format = format;
+ this.formatting = formatting;
}
+ public File prepareDirectory() throws RenderingException {
+ File target = new File( factory.getTargetDirectory(), formatting.getFormatName() );
+ if ( ! target.exists() ) {
+ FileUtils.mkdir( target.getAbsolutePath() );
+ }
+ if ( formatting.isImageCopyingRequired() ) {
+ try {
+ FileUtils.copyDirectory( factory.getStagingDirectory(), target );
+ }
+ catch ( IOException e ) {
+ throw new RenderingException( "unable to copy images", e );
+ }
+ }
+ return target;
+ }
+
public final void render(File source) throws RenderingException, XSLTException {
- getLog().debug( "starting formatting [" + format.getFormatName() + "]" );
+ getLog().debug( "starting formatting [" + formatting.getFormatName() + "]" );
- File target = prepareTarget( source );
+ File target = prepareTarget( prepareDirectory(), source );
Transformer transformer = buildTransformer( target );
Source transformationSource = buildSource( source );
@@ -62,10 +77,10 @@
}
- private File prepareTarget(File source) throws RenderingException {
+ private File prepareTarget(File directory, File source) throws RenderingException {
String targetFileName = deduceTargetFileName( source );
getLog().debug( "preparing target file [" + targetFileName + "]" );
- File target = new File( factory.getTargetDirectory(), targetFileName );
+ File target = new File( directory, targetFileName );
if ( target.exists() ) {
if ( !target.delete() ) {
getLog().warn( "unable to clean up previous output file [" + target.getAbsolutePath() + "]" );
@@ -83,30 +98,39 @@
}
private String deduceTargetFileName(File source) {
- return format.getFinalName() == null
- ? FileUtils.basename( source.getAbsolutePath() ) + format.getFormatType().getStandardFileExtension()
- : format.getFinalName();
+ return formatting.getNamingStrategy().deduceTargetFileName( source );
}
protected Transformer buildTransformer(File targetFile)
throws RenderingException, XSLTException {
final URL transformationStylesheet = resolveTransformationStylesheet();
Transformer transformer = factory.getTransformerFactory()
- .buildTransformer( format.getFormatType(), transformationStylesheet );
- // "inclusion" of graphics in html is much different than other formats
- // REF: http://sagehill.net/docbookxsl/GraphicsLocations.html
- if ( format.getFormatType().isImagePathNeeded() ) {
- String imgSrcPath = factory.getTargetDirectory().getAbsolutePath() + "/";
+ .buildTransformer( formatting, transformationStylesheet );
+ if ( formatting.isImagePathSettingRequired() ) {
+ String imgSrcPath = factory.getStagingDirectory().getAbsolutePath() + "/";
getLog().debug( "setting 'img.src.path' [" + imgSrcPath + "]" );
transformer.setParameter( "img.src.path", imgSrcPath );
}
+ if ( factory.getOptions().isUseRelativeImageUris() ) {
+ getLog().debug( "enforcing retention of relative image URIs" );
+ transformer.setParameter( "keep.relative.image.uris", "0" );
+ }
+ if ( formatting.isDoingChunking() ) {
+ getLog().debug( "Chunking output." );
+ String rootFilename = targetFile.getName();
+ rootFilename = rootFilename.substring( 0, rootFilename.lastIndexOf( '.' ) );
+ transformer.setParameter( "root.filename", rootFilename );
+ transformer.setParameter( "base.dir", targetFile.getParent() + File.separator );
+ transformer.setParameter( "manifest.in.base.dir", "1" );
+ }
return transformer;
}
protected final URL resolveTransformationStylesheet() throws RenderingException {
- return format.getStylesheetResource() != null
- ? ResourceHelper.requireResource( format.getStylesheetResource() )
- : ResourceHelper.requireResource( format.getFormatType().getStylesheetResource() );
+ return ResourceHelper.requireResource( formatting.getStylesheetResource() );
+// return format.getStylesheetResource() != null
+// ? ResourceHelper.requireResource( format.getStylesheetResource() )
+// : ResourceHelper.requireResource( format.getFormatType().getStylesheetResource() );
}
private Source buildSource(File sourceFile) throws RenderingException {
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Formatting.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Formatting.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Formatting.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,103 @@
+package org.jboss.maven.plugin.docbook.gen.render;
+
+import java.io.File;
+
+import org.codehaus.plexus.util.FileUtils;
+import org.jboss.maven.plugin.docbook.gen.Format;
+import org.jboss.maven.plugin.docbook.gen.util.StandardDocBookFormatSpecification;
+
+/**
+ * Defined formatting information. Basically stuff to either pass into the xsl
+ * transformer or stuff needed to prepare for transformation.
+ *
+ * @author Steve Ebersole
+ */
+public class Formatting {
+ private final String formatName;
+ private final String stylesheetResource;
+ private final boolean imagePathSettingRequired;
+ private final boolean imageCopyingRequired;
+ private final boolean doingChunking;
+ private final StandardDocBookFormatSpecification standardDocBookSpec;
+ private final TargetNamingStrategy namingStrategy;
+
+ public Formatting(StandardDocBookFormatSpecification standardDocBookSpec, Format userSpec) {
+ // todo : there may not be a matching standard docbook format spec...
+ if ( ! standardDocBookSpec.getName().equals( userSpec.getFormatName() ) ) {
+ throw new IllegalArgumentException( "formatting type mismatch" );
+ }
+
+ this.standardDocBookSpec = standardDocBookSpec;
+ this.formatName = userSpec.getFormatName();
+
+ this.stylesheetResource = userSpec.getStylesheetResource() == null
+ ? standardDocBookSpec.getStylesheetResource()
+ : userSpec.getStylesheetResource();
+
+ this.imageCopyingRequired = userSpec.getImageCopyingRequired() == null
+ ? standardDocBookSpec.isImageCopyingRequired()
+ : userSpec.getImageCopyingRequired().booleanValue();
+
+ this.imagePathSettingRequired = userSpec.getImagePathSettingRequired() == null
+ ? standardDocBookSpec.isImagePathSettingRequired()
+ : userSpec.getImagePathSettingRequired().booleanValue();
+
+ this.doingChunking =userSpec.getDoingChunking() == null
+ ? standardDocBookSpec.isDoingChunking()
+ : userSpec.getDoingChunking().booleanValue();
+
+ this.namingStrategy = new TargetNamingStrategy( standardDocBookSpec, userSpec );
+ }
+
+ public String getFormatName() {
+ return formatName;
+ }
+
+ public StandardDocBookFormatSpecification getStandardDocBookSpec() {
+ return standardDocBookSpec;
+ }
+
+ public String getStylesheetResource() {
+ return stylesheetResource;
+ }
+
+ public boolean isImagePathSettingRequired() {
+ return imagePathSettingRequired;
+ }
+
+ public boolean isImageCopyingRequired() {
+ return imageCopyingRequired;
+ }
+
+ public boolean isDoingChunking() {
+ return doingChunking;
+ }
+
+ public TargetNamingStrategy getNamingStrategy() {
+ return namingStrategy;
+ }
+
+ public static class TargetNamingStrategy {
+ private String targetFileExtension;
+ private String finalName;
+
+ public TargetNamingStrategy(StandardDocBookFormatSpecification standardDocBookSpec, Format userSpec) {
+ if ( userSpec.getFinalName() != null ) {
+ this.targetFileExtension = null;
+ this.finalName = userSpec.getFinalName();
+ }
+ else {
+ this.targetFileExtension = userSpec.getTargetFileExtension() == null
+ ? standardDocBookSpec.getStandardFileExtension()
+ : userSpec.getTargetFileExtension();
+ this.finalName = null;
+ }
+ }
+
+ public String deduceTargetFileName(File source) {
+ return finalName == null
+ ? FileUtils.basename( source.getAbsolutePath() ) + targetFileExtension
+ : finalName;
+ }
+ }
+}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/HtmlRenderer.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -3,30 +3,21 @@
import java.io.File;
import javax.xml.transform.Transformer;
-import org.jboss.maven.plugin.docbook.gen.Format;
-import org.jboss.maven.plugin.docbook.gen.util.FormatType;
import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
/**
- * {@inheritDoc}
+ * Special handling for html processing
*
* @author Steve Ebersole
*/
public class HtmlRenderer extends BasicRenderer {
- public HtmlRenderer(RendererFactory factory, Format format) {
- super( factory, format );
+ public HtmlRenderer(RendererFactory factory, Formatting formatting) {
+ super( factory, formatting );
}
protected Transformer buildTransformer(File targetFile)
throws RenderingException, XSLTException {
Transformer transformer = super.buildTransformer( targetFile );
- if ( format.getFormatType() == FormatType.HTML ) {
- getLog().debug( "Chunking output." );
- String rootFilename = targetFile.getName();
- rootFilename = rootFilename.substring( 0, rootFilename.lastIndexOf( '.' ) );
- transformer.setParameter( "root.filename", rootFilename );
- transformer.setParameter( "base.dir", targetFile.getParent() + File.separator );
- }
return transformer;
}
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/PdfRenderer.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,24 +1,25 @@
package org.jboss.maven.plugin.docbook.gen.render;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.OutputStream;
-import java.io.FileNotFoundException;
import javax.xml.transform.Result;
import javax.xml.transform.sax.SAXResult;
-import org.jboss.maven.plugin.docbook.gen.Format;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.fop.apps.Driver;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.maven.plugin.logging.Log;
/**
- * {@inheritDoc}
+ * Special handling for pdf rendering
*
* @author Steve Ebersole
*/
public class PdfRenderer extends BasicRenderer {
- public PdfRenderer(RendererFactory factory, Format format) {
- super( factory, format );
+
+ public PdfRenderer(RendererFactory factory, Formatting formatting) {
+ super( factory, formatting );
}
protected Result buildResult(File targetFile) throws RenderingException {
@@ -28,14 +29,12 @@
driver.setRenderer( Driver.RENDER_PDF );
try {
- OutputStream out = new java.io.FileOutputStream( targetFile );
+ OutputStream out = new BufferedOutputStream( new FileOutputStream( targetFile ) );
driver.setOutputStream( out );
return new SAXResult( driver.getContentHandler() );
}
- catch ( FileNotFoundException e ) {
- throw new RenderingException(
- "unable to access target file " + targetFile.getAbsolutePath()
- );
+ catch ( Throwable t ) {
+ throw new RenderingException( "error rendering pdf [" + targetFile.getAbsolutePath() + "]", t );
}
}
@@ -113,4 +112,42 @@
}
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // this is (supposed) fop-0.93 usage pattern. I have been unsucessful
+ // getting this to work (hence rolling back to 0.25)
+
+// protected Result buildResult(File targetFile) throws RenderingException {
+// getLog().info( "building formatting result [" + targetFile.getAbsolutePath() + "]" );
+//
+// FopFactory fopFactory = FopFactory.newInstance();
+// // todo : need to set up at the font base URL
+//// fopFactory.setFontBaseURL( "xyz" );
+//
+// FOUserAgent userAgent = fopFactory.newFOUserAgent();
+// userAgent.setProducer( "maven-jboss-docbook-plugin" );
+// userAgent.setCreationDate( new Date() );
+// userAgent.setTitle( factory.getMavenProject().getName() );
+// if ( factory.getMavenProject().getOrganization() != null ) {
+// if ( factory.getMavenProject().getOrganization().getName() != null ) {
+// userAgent.setAuthor( factory.getMavenProject().getOrganization().getName() );
+// userAgent.setCreator( factory.getMavenProject().getOrganization().getName() );
+// }
+// }
+//
+// try {
+// OutputStream out = new BufferedOutputStream( new FileOutputStream( targetFile ) );
+// try {
+// Fop fop = fopFactory.newFop( MimeConstants.MIME_PDF, userAgent, out );
+// return new SAXResult( fop.getDefaultHandler() );
+// }
+// finally {
+// out.close();
+// }
+// }
+// catch ( Throwable t ) {
+// throw new RenderingException( "error rendering pdf [" + targetFile.getAbsolutePath() + "]", t );
+// }
+// }
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Renderer.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Renderer.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/Renderer.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,6 +1,7 @@
package org.jboss.maven.plugin.docbook.gen.render;
import java.io.File;
+import java.io.IOException;
import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
@@ -10,5 +11,6 @@
* @author Steve Ebersole
*/
public interface Renderer {
+ public File prepareDirectory() throws RenderingException;
public void render(File source) throws RenderingException, XSLTException;
}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/render/RendererFactory.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -2,17 +2,17 @@
import java.io.File;
-import org.jboss.maven.plugin.docbook.gen.Format;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.apache.xml.resolver.CatalogManager;
+import org.apache.xml.resolver.tools.CatalogResolver;
import org.jboss.maven.plugin.docbook.gen.Options;
+import org.jboss.maven.plugin.docbook.gen.util.StandardDocBookFormatSpecification;
import org.jboss.maven.plugin.docbook.gen.util.TransformerType;
-import org.jboss.maven.plugin.docbook.gen.util.FormatType;
+import org.jboss.maven.plugin.docbook.gen.xslt.TransformerFactory;
import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
-import org.jboss.maven.plugin.docbook.gen.xslt.TransformerFactory;
-import org.jboss.maven.plugin.docbook.gen.xslt.resolve.StandardCatalogManager;
-import org.jboss.maven.plugin.docbook.gen.xslt.resolve.ExplicitCatalogManager;
-import org.apache.xml.resolver.CatalogManager;
-import org.apache.xml.resolver.tools.CatalogResolver;
-import org.apache.maven.plugin.logging.Log;
+import org.jboss.maven.plugin.docbook.gen.xslt.catalog.ExplicitCatalogManager;
+import org.jboss.maven.plugin.docbook.gen.xslt.catalog.ImplicitCatalogManager;
/**
* Builds a renderer for the given format
@@ -23,33 +23,28 @@
private final Options options;
private final File source;
private final File targetDirectory;
+ private final File stagingDirectory;
+ private final MavenProject mavenProject;
private final Log log;
- private final CatalogResolver catalogResolver;
- private final TransformerFactory transformerFactory;
- public RendererFactory(Options options, File source, File targetDirectory, Log log) {
+ private CatalogResolver catalogResolver;
+ private TransformerFactory transformerFactory;
+
+ public RendererFactory(
+ Options options,
+ File source,
+ File targetDirectory,
+ File stagingDirectory,
+ MavenProject mavenProject,
+ Log log) {
this.options = options;
this.source = source;
this.targetDirectory = targetDirectory;
+ this.stagingDirectory = stagingDirectory;
+ this.mavenProject = mavenProject;
this.log = log;
- CatalogManager catalogManager;
- // todo : add a "recommended catalog manager" based on discussion at http://sagehill.net/docbookxsl/Catalogs.html
- // especially the part at http://sagehill.net/docbookxsl/WriteCatalog.html#MapManyWithRewrite
- if ( options.getCatalogs() == null || options.getCatalogs().length == 0 ) {
- catalogManager = new StandardCatalogManager();
- }
- else {
- catalogManager = new ExplicitCatalogManager( options.getCatalogs() );
- }
- catalogResolver = new CatalogResolver( catalogManager );
- transformerFactory = new TransformerFactory(
- TransformerType.parse( options.getXmlTransformerType() ),
- options.getTransformerParameters(),
- catalogResolver
- );
}
-
public Options getOptions() {
return options;
}
@@ -62,28 +57,55 @@
return targetDirectory;
}
+ public File getStagingDirectory() {
+ return stagingDirectory;
+ }
+
+ public MavenProject getMavenProject() {
+ return mavenProject;
+ }
+
public Log getLog() {
return log;
}
public CatalogResolver getCatalogResolver() {
+ if ( catalogResolver == null ) {
+ CatalogManager catalogManager;
+ if ( options.getCatalogs() == null || options.getCatalogs().length == 0 ) {
+ catalogManager = new ImplicitCatalogManager();
+ }
+ else {
+ catalogManager = new ExplicitCatalogManager( options.getCatalogs() );
+ }
+ catalogResolver = new CatalogResolver( catalogManager );
+ }
return catalogResolver;
}
public TransformerFactory getTransformerFactory() {
+ if ( transformerFactory == null ) {
+ transformerFactory = new TransformerFactory(
+ TransformerType.parse( options.getXmlTransformerType() ),
+ options.getTransformerParameters(),
+ getCatalogResolver(),
+ options.getDocbookVersion()
+ );
+ }
return transformerFactory;
}
- public Renderer buildRenderer(Format format) throws XSLTException {
- FormatType type = format.getFormatType();
- if ( type == FormatType.PDF ) {
- return new PdfRenderer( this, format );
+ public Renderer buildRenderer(Formatting formatting) throws XSLTException {
+ // todo : these usages of 'FormatType' are ok as well
+ if ( formatting.getFormatName().equals( StandardDocBookFormatSpecification.PDF.getName() ) ) {
+ return new PdfRenderer( this, formatting );
}
- else if ( type == FormatType.HTML || type == FormatType.HTML_SINGLE ) {
- return new HtmlRenderer( this, format );
+ else if ( formatting.getFormatName().equals( StandardDocBookFormatSpecification.HTML.getName() )
+ || formatting.getFormatName().equals( StandardDocBookFormatSpecification.HTML_SINGLE.getName() ) ) {
+ return new HtmlRenderer( this, formatting );
}
else {
- return new BasicRenderer( this, format );
+ return new BasicRenderer( this, formatting );
}
}
}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/FormatType.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/FormatType.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/FormatType.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,67 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.util;
-
-/**
- * An enumeration of the various types of formatting supported in this plugin.
- * <p/>
- * DocBook does define some other output formatting support (like HTML Help),
- * but those are not covered nor supported by this plugin.
- *
- * @author Steve Ebersole
- */
-public class FormatType {
- public static final FormatType PDF = new FormatType( "pdf", "/fo/docbook.xsl" );
- public static final FormatType HTML = new FormatType( "html", "html", "/html/chunk.xsl", false );
- public static final FormatType HTML_SINGLE = new FormatType( "html_single", "html", "/html/docbook.xsl", false );
- public static final FormatType MAN = new FormatType( "man", "/manpages/docbook.xsl" );
-
- private final String name;
- private final String standardFileExtension;
- private final String stylesheetResource;
- private final boolean imagePathNeeded;
-
-
- public FormatType(String name, String stylesheetResource) {
- this( name, name, stylesheetResource, true );
- }
-
- private FormatType(String name, String standardFileExtension, String stylesheetResource, boolean imagePathNeeded) {
- this.name = name;
- this.standardFileExtension = standardFileExtension;
- this.stylesheetResource = stylesheetResource;
- this.imagePathNeeded = imagePathNeeded;
- }
-
- public String getName() {
- return name;
- }
-
- public String getStandardFileExtension() {
- return standardFileExtension;
- }
-
- public String getStylesheetResource() {
- return stylesheetResource;
- }
-
- public boolean isImagePathNeeded() {
- return imagePathNeeded;
- }
-
- public static FormatType parse(String name) {
- if ( PDF.name.equals( name ) ) {
- return PDF;
- }
- else if ( HTML.name.equals( name ) ) {
- return HTML;
- }
- else if ( HTML_SINGLE.name.equals( name ) ) {
- return HTML_SINGLE;
- }
- else if ( MAN.name.equals( name ) ) {
- return MAN;
- }
- else {
- throw new IllegalArgumentException( "unknown format type [" + name + "]" );
- }
- }
-}
Copied: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/StandardDocBookFormatSpecification.java (from rev 11597, trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/FormatType.java)
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/StandardDocBookFormatSpecification.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/util/StandardDocBookFormatSpecification.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,141 @@
+package org.jboss.maven.plugin.docbook.gen.util;
+
+/**
+ * An enumeration of the various types of formatting supported in this plugin.
+ * <p/>
+ * DocBook does define some other output formatting support (like HTML Help),
+ * but those are not covered nor supported by this plugin.
+ * <p/>
+ * Really, instead of a discrete enumeration, these should act as templates
+ * based on the docbook standard formats. The attributes here should be exposed
+ * to the user for configuration, thesse attributes values acting as defaults
+ * based on the selected format-name.
+ *
+ * @author Steve Ebersole
+ */
+public class StandardDocBookFormatSpecification {
+ public static final StandardDocBookFormatSpecification ECLIPSE =
+ new HtmlBasedStandardDocBookFormat( "eclipse", "/eclipse/eclipse.xsl" );
+
+ public static final StandardDocBookFormatSpecification HTML =
+ new HtmlBasedStandardDocBookFormat( "html", "/html/chunk.xsl" );
+
+ public static final StandardDocBookFormatSpecification HTML_SINGLE =
+ new HtmlBasedStandardDocBookFormat( "html_single", "/html/docbook.xsl", false );
+
+ public static final StandardDocBookFormatSpecification HTMLHELP =
+ new HtmlBasedStandardDocBookFormat( "htmlhelp", "/htmlhelp/htmlhelp.xsl" );
+
+ public static final StandardDocBookFormatSpecification JAVAHELP =
+ new HtmlBasedStandardDocBookFormat( "javahelp", "/javahelp/javahelp.xsl" );
+
+ public static final StandardDocBookFormatSpecification MAN =
+ new HtmlBasedStandardDocBookFormat( "man", "/manpages/docbook.xsl", false );
+
+ public static final StandardDocBookFormatSpecification PDF =
+ new StandardDocBookFormatSpecification( "pdf", "pdf", "/fo/docbook.xsl", true, false, false );
+
+ public static final StandardDocBookFormatSpecification WEBSITE =
+ new HtmlBasedStandardDocBookFormat( "website", "/website/website.xsl", false );
+
+// I'd rather not support this...
+// public static final FormatType WORDML =
+// new FormatType( "wordml", "doc", "/wordml/wordml.xsl", ?, ?, ? );
+
+ public static final StandardDocBookFormatSpecification XHTML =
+ new StandardDocBookFormatSpecification( "xhtml", "xhtml", "/xhtml/docbook.xsl", false, true, false );
+
+ private final String name;
+ private final String standardFileExtension;
+ private final String stylesheetResource;
+ private final boolean imagePathSettingRequired;
+ private final boolean imageCopyingRequired;
+ private final boolean doingChunking;
+
+ public StandardDocBookFormatSpecification(
+ String name,
+ String standardFileExtension,
+ String stylesheetResource,
+ boolean imagePathSettingRequired,
+ boolean imageCopyingRequired,
+ boolean doingChunking) {
+ this.name = name;
+ this.standardFileExtension = standardFileExtension;
+ this.stylesheetResource = stylesheetResource;
+ this.imagePathSettingRequired = imagePathSettingRequired;
+ this.imageCopyingRequired = imageCopyingRequired;
+ this.doingChunking = doingChunking;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getStandardFileExtension() {
+ return standardFileExtension;
+ }
+
+ public String getStylesheetResource() {
+ return stylesheetResource;
+ }
+
+ public boolean isImagePathSettingRequired() {
+ return imagePathSettingRequired;
+ }
+
+ public boolean isImageCopyingRequired() {
+ return imageCopyingRequired;
+ }
+
+ public boolean isDoingChunking() {
+ return doingChunking;
+ }
+
+ public static StandardDocBookFormatSpecification parse(String name) {
+ if ( ECLIPSE.name.equals( name ) ) {
+ return ECLIPSE;
+ }
+ else if ( HTML.name.equals( name ) ) {
+ return HTML;
+ }
+ else if ( HTML_SINGLE.name.equals( name ) ) {
+ return HTML_SINGLE;
+ }
+ else if ( HTMLHELP.name.equals( name ) ) {
+ return HTMLHELP;
+ }
+ else if ( JAVAHELP.name.equals( name ) ) {
+ return JAVAHELP;
+ }
+ else if ( MAN.name.equals( name ) ) {
+ return MAN;
+ }
+ else if ( PDF.name.equals( name ) ) {
+ return PDF;
+ }
+ else if ( WEBSITE.name.equals( name ) ) {
+ return WEBSITE;
+ }
+// else if ( WORDML.name.equals( name ) ) {
+// return WORDML;
+// }
+ else if ( XHTML.name.equals( name ) ) {
+ return XHTML;
+ }
+ else {
+ return null;
+ }
+ }
+
+
+ // convenience for html based formats to simplify ctors ~~~~~~~~~~~~~~~~~~~
+
+ private static class HtmlBasedStandardDocBookFormat extends StandardDocBookFormatSpecification {
+ private HtmlBasedStandardDocBookFormat(String name, String stylesheetResource) {
+ this( name, stylesheetResource, true );
+ }
+ private HtmlBasedStandardDocBookFormat(String name, String stylesheetResource, boolean doingChunking) {
+ super( name, "html", stylesheetResource, false, true, doingChunking );
+ }
+ }
+}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/TransformerFactory.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,25 +1,29 @@
package org.jboss.maven.plugin.docbook.gen.xslt;
-import java.util.Properties;
+import java.io.IOException;
+import java.net.URL;
import java.util.Iterator;
import java.util.Map;
-import java.net.URL;
-import java.io.IOException;
+import java.util.Properties;
+import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
-import javax.xml.transform.Source;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.stream.StreamSource;
+import com.icl.saxon.Controller;
import org.apache.xml.resolver.tools.CatalogResolver;
+import org.jboss.maven.plugin.docbook.gen.render.Formatting;
+import org.jboss.maven.plugin.docbook.gen.util.StandardDocBookFormatSpecification;
+import org.jboss.maven.plugin.docbook.gen.util.NoOpWriter;
+import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
import org.jboss.maven.plugin.docbook.gen.util.TransformerType;
-import org.jboss.maven.plugin.docbook.gen.xslt.resolve.DocBookStylesheetResolver;
+import org.jboss.maven.plugin.docbook.gen.xslt.resolve.CurrentVersionResolver;
+import org.jboss.maven.plugin.docbook.gen.xslt.resolve.ExplicitUrnResolver;
+import org.jboss.maven.plugin.docbook.gen.xslt.resolve.RelativeJarUriResolver;
import org.jboss.maven.plugin.docbook.gen.xslt.resolve.ResolverChain;
-import org.jboss.maven.plugin.docbook.gen.util.FormatType;
-import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
-import org.jboss.maven.plugin.docbook.gen.util.NoOpWriter;
-import com.icl.saxon.Controller;
+import org.jboss.maven.plugin.docbook.gen.xslt.resolve.VersionResolver;
/**
* A factory for {@link javax.xml.transform.Transformer} instances, configurable
@@ -31,24 +35,26 @@
private final TransformerType transformerType;
private final Properties transformerParameters;
private final CatalogResolver catalogResolver;
+ private final String docbookVersion;
public TransformerFactory(
TransformerType transformerType,
Properties transformerParameters,
- CatalogResolver catalogResolver) {
+ CatalogResolver catalogResolver, String docbookVersion) {
this.transformerType = transformerType;
this.transformerParameters = transformerParameters;
this.catalogResolver = catalogResolver;
+ this.docbookVersion = docbookVersion;
}
- public Transformer buildTransformer(FormatType formatType, URL customStylesheet) throws XSLTException {
- URIResolver uriResolver = buildUriResolver( formatType );
+ public Transformer buildTransformer(Formatting formatting, URL customStylesheet) throws XSLTException {
+ URIResolver uriResolver = buildUriResolver( formatting.getStandardDocBookSpec() );
javax.xml.transform.TransformerFactory transformerFactory = buildTransformerFactory();
transformerFactory.setURIResolver( uriResolver );
URL xsltStylesheet = customStylesheet == null
- ? ResourceHelper.requireResource( formatType.getStylesheetResource() )
+ ? ResourceHelper.requireResource( formatting.getStylesheetResource() )
: customStylesheet;
Transformer transformer;
@@ -100,11 +106,17 @@
}
}
- private URIResolver buildUriResolver(FormatType formatType)
- throws XSLTException {
+ private URIResolver buildUriResolver(StandardDocBookFormatSpecification formatType) throws XSLTException {
ResolverChain resolverChain = new ResolverChain();
+ if ( formatType != null ) {
+ resolverChain.addResolver( new ExplicitUrnResolver( formatType ) );
+ }
+ resolverChain.addResolver( new CurrentVersionResolver() );
+ if ( docbookVersion != null ) {
+ resolverChain.addResolver( new VersionResolver( docbookVersion ) );
+ }
+ resolverChain.addResolver( new RelativeJarUriResolver() );
resolverChain.addResolver( catalogResolver );
- resolverChain.addResolver( new DocBookStylesheetResolver( formatType ) );
return resolverChain;
}
}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/AbstractCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/AbstractCatalogManager.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/AbstractCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,31 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.catalog;
+
+import org.apache.xml.resolver.CatalogManager;
+
+/**
+ * Basic support for our notion of CatalogManagers.
+ *
+ * @author Steve Ebersole
+ */
+public abstract class AbstractCatalogManager extends CatalogManager {
+ public AbstractCatalogManager(String[] catalogNames) {
+ super();
+ setIgnoreMissingProperties( true );
+ if ( catalogNames != null && catalogNames.length != 0 ) {
+ StringBuffer buffer = new StringBuffer();
+ boolean first = true;
+ for ( int i = 0; i < catalogNames.length; i++ ) {
+ if ( catalogNames[i] != null ) {
+ if ( first ) {
+ first = false;
+ }
+ else {
+ buffer.append( ';' );
+ }
+ }
+ buffer.append( catalogNames[i] );
+ }
+ setCatalogFiles( buffer.toString() );
+ }
+ }
+}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ExplicitCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ExplicitCatalogManager.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ExplicitCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,14 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.catalog;
+
+
+/**
+ * Utilizes explicit, user-supplied catalog names to build a
+ * CatalogManager.
+ *
+ * @author Steve Ebersole
+ */
+public class ExplicitCatalogManager extends AbstractCatalogManager {
+ public ExplicitCatalogManager(String[] catalogNames) {
+ super( catalogNames );
+ }
+}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ImplicitCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ImplicitCatalogManager.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/catalog/ImplicitCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,41 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.catalog;
+
+import java.util.Enumeration;
+import java.util.ArrayList;
+import java.net.URL;
+import java.io.IOException;
+
+/**
+ * CatalogManager which resolves its catalogs internally via classpath
+ * resource lookups. Its looks for resources named '/catalog.xml' on the
+ * classpath.
+ *
+ * @author Steve Ebersole
+ */
+public class ImplicitCatalogManager extends AbstractCatalogManager {
+ public ImplicitCatalogManager() {
+ super( resolveCatalogNames() );
+ }
+
+ private static String[] resolveCatalogNames() {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ if ( classLoader == null ) {
+ classLoader = ImplicitCatalogManager.class.getClassLoader();
+ }
+ ArrayList names = new ArrayList();
+ try {
+ Enumeration enumeration = classLoader.getResources( "/catalog.xml" );
+ while ( enumeration.hasMoreElements() ) {
+ final URL resource = ( URL ) enumeration.nextElement();
+ final String resourcePath = resource.toExternalForm();
+ if ( resourcePath != null ) {
+ names.add( resourcePath );
+ }
+ }
+ }
+ catch ( IOException ignore ) {
+ // intentionally empty
+ }
+ return ( String[] ) names.toArray( new String[ names.size() ] );
+ }
+}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/AbstractCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/AbstractCatalogManager.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/AbstractCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,31 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
-
-import org.apache.xml.resolver.CatalogManager;
-
-/**
- * Basic support for our notion of CatalogManagers.
- *
- * @author Steve Ebersole
- */
-public abstract class AbstractCatalogManager extends CatalogManager {
- public AbstractCatalogManager(String[] catalogNames) {
- super();
- setIgnoreMissingProperties( true );
- if ( catalogNames != null && catalogNames.length != 0 ) {
- StringBuffer buffer = new StringBuffer();
- boolean first = true;
- for ( int i = 0; i < catalogNames.length; i++ ) {
- if ( catalogNames[i] != null ) {
- if ( first ) {
- first = false;
- }
- else {
- buffer.append( ';' );
- }
- }
- buffer.append( catalogNames[i] );
- }
- setCatalogFiles( buffer.toString() );
- }
- }
-}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/CurrentVersionResolver.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/CurrentVersionResolver.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/CurrentVersionResolver.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,14 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
+
+/**
+ * Map hrefs starting with <tt>http://docbook.sourceforge.net/release/xsl/current/</tt>
+ * to classpath resource lookups.
+ *
+ * @author Steve Ebersole
+ */
+public class CurrentVersionResolver extends VersionResolver {
+
+ public CurrentVersionResolver() {
+ super( "current" );
+ }
+}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/DocBookStylesheetResolver.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/DocBookStylesheetResolver.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/DocBookStylesheetResolver.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,38 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
-
-import java.net.URL;
-import java.io.IOException;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-
-import org.jboss.maven.plugin.docbook.gen.util.FormatType;
-import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
-import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
-
-/**
- * Resolves against the set of standard DocBook stylesheets
- *
- * @author Steve Ebersole
- */
-public class DocBookStylesheetResolver extends BasicUrnResolver {
- private final FormatType formatType;
-
- public DocBookStylesheetResolver(FormatType type) throws XSLTException {
- super( "urn:docbook:stylesheet", createSource( type ) );
- this.formatType = type;
- }
-
- private static Source createSource(FormatType type) throws XSLTException {
- URL stylesheet = ResourceHelper.requireResource( type.getStylesheetResource() );
- try {
- return new StreamSource( stylesheet.openStream(), stylesheet.toExternalForm() );
- }
- catch ( IOException e ) {
- throw new XSLTException( "could not locate DocBook stylesheet [" + type.getName() + "]", e );
- }
- }
-
- public String toString() {
- return super.toString() + " [" + formatType.getName() + "]";
- }
-}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitCatalogManager.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,14 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
-
-
-/**
- * Utilizes explicit, user-supplied catalog names to build a
- * CatalogManager.
- *
- * @author Steve Ebersole
- */
-public class ExplicitCatalogManager extends AbstractCatalogManager {
- public ExplicitCatalogManager(String[] catalogNames) {
- super( catalogNames );
- }
-}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitUrnResolver.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitUrnResolver.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ExplicitUrnResolver.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,39 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
+
+import java.net.URL;
+import java.io.IOException;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
+import org.jboss.maven.plugin.docbook.gen.util.StandardDocBookFormatSpecification;
+import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
+import org.jboss.maven.plugin.docbook.gen.xslt.XSLTException;
+
+/**
+ * Resolves an explicit <tt>urn:docbook:stylesheet</tt> URN against the standard
+ * DocBook stylesheets.
+ *
+ * @author Steve Ebersole
+ */
+public class ExplicitUrnResolver extends BasicUrnResolver {
+ private final StandardDocBookFormatSpecification formatType;
+
+ public ExplicitUrnResolver(StandardDocBookFormatSpecification type) throws XSLTException {
+ super( "urn:docbook:stylesheet", createSource( type ) );
+ this.formatType = type;
+ }
+
+ private static Source createSource(StandardDocBookFormatSpecification type) throws XSLTException {
+ URL stylesheet = ResourceHelper.requireResource( type.getStylesheetResource() );
+ try {
+ return new StreamSource( stylesheet.openStream(), stylesheet.toExternalForm() );
+ }
+ catch ( IOException e ) {
+ throw new XSLTException( "could not locate DocBook stylesheet [" + type.getName() + "]", e );
+ }
+ }
+
+ public String toString() {
+ return super.toString() + " [" + formatType.getName() + "]";
+ }
+}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/RelativeJarUriResolver.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,36 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
+
+import java.net.URL;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.stream.StreamSource;
+
+/**
+ * Responsible for resolving relative references from jar base urls.
+ *
+ * @author Steve Ebersole
+ */
+public class RelativeJarUriResolver implements URIResolver {
+ public Source resolve(String href, String base) throws TransformerException {
+ // href need to be relative
+ if ( href.indexOf( "://" ) > 0 || href.startsWith( "/" ) ) {
+ return null;
+ }
+
+ // base would need to start with jar:
+ if ( !base.startsWith( "jar:" ) ) {
+ return null;
+ }
+
+ String fullHref = base.substring( 4, base.lastIndexOf( '/' ) + 1 )
+ + href;
+ try {
+ URL url = new URL( fullHref );
+ return new StreamSource( url.openStream(), url.toExternalForm() );
+ }
+ catch ( Throwable t ) {
+ return null;
+ }
+ }
+}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ResolverChain.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ResolverChain.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/ResolverChain.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -45,7 +45,8 @@
Source result = null;
Iterator itr = resolvers.iterator();
while ( itr.hasNext() ) {
- result = ( ( URIResolver ) itr.next() ).resolve( href, base );
+ final URIResolver resolver = ( URIResolver ) itr.next();
+ result = resolver.resolve( href, base );
if ( result != null ) {
break;
}
Deleted: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/StandardCatalogManager.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/StandardCatalogManager.java 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/StandardCatalogManager.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,41 +0,0 @@
-package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
-
-import java.util.Enumeration;
-import java.util.ArrayList;
-import java.net.URL;
-import java.io.IOException;
-
-/**
- * CatalogManager which resolves its catalogs internally via classpath
- * resource lookups. Its looks for resources named '/catalog.xml' on the
- * classpath.
- *
- * @author Steve Ebersole
- */
-public class StandardCatalogManager extends AbstractCatalogManager {
- public StandardCatalogManager() {
- super( resolveCatalogNames() );
- }
-
- private static String[] resolveCatalogNames() {
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- if ( classLoader == null ) {
- classLoader = StandardCatalogManager.class.getClassLoader();
- }
- ArrayList names = new ArrayList();
- try {
- Enumeration enumeration = classLoader.getResources( "/catalog.xml" );
- while ( enumeration.hasMoreElements() ) {
- final URL resource = ( URL ) enumeration.nextElement();
- final String resourcePath = resource.toExternalForm();
- if ( resourcePath != null ) {
- names.add( resourcePath );
- }
- }
- }
- catch ( IOException ignore ) {
- // intentionally empty
- }
- return ( String[] ) names.toArray( new String[ names.size() ] );
- }
-}
Added: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java (rev 0)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/java/org/jboss/maven/plugin/docbook/gen/xslt/resolve/VersionResolver.java 2007-06-12 17:51:25 UTC (rev 11680)
@@ -0,0 +1,55 @@
+package org.jboss.maven.plugin.docbook.gen.xslt.resolve;
+
+import java.net.URL;
+import java.io.IOException;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamSource;
+
+import org.jboss.maven.plugin.docbook.gen.util.ResourceHelper;
+
+/**
+ * {@inheritDoc}
+ *
+ * @author Steve Ebersole
+ */
+public class VersionResolver implements URIResolver {
+ public static final String BASE_HREF = "http://docbook.sourceforge.net/release/xsl/";
+
+ private final String version;
+ private final String versionHref;
+
+ public VersionResolver(String version) {
+ this.version = version;
+ this.versionHref = BASE_HREF + version;
+ }
+
+ public Source resolve(String href, String base) throws TransformerException {
+ if ( href.startsWith( versionHref ) ) {
+ return resolve( href );
+ }
+ else if ( base.startsWith( versionHref ) ) {
+ return resolve( base + "/" + href );
+ }
+ return null;
+ }
+
+ private Source resolve(String href) {
+ String resource = href.substring( versionHref.length() );
+ try {
+ URL resourceURL = ResourceHelper.requireResource( resource );
+ return new StreamSource( resourceURL.openStream(), resourceURL.toExternalForm() );
+ }
+ catch ( IllegalArgumentException e ) {
+ return null;
+ }
+ catch ( IOException e ) {
+ return null;
+ }
+ }
+
+ public String toString() {
+ return super.toString() + " [version=" + version + "]";
+ }
+}
Modified: trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/resources/META-INF/plexus/components.xml
===================================================================
--- trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/resources/META-INF/plexus/components.xml 2007-06-11 13:24:05 UTC (rev 11679)
+++ trunk/sandbox/maven-poc/plugins/maven-jboss-docbook-plugin/src/main/resources/META-INF/plexus/components.xml 2007-06-12 17:51:25 UTC (rev 11680)
@@ -1,10 +1,31 @@
<component-set>
+
<components>
+
<component>
<role>org.apache.maven.reporting.MavenReport</role>
<role-hint>diff</role-hint>
<implementation>org.jboss.maven.plugin.docbook.revdiff.TranslationDiffReport</implementation>
<instantiation-strategy>per-lookup</instantiation-strategy>
</component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>docbook</role-hint>
+ <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <phases>
+ <process-resources>org.jboss.maven.plugins:maven-jboss-docbook-plugin:resources</process-resources>
+ <compile>org.jboss.maven.plugins:maven-jboss-docbook-plugin:generate</compile>
+ <!--
+ <package>org.codehaus.plexus:plexus-maven-plugin:app</package>
+ -->
+ <install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ </configuration>
+ </component>
+
</components>
+
</component-set>
\ No newline at end of file
18 years, 5 months
Hibernate SVN: r11679 - in branches/Branch_3_2/HibernateExt/tools/src: templates/hbm and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2007-06-11 09:24:05 -0400 (Mon, 11 Jun 2007)
New Revision: 11679
Modified:
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/ConfigurationNavigator.java
branches/Branch_3_2/HibernateExt/tools/src/templates/hbm/component.hbm.ftl
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java
Log:
HBX-267 handle <properties> in hbm2java
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/ConfigurationNavigator.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/ConfigurationNavigator.java 2007-06-11 12:05:43 UTC (rev 11678)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/ConfigurationNavigator.java 2007-06-11 13:24:05 UTC (rev 11679)
@@ -87,7 +87,8 @@
private static void collectComponents(Map components, Iterator iter) {
while(iter.hasNext()) {
Property property = (Property) iter.next();
- if (property.getValue() instanceof Component) {
+ if (!"embedded".equals(property.getPropertyAccessorName()) && // HBX-267, embedded property for <properties> should not be generated as component.
+ property.getValue() instanceof Component) {
Component comp = (Component) property.getValue();
addComponent( components, comp );
}
@@ -111,7 +112,7 @@
}
} else {
log.debug("dynamic-component found. Ignoring it as a component, but will collect any embedded components.");
- }
+ }
collectComponents( components, new ComponentPOJOClass(comp, new Cfg2JavaTool()).getAllPropertiesIterator());
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/templates/hbm/component.hbm.ftl
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/templates/hbm/component.hbm.ftl 2007-06-11 12:05:43 UTC (rev 11678)
+++ branches/Branch_3_2/HibernateExt/tools/src/templates/hbm/component.hbm.ftl 2007-06-11 13:24:05 UTC (rev 11679)
@@ -1,3 +1,4 @@
+
<component
name="${property.name}"
class="${property.value.componentClassName}">
@@ -4,5 +5,5 @@
<#assign metaattributable=property>
<#include "meta.hbm.ftl">
-<!-- TODO -->
+<!-- TODO: handle properties and component -->
</component>
\ No newline at end of file
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java 2007-06-11 12:05:43 UTC (rev 11678)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java 2007-06-11 13:24:05 UTC (rev 11679)
@@ -25,6 +25,7 @@
suite.addTestSuite( Hbm2HibernateDAOTest.class );
suite.addTestSuite( DocExporterTest.class );
suite.addTestSuite( Hbm2SeamTest.class );
+ suite.addTestSuite( PropertiesTest.class );
//$JUnit-END$
return suite;
}
18 years, 5 months
Hibernate SVN: r11678 - in branches/Branch_3_2/HibernateExt/tools/src: test/org/hibernate/tool/hbm2x and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2007-06-11 08:05:43 -0400 (Mon, 11 Jun 2007)
New Revision: 11678
Modified:
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/HibernateConfigurationExporter.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2CfgTest.java
Log:
Fix HBX-950 Code generation on seam-gen projects includes fake tx manager
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/HibernateConfigurationExporter.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/HibernateConfigurationExporter.java 2007-06-11 12:05:03 UTC (rev 11677)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/HibernateConfigurationExporter.java 2007-06-11 12:05:43 UTC (rev 11678)
@@ -95,6 +95,7 @@
ignoredProperties.put(Environment.SESSION_FACTORY_NAME, null);
ignoredProperties.put(Environment.HBM2DDL_AUTO, "false" );
ignoredProperties.put("hibernate.temp.use_jdbc_metadata_defaults", null );
+ ignoredProperties.put(Environment.TRANSACTION_MANAGER_STRATEGY, "org.hibernate.console.FakeTransactionManagerLookup");
Set set = props.entrySet();
Iterator iterator = set.iterator();
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2CfgTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2CfgTest.java 2007-06-11 12:05:03 UTC (rev 11677)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2CfgTest.java 2007-06-11 12:05:43 UTC (rev 11678)
@@ -5,6 +5,7 @@
package org.hibernate.tool.hbm2x;
import java.io.File;
+import java.util.Properties;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
@@ -53,6 +54,15 @@
new HibernateConfigurationExporter(srcCfg, getOutputDir()).start();
assertNotNull(findFirstString( Environment.HBM2DDL_AUTO, file ));
+
+
+ srcCfg = new Configuration();
+ srcCfg.setProperty( Environment.TRANSACTION_MANAGER_STRATEGY, "org.hibernate.console.FakeTransactionManagerLookup"); // Hack for seam-gen console configurations
+ HibernateConfigurationExporter exp = new HibernateConfigurationExporter(srcCfg, getOutputDir());
+ exp.start();
+
+ assertNull(findFirstString( Environment.TRANSACTION_MANAGER_STRATEGY, file ));
+
}
18 years, 5 months
Hibernate SVN: r11677 - branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x.
by hibernate-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2007-06-11 08:05:03 -0400 (Mon, 11 Jun 2007)
New Revision: 11677
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java
Log:
fixe linebreak issues
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java 2007-06-08 22:13:39 UTC (rev 11676)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java 2007-06-11 12:05:03 UTC (rev 11677)
@@ -33,8 +33,12 @@
String string = byteArrayOutputStream.toString();
- assertEquals("<basic attrib='1'></basic>\r\n",string);
+ assertEquals("<basic attrib='1'></basic>" + lineSeparator(),string);
}
+
+ private String lineSeparator() {
+ return System.getProperty("line.separator");
+ }
/* public void testCloseTag() throws IOException, DocumentException, SAXException {
@@ -56,7 +60,7 @@
String string = byteArrayOutputStream.toString();
assertEquals(
- "<hibernate-mapping defaultx-lazy=\"false\" />\r\n\r\n"
+ "<hibernate-mapping defaultx-lazy=\"false\" />" + lineSeparator() + lineSeparator()
,string);
}
}
18 years, 5 months
Hibernate SVN: r11676 - tags/JBOSS_EAP_3_2_4_SP1_CP01.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-08 18:13:39 -0400 (Fri, 08 Jun 2007)
New Revision: 11676
Added:
tags/JBOSS_EAP_3_2_4_SP1_CP01/Hibernate3/
Log:
tagging eap 3.2.4.sp1-cp01
Copied: tags/JBOSS_EAP_3_2_4_SP1_CP01/Hibernate3 (from rev 11675, branches/Branch_3_2_4_SP1_CP/Hibernate3)
18 years, 5 months
Hibernate SVN: r11675 - tags.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-06-08 18:12:19 -0400 (Fri, 08 Jun 2007)
New Revision: 11675
Added:
tags/JBOSS_EAP_3_2_4_SP1_CP01/
Log:
tagging eap 3.2.4.sp1-cp01
18 years, 5 months