diff --git a/src/main/java/com/rackspace/cloud/api/docs/ApiRefMojo.java b/src/main/java/com/rackspace/cloud/api/docs/ApiRefMojo.java index dc47064..14216fe 100644 --- a/src/main/java/com/rackspace/cloud/api/docs/ApiRefMojo.java +++ b/src/main/java/com/rackspace/cloud/api/docs/ApiRefMojo.java @@ -5,12 +5,39 @@ import com.agilejava.docbkx.maven.PreprocessingFilter; import com.agilejava.docbkx.maven.TransformerBuilder; import org.apache.maven.plugin.MojoExecutionException; import java.io.File; +import java.util.HashMap; +import java.util.Map; + import javax.xml.transform.stream.StreamSource; import javax.xml.transform.Source; import javax.xml.transform.URIResolver; public abstract class ApiRefMojo extends AbstractHtmlMojo { + /** + * @parameter + * expression="${generate-pdf.canonicalUrlBase}" + * default-value="" + */ + private String canonicalUrlBase; + + /** + * + * @param + * expression="${generate-pdf.failOnValidationError}" + * default-value="0" + */ + private String failOnValidationError; + + /** + * A parameter used to specify the security level (external, internal, reviewer, writeronly) of the document. + * + * @parameter + * expression="${generate-pdf.security}" + * default-value="" + */ + private String security; + protected TransformerBuilder createTransformerBuilder(URIResolver resolver) { return super.createTransformerBuilder (new DocBookResolver (resolver, getType())); } @@ -36,6 +63,12 @@ public abstract class ApiRefMojo extends AbstractHtmlMojo { String pathToPipelineFile = "classpath:/wadl2html.xpl"; //use "classpath:/path" for this to work Source source = super.createSource(inputFilename, sourceFile, filter); - return CalabashHelper.createSource(source, pathToPipelineFile); + Map map=new HashMap(); + + map.put("security", security); + map.put("canonicalUrlBase", canonicalUrlBase); + map.put("failOnValidationError", failOnValidationError); + + return CalabashHelper.createSource(source, pathToPipelineFile, map); } } diff --git a/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java b/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java index 5599318..3c14ab3 100644 --- a/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java +++ b/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java @@ -8,26 +8,59 @@ import org.xml.sax.InputSource; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXSource; + +import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Set; public class CalabashHelper { - private static Source run(final String pipelineURI, final InputSource inputSource) throws FileNotFoundException { + private static Source run(final String pipelineURI, final InputSource inputSource, final Mapmap) throws FileNotFoundException { Pipeline pipeline = new CalabashPipelineBuilder(false, true).build(pipelineURI); +// +// +// +// +// + + StringBuffer strBuff = new StringBuffer(""); + strBuff.append(""); + + + if(null!=map){ + Setkeys=map.keySet(); + if(null!=keys){ + + for(Iteratoriter=keys.iterator();iter.hasNext();){ + String aKey=iter.next(); + if(null!=map.get(aKey)){ + strBuff.append(""); + } + } + } + } + strBuff.append(""); + String params=strBuff.toString(); + final InputStream paramsStream = new ByteArrayInputStream(params.getBytes()); + + //System.out.println("~!~!~!~!~!~!~!~!~!Sending: \n"+params+"\n"); List pipelineInputs = new ArrayList() {{ add(PipelineInput.port("source", inputSource)); + add(PipelineInput.port("parameters", new InputSource(paramsStream))); }}; - + pipeline.run(pipelineInputs); - List sources = pipeline.getResultPort("result"); // result of xinclude; return sources.get(0); } - public static Source createSource(Source source, String pipelineURI) + public static Source createSource(Source source, String pipelineURI, Map map) throws MojoExecutionException { try { @@ -36,9 +69,11 @@ public class CalabashHelper { } SAXSource saxSource = (SAXSource) source; - return run(pipelineURI, saxSource.getInputSource()); + return run(pipelineURI, saxSource.getInputSource(),map); } catch (FileNotFoundException e) { throw new MojoExecutionException("Failed to find source.", e); } + } + } diff --git a/src/main/java/com/rackspace/cloud/api/docs/HTMLMojo.java b/src/main/java/com/rackspace/cloud/api/docs/HTMLMojo.java index 2888278..225e6f7 100644 --- a/src/main/java/com/rackspace/cloud/api/docs/HTMLMojo.java +++ b/src/main/java/com/rackspace/cloud/api/docs/HTMLMojo.java @@ -5,11 +5,37 @@ import com.agilejava.docbkx.maven.PreprocessingFilter; import com.agilejava.docbkx.maven.TransformerBuilder; import org.apache.maven.plugin.MojoExecutionException; import java.io.File; +import java.util.HashMap; +import java.util.Map; + import javax.xml.transform.stream.StreamSource; import javax.xml.transform.Source; public abstract class HTMLMojo extends AbstractHtmlMojo { + /** + * @parameter + * expression="${generate-pdf.canonicalUrlBase}" + * default-value="" + */ + private String canonicalUrlBase; + + /** + * + * @param + * expression="${generate-pdf.failOnValidationError}" + * default-value="0" + */ + private String failOnValidationError; + + /** + * A parameter used to specify the security level (external, internal, reviewer, writeronly) of the document. + * + * @parameter + * expression="${generate-pdf.security}" + * default-value="" + */ + private String security; protected String getNonDefaultStylesheetLocation() { return "cloud/apipage/apipage.xsl"; } @@ -21,6 +47,12 @@ public abstract class HTMLMojo extends AbstractHtmlMojo { String pathToPipelineFile = "classpath:/wadl2html.xpl"; //use "classpath:/path" for this to work Source source = super.createSource(inputFilename, sourceFile, filter); - return CalabashHelper.createSource(source, pathToPipelineFile); + Map map=new HashMap(); + + map.put("security", security); + map.put("canonicalUrlBase", canonicalUrlBase); + map.put("failOnValidationError", failOnValidationError); + + return CalabashHelper.createSource(source, pathToPipelineFile, map); } } diff --git a/src/main/java/com/rackspace/cloud/api/docs/PDFMojo.java b/src/main/java/com/rackspace/cloud/api/docs/PDFMojo.java index 7303053..cee3e39 100644 --- a/src/main/java/com/rackspace/cloud/api/docs/PDFMojo.java +++ b/src/main/java/com/rackspace/cloud/api/docs/PDFMojo.java @@ -3,6 +3,10 @@ package com.rackspace.cloud.api.docs; import com.agilejava.docbkx.maven.AbstractFoMojo; import com.agilejava.docbkx.maven.PreprocessingFilter; import com.agilejava.docbkx.maven.TransformerBuilder; +import com.rackspace.cloud.api.docs.CalabashHelper; +import com.rackspace.cloud.api.docs.FileUtils; +import com.rackspace.cloud.api.docs.GlossaryResolver; + import org.antlr.stringtemplate.StringTemplate; import org.antlr.stringtemplate.StringTemplateGroup; import org.apache.avalon.framework.configuration.Configuration; @@ -36,6 +40,11 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; public abstract class PDFMojo extends AbstractFoMojo { private File imageDirectory; @@ -69,12 +78,6 @@ public abstract class PDFMojo extends AbstractFoMojo { */ private String variablelistAsBlocks; - /** - * A parameter used to specify the security level (external, internal, reviewer, writeronly) of the document. - * - * @parameter expression="${generate-pdf.security}" default-value="" - */ - private String security; /** * A parameter used to configure how many elements to trim from the URI in the documentation for a wadl method. @@ -93,7 +96,31 @@ public abstract class PDFMojo extends AbstractFoMojo { */ private String computeWadlPathFromDocbookPath; + /** + * @parameter + * expression="${generate-pdf.canonicalUrlBase}" + * default-value="" + */ + private String canonicalUrlBase; + /** + * + * @param + * expression="${generate-pdf.failOnValidationError}" + * default-value="0" + */ + private String failOnValidationError; + + /** + * A parameter used to specify the security level (external, internal, reviewer, writeronly) of the document. + * + * @parameter + * expression="${generate-pdf.security}" + * default-value="" + */ + private String security; + + protected void setImageDirectory (File imageDirectory) { this.imageDirectory = imageDirectory; } @@ -311,7 +338,9 @@ public abstract class PDFMojo extends AbstractFoMojo { throw new MojoExecutionException("Failed to transform to cover", e); } } - + + + @Override protected Source createSource(String inputFilename, File sourceFile, PreprocessingFilter filter) throws MojoExecutionException { @@ -319,6 +348,12 @@ public abstract class PDFMojo extends AbstractFoMojo { String pathToPipelineFile = "classpath:/test.xpl"; //use "classpath:/path" for this to work Source source = super.createSource(inputFilename, sourceFile, filter); - return CalabashHelper.createSource(source, pathToPipelineFile); + Map map=new HashMap(); + + map.put("security", security); + map.put("canonicalUrlBase", canonicalUrlBase); + map.put("failOnValidationError", failOnValidationError); + + return CalabashHelper.createSource(source, pathToPipelineFile, map); } } diff --git a/src/main/java/com/rackspace/cloud/api/docs/WebHelpMojo.java b/src/main/java/com/rackspace/cloud/api/docs/WebHelpMojo.java index 7d08148..0bff82b 100644 --- a/src/main/java/com/rackspace/cloud/api/docs/WebHelpMojo.java +++ b/src/main/java/com/rackspace/cloud/api/docs/WebHelpMojo.java @@ -134,16 +134,26 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { private String pdfUrl; /** - * A parameter used to specify the path to the pdf for download in webhelp. - * - * @parameter expression="${generate-webhelp.canonical.url.base}" default-value="" + * @parameter + * expression="${generate-pdf.canonicalUrlBase}" + * default-value="" */ private String canonicalUrlBase; + /** + * + * @param + * expression="${generate-pdf.failOnValidationError}" + * default-value="0" + */ + private String failOnValidationError; + /** * A parameter used to specify the security level (external, internal, reviewer, writeronly) of the document. * - * @parameter expression="${generate-webhelp.security}" default-value="" + * @parameter + * expression="${generate-pdf.security}" + * default-value="" */ private String security; @@ -343,7 +353,13 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo { String pathToPipelineFile = "classpath:/test.xpl"; //use "classpath:/path" for this to work Source source = super.createSource(inputFilename, sourceFile, filter); - return CalabashHelper.createSource(source, pathToPipelineFile); + Map map=new HashMap(); + + map.put("security", security); + map.put("canonicalUrlBase", canonicalUrlBase); + map.put("failOnValidationError", failOnValidationError); + + return CalabashHelper.createSource(source, pathToPipelineFile, map); } } diff --git a/src/test/java/com/rackspace/cloud/api/docs/CalabashHelperTest.java b/src/test/java/com/rackspace/cloud/api/docs/CalabashHelperTest.java index 5afb169..c962532 100644 --- a/src/test/java/com/rackspace/cloud/api/docs/CalabashHelperTest.java +++ b/src/test/java/com/rackspace/cloud/api/docs/CalabashHelperTest.java @@ -28,7 +28,7 @@ public class CalabashHelperTest { @Test (expected=MojoExecutionException.class) public void shouldThrowSAXSourceError() throws Exception { - CalabashHelper.createSource(source, null); + CalabashHelper.createSource(source, null,null); } } }