CAMEL-10850: Autogenerate EIP options in documentation files.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5606ae43 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5606ae43 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5606ae43 Branch: refs/heads/master Commit: 5606ae430478ccdaf8ca83afe8b7c857bfac01bc Parents: 68d371f Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Feb 17 17:45:54 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Feb 17 17:59:26 2017 +0100 ---------------------------------------------------------------------- .../camel/maven/packaging/PrepareExampleMojo.java | 7 ++++--- .../camel/maven/packaging/UpdateReadmeMojo.java | 14 +++++++++++--- .../camel/maven/packaging/model/EipOptionModel.java | 15 +++++++++++++++ .../src/main/resources/eip-options.mvel | 9 +++++++++ 4 files changed, 39 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5606ae43/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java index 41e0d94..9423d56 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java @@ -19,6 +19,7 @@ package org.apache.camel.maven.packaging; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -79,13 +80,13 @@ public class PrepareExampleMojo extends AbstractMojo { protected void executeExamplesReadme() throws MojoExecutionException, MojoFailureException { Set<File> examples = new TreeSet<>(); - File dir = new File("."); - // only run in examples directory where the main readme.adoc file is located - if (!dir.getName().equals("examples")) { + String currentDir = Paths.get(".").normalize().toAbsolutePath().toString(); + if (!currentDir.endsWith("examples")) { return; } + File dir = new File("."); File[] files = dir.listFiles(); if (files != null) { examples.addAll(Arrays.asList(files)); http://git-wip-us.apache.org/repos/asf/camel/blob/5606ae43/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java index a7fd59a..da63df2 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java @@ -19,6 +19,7 @@ package org.apache.camel.maven.packaging; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -272,14 +273,15 @@ public class UpdateReadmeMojo extends AbstractMojo { private void executeEips() throws MojoExecutionException, MojoFailureException { // only run if in camel-core - File coreDir = new File("."); - if (!coreDir.getName().equals("camel-core")) { + String currentDir = Paths.get(".").normalize().toAbsolutePath().toString(); + if (!currentDir.endsWith("camel-core")) { return; } final Set<File> jsonFiles = new TreeSet<File>(); // find all json files in camel-core + File coreDir = new File("."); if (coreDir.isDirectory()) { File target = new File(coreDir, "target/classes/org/apache/camel/model"); PackageHelper.findJsonFiles(target, jsonFiles, new PackageHelper.CamelComponentsModelFilter()); @@ -297,7 +299,13 @@ public class UpdateReadmeMojo extends AbstractMojo { model.setTitle(title); String eipName = model.getName(); - File file = new File(docDir, eipName + "-eip.adoc"); + + // we only want actual EIPs from the models + if (!model.getLabel().startsWith("eip")) { + continue; + } + + File file = new File(eipDocDir, eipName + "-eip.adoc"); boolean exists = file.exists(); boolean updated; http://git-wip-us.apache.org/repos/asf/camel/blob/5606ae43/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/EipOptionModel.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/EipOptionModel.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/EipOptionModel.java index c1cae8e..db3ed3d 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/EipOptionModel.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/EipOptionModel.java @@ -108,5 +108,20 @@ public class EipOptionModel { return output ? "true" : "false"; } + public String getShortJavaType() { + if (javaType.startsWith("java.util.Map")) { + return "Map"; + } else if (javaType.startsWith("java.util.Set")) { + return "Set"; + } else if (javaType.startsWith("java.util.List")) { + return "List"; + } + int pos = javaType.lastIndexOf("."); + if (pos != -1) { + return javaType.substring(pos + 1); + } else { + return javaType; + } + } } http://git-wip-us.apache.org/repos/asf/camel/blob/5606ae43/tooling/maven/camel-package-maven-plugin/src/main/resources/eip-options.mvel ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/eip-options.mvel b/tooling/maven/camel-package-maven-plugin/src/main/resources/eip-options.mvel new file mode 100644 index 0000000..9932ebc --- /dev/null +++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/eip-options.mvel @@ -0,0 +1,9 @@ +The @{title} EIP supports @{eipOptions.size()} options which are listed below: + +{% raw %} +[width="100%",cols="3,1m,6",options="header"] +|======================================================================= +| Name | Java Type | Description +@foreach{row : eipOptions}| @{row.name} | @{row.shortJavaType} | @{row.description} +@end{}|======================================================================= +{% endraw %}