Support pdfFilenameBase param to control the base used

for the pdf file generated by autopdf.
This commit is contained in:
dcramer
2013-01-27 22:35:49 -06:00
parent 603f0eb4c7
commit e4be2fa4d8
3 changed files with 47 additions and 7 deletions

View File

@@ -94,6 +94,14 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo {
*/
private String includeDateInPdfFilename;
/**
* Base for the pdf file name. By default this is the
* base of the input xml file.
*
* @parameter expression="${generate-webhelp.pdfFilenameBase}"
*/
private String pdfFilenameBase;
/**
* Controls whether output is colorized based on revisionflag attributes.
*
@@ -452,7 +460,10 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo {
}
transformer.setParameter("webhelp.war", webhelpWar);
if(null != includeDateInPdfFilename){
transformer.setParameter("includeDateInPdfFilename", includeDateInPdfFilename);
}
transformer.setParameter("pdfFilenameBase", pdfFilenameBase);
transformer.setParameter("publicationNotificationEmails", publicationNotificationEmails);
@@ -677,6 +688,7 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo {
map.put("webhelp.war", webhelpWar);
map.put("publicationNotificationEmails", publicationNotificationEmails);
map.put("includeDateInPdfFilename", includeDateInPdfFilename);
map.put("pdfFilenameBase", pdfFilenameBase);
map.put("groupId", docProject.getGroupId());
map.put("artifactId", docProject.getArtifactId());
map.put("docProjectVersion", docProject.getVersion());
@@ -769,6 +781,7 @@ public abstract class WebHelpMojo extends AbstractWebhelpMojo {
pdfBuilder.setCoverLogoLeft(coverLogoLeft);
pdfBuilder.setCoverLogoTop(coverLogoTop);
pdfBuilder.setCoverUrl(coverUrl);
pdfBuilder.setPdfFilenameBase(pdfFilenameBase);
pdfBuilder.setBranding(branding);
pdfBuilder.setSecurity(security);

View File

@@ -122,6 +122,7 @@ public class PDFBuilder {
private String statusBarText;
private String trimWadlUriCount;
private String computeWadlPathFromDocbookPath;
private String pdfFilenameBase;
/**
* The location of the stylesheet customization.
@@ -195,7 +196,13 @@ public class PDFBuilder {
//final String inputFilename = sourceFilePath;
// targetFilename is inputFilename - ".xml" + targetFile extension
String baseTargetFile = inputFilename.substring(0, inputFilename.length() - 4);
String baseTargetFile;
if(null != pdfFilenameBase && pdfFilenameBase != ""){
baseTargetFile = pdfFilenameBase;
} else {
baseTargetFile = inputFilename.substring(0, inputFilename.length() - 4);
}
final String targetFilename = baseTargetFile + ".fo";
final File sourceFile = new File(sourceDirectory+"/"+inputFilename);
@@ -412,7 +419,8 @@ public class PDFBuilder {
transformer.setParameter("source.directory",sourceDirectory);
transformer.setParameter("compute.wadl.path.from.docbook.path",computeWadlPathFromDocbookPath);
transformer.setParameter("pdfFilenameBase",pdfFilenameBase)
;
transformer.setParameter ("admon.graphics.path", imageDirectory.getAbsolutePath()+File.separator);
transformer.setParameter ("callout.graphics.path", calloutDirectory.getAbsolutePath()+File.separator);
@@ -710,6 +718,16 @@ public class PDFBuilder {
this.computeWadlPathFromDocbookPath = computeWadlPathFromDocbookPath;
}
public String getPdfFilenameBase() {
return pdfFilenameBase;
}
public void setPdfFilenameBase(
String pdfFilenameBase) {
this.pdfFilenameBase = pdfFilenameBase;
}
public List getEntities() {
return entities;
}

View File

@@ -19,6 +19,7 @@
<xsl:param name="security">external</xsl:param>
<xsl:param name="autoPdfUrl"/>
<xsl:param name="branding">rackspace</xsl:param>
<xsl:param name="pdfFilenameBase"/>
<xsl:param name="includeDateInPdfFilename">
<xsl:choose>
<xsl:when test="$branding = 'openstack'">0</xsl:when>
@@ -27,6 +28,14 @@
</xsl:param>
<xsl:param name="publicationNotificationEmails"/>
<xsl:variable name="pdfFilenameBaseCalculated">
<xsl:choose>
<xsl:when test="not($pdfFilenameBase='')"><xsl:value-of select="$pdfFilenameBase"/></xsl:when>
<xsl:when test="$autoPdfUrl != ''"><xsl:value-of select="substring($autoPdfUrl,4,string-length($autoPdfUrl) - 6)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$input.filename"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- We need too collect lists that contain their own raxm:metadata so we can
add <type>s to the bookinfo for resources mentioned in lists in the doc -->
<xsl:variable name="resource-lists" select="//db:itemizedlist[db:info/raxm:metadata]"/>
@@ -45,9 +54,9 @@
href="{$base.dir}/bookinfo.xml"
method="xml" indent="yes" encoding="UTF-8">
<products xmlns="">
<latestpdf><xsl:choose>
<xsl:when test="normalize-space($autoPdfUrl) != ''"><xsl:value-of select="substring($autoPdfUrl,4,string-length($autoPdfUrl) - 6)"/>-latest.pdf</xsl:when><xsl:otherwise><xsl:value-of select="$input.filename"/>.pdf</xsl:otherwise></xsl:choose></latestpdf>
<pdfoutname><xsl:value-of select="concat($input.filename,$pdfsuffix,'.pdf')"/></pdfoutname>
<latestpdf><xsl:value-of select="$pdfFilenameBaseCalculated"/>-latest.pdf</latestpdf><!-- <xsl:choose> -->
<!-- <xsl:when test="normalize-space($autoPdfUrl) != ''"><xsl:value-of select="substring($autoPdfUrl,4,string-length($autoPdfUrl) - 6)"/>-latest.pdf</xsl:when><xsl:otherwise><xsl:value-of select="$pdfFilenameBaseCalculated"/>.pdf</xsl:otherwise></xsl:choose> -->
<pdfoutname><xsl:value-of select="concat($pdfFilenameBaseCalculated,$pdfsuffix,'.pdf')"/></pdfoutname>
<docname><xsl:value-of select="/*/db:title|/*/db:info/db:title"/></docname>
<productname><xsl:value-of select="f:productname(/*/db:info/raxm:metadata/raxm:product,/*/db:info/raxm:metadata/raxm:product/@version)"/></productname>
<webappname><xsl:value-of select="$input.filename"/></webappname>