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 %}

Reply via email to