Exposed pom.xml parameters:security, canonicalUrlBase, and
failOnValidationError for Calabash consumption.
This commit is contained in:
@@ -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<String, String>();
|
||||
|
||||
map.put("security", security);
|
||||
map.put("canonicalUrlBase", canonicalUrlBase);
|
||||
map.put("failOnValidationError", failOnValidationError);
|
||||
|
||||
return CalabashHelper.createSource(source, pathToPipelineFile, map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 Map<String, String>map) throws FileNotFoundException {
|
||||
Pipeline pipeline = new CalabashPipelineBuilder(false, true).build(pipelineURI);
|
||||
|
||||
// <c:param-set xmlns:c="http://www.w3.org/ns/xproc-step">
|
||||
// <c:param name="username" namespace="" value="user"/>
|
||||
// <c:param name="host" namespace="" value="http://example.com/"/>
|
||||
// <c:param name="password" namespace="" value="pass"/>
|
||||
// </c:param-set>
|
||||
|
||||
StringBuffer strBuff = new StringBuffer("<c:param-set xmlns:c=\"http://www.w3.org/ns/xproc-step\">");
|
||||
strBuff.append("");
|
||||
|
||||
|
||||
if(null!=map){
|
||||
Set<String>keys=map.keySet();
|
||||
if(null!=keys){
|
||||
|
||||
for(Iterator<String>iter=keys.iterator();iter.hasNext();){
|
||||
String aKey=iter.next();
|
||||
if(null!=map.get(aKey)){
|
||||
strBuff.append("<c:param name=\""+aKey+ "\" namespace=\"\" value=\""+map.get(aKey)+"\"/>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
strBuff.append("</c:param-set>");
|
||||
String params=strBuff.toString();
|
||||
final InputStream paramsStream = new ByteArrayInputStream(params.getBytes());
|
||||
|
||||
//System.out.println("~!~!~!~!~!~!~!~!~!Sending: \n"+params+"\n");
|
||||
List<PipelineInput> pipelineInputs = new ArrayList<PipelineInput>() {{
|
||||
add(PipelineInput.port("source", inputSource));
|
||||
add(PipelineInput.port("parameters", new InputSource(paramsStream)));
|
||||
}};
|
||||
|
||||
|
||||
pipeline.run(pipelineInputs);
|
||||
|
||||
List<Source> 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<String, String> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<String, String>();
|
||||
|
||||
map.put("security", security);
|
||||
map.put("canonicalUrlBase", canonicalUrlBase);
|
||||
map.put("failOnValidationError", failOnValidationError);
|
||||
|
||||
return CalabashHelper.createSource(source, pathToPipelineFile, map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String, String>();
|
||||
|
||||
map.put("security", security);
|
||||
map.put("canonicalUrlBase", canonicalUrlBase);
|
||||
map.put("failOnValidationError", failOnValidationError);
|
||||
|
||||
return CalabashHelper.createSource(source, pathToPipelineFile, map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String, String>();
|
||||
|
||||
map.put("security", security);
|
||||
map.put("canonicalUrlBase", canonicalUrlBase);
|
||||
map.put("failOnValidationError", failOnValidationError);
|
||||
|
||||
return CalabashHelper.createSource(source, pathToPipelineFile, map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user