Repository: camel Updated Branches: refs/heads/master ad26a8ab4 -> 34e441e00
Added parameter destDir to make sure API component documentation is generated in specified report directory, defaults to cameldocs Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/34e441e0 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/34e441e0 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/34e441e0 Branch: refs/heads/master Commit: 34e441e0058942e49c68e493084f7eefee91f9bd Parents: ad26a8a Author: Dhiraj Bokde <dhira...@yahoo.com> Authored: Thu Jun 19 14:45:23 2014 -0700 Committer: Dhiraj Bokde <dhira...@yahoo.com> Committed: Thu Jun 19 14:45:23 2014 -0700 ---------------------------------------------------------------------- .../camel/maven/DocumentGeneratorMojo.java | 53 +++++++++++++++++--- .../src/main/resources/api-document.vm | 10 ++-- .../camel/maven/DocumentGeneratorMojoTest.java | 5 +- 3 files changed, 53 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/34e441e0/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java index 17a87cb..b2e3077 100644 --- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java +++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java @@ -60,10 +60,14 @@ import org.codehaus.plexus.util.StringUtils; public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements MavenReport { // document output directory - @Parameter(property = "reportOutputDirectory", - defaultValue = "${project.reporting.outputDirectory}/cameldocs", required = true) + @Parameter(property = PREFIX + "reportOutputDirectory", + defaultValue = "${project.reporting.outputDirectory}/cameldocs") private File reportOutputDirectory; + // name of destination directory + @Parameter(property = PREFIX + "destDir", defaultValue = "cameldocs") + private String destDir; + /** * The name of the Camel report to be displayed in the Maven Generated Reports page * (i.e. <code>project-reports.html</code>). @@ -122,6 +126,7 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave // component URI format // look for single API, no endpoint-prefix + @SuppressWarnings("unchecked") final Set<String> apiNames = new TreeSet<String>(collection.getApiNames()); context.put("apiNames", apiNames); String suffix; @@ -147,6 +152,7 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave Map.Entry entry = (Map.Entry) element; final String name = ((ApiName) entry.getValue()).getName(); + @SuppressWarnings("unchecked") Class<? extends ApiMethod> apiMethod = (Class<? extends ApiMethod>) entry.getKey(); apiMethods.put(name, apiMethod); @@ -209,7 +215,11 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave } private File getDocumentFile() { - return new File(getReportOutputDirectory(), getOutputName() + ".html"); + return new File(getReportOutputDirectory(), getDocumentName() + ".html"); + } + + private String getDocumentName() { + return this.componentName + "Component"; } @Override @@ -226,7 +236,7 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave @Override public String getOutputName() { - return this.componentName + "Component"; + return this.destDir + "/" + getDocumentName(); } @Override @@ -234,6 +244,10 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave return CATEGORY_PROJECT_REPORTS; } + public void setName(String name) { + this.name = name; + } + @Override public String getName(Locale locale) { if (StringUtils.isEmpty(name)) { @@ -242,6 +256,10 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave return name; } + public void setDescription(String description) { + this.description = description; + } + @Override public String getDescription(Locale locale) { if (StringUtils.isEmpty(description)) { @@ -251,13 +269,32 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave } @Override - public void setReportOutputDirectory(File reportOutputDirectory) { - this.reportOutputDirectory = reportOutputDirectory; + public File getReportOutputDirectory() { + return reportOutputDirectory; } @Override - public File getReportOutputDirectory() { - return reportOutputDirectory; + public void setReportOutputDirectory(File reportOutputDirectory) { + updateReportOutputDirectory(reportOutputDirectory); + } + + private void updateReportOutputDirectory(File reportOutputDirectory) { + // append destDir if needed + if (this.destDir != null && reportOutputDirectory != null && + !reportOutputDirectory.getAbsolutePath().endsWith(destDir)) { + this.reportOutputDirectory = new File(reportOutputDirectory, destDir); + } else { + this.reportOutputDirectory = reportOutputDirectory; + } + } + + public String getDestDir() { + return destDir; + } + + public void setDestDir(String destDir) { + this.destDir = destDir; + updateReportOutputDirectory(this.reportOutputDirectory); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/34e441e0/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-document.vm ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-document.vm b/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-document.vm index b87e19c..9e14962 100644 --- a/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-document.vm +++ b/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-document.vm @@ -92,8 +92,8 @@ </p> #else <p> - Producer endpoints can use endpoint prefixes followed by endpoint names and options described next. - A shorthand alias can be used for some endpoints. The URI MUST specify one of the following prefixes. + Producer endpoints can use endpoint prefixes followed by endpoint names and associated options described next. + A shorthand alias can be used for some endpoints. The endpoint URI MUST contain a prefix. </p> #end <p> @@ -145,9 +145,9 @@ ## multiple API use case, list API names and their methods and options #foreach( $apiMethod in $apiMethods.entrySet() ) #set( $apiName = $apiMethod.Key ) - <h3>${foreach.count}. Endpoint Prefix $apiName</h3> + <h3>${foreach.count}. Endpoint Prefix <em>$apiName</em></h3> <hr/> - <p>The following endpoints can be invoked with the prefix $apiName as follows:</p> + <p>The following endpoints can be invoked with the prefix <code>$apiName</code> as follows:</p> <pre> ${scheme}://${apiName}/endpoint?[options] </pre> @@ -169,7 +169,7 @@ </tr> #end </table> - <h4>URI Options for $apiName</h4> + <h4>URI Options for <em>$apiName</em></h4> <hr/> <table> <tr> http://git-wip-us.apache.org/repos/asf/camel/blob/34e441e0/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/DocumentGeneratorMojoTest.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/DocumentGeneratorMojoTest.java b/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/DocumentGeneratorMojoTest.java index a0459a3..c1ff746 100644 --- a/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/DocumentGeneratorMojoTest.java +++ b/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/DocumentGeneratorMojoTest.java @@ -30,7 +30,7 @@ public class DocumentGeneratorMojoTest extends AbstractGeneratorMojoTest { @Test public void testExecute() throws Exception { // delete target file to begin - final File outDir = new File("target/site/camelDocs"); + final File outDir = new File("target/site/cameldocs"); final File outFile = new File(outDir, "TestComponent.html"); if (outFile.exists()) { outFile.delete(); @@ -38,7 +38,8 @@ public class DocumentGeneratorMojoTest extends AbstractGeneratorMojoTest { final DocumentGeneratorMojo mojo = new DocumentGeneratorMojo(); configureGeneratorMojo(mojo); - mojo.setReportOutputDirectory(outDir); + mojo.setDestDir("cameldocs"); + mojo.setReportOutputDirectory(outDir.getParentFile()); mojo.execute();