You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/07/17 14:11:44 UTC

[camel] branch camel-12644 updated: CAMEL-12644: Detect if spring boot configuration options has no description.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-12644
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-12644 by this push:
     new 1a6026a  CAMEL-12644: Detect if spring boot configuration options has no description.
1a6026a is described below

commit 1a6026af96e05d04dd15f5c9211b2442c9eab175
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jul 17 16:05:05 2018 +0200

    CAMEL-12644: Detect if spring boot configuration options has no description.
---
 components/camel-spring-boot/pom.xml               |  2 ++
 platforms/spring-boot/components-starter/pom.xml   |  2 ++
 ...pdateSpringBootAutoConfigurationReadmeMojo.java | 28 ++++++++++++++++++++--
 3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/components/camel-spring-boot/pom.xml b/components/camel-spring-boot/pom.xml
index bca471d..9892f38 100644
--- a/components/camel-spring-boot/pom.xml
+++ b/components/camel-spring-boot/pom.xml
@@ -141,6 +141,8 @@
         <configuration>
           <!-- set to true to make build fail fast if missing documentation in docs files -->
           <failFast>false</failFast>
+          <!-- set to true to make build fail if an option has no description -->
+          <failOnMissingDescription>false</failOnMissingDescription>
         </configuration>
         <executions>
           <execution>
diff --git a/platforms/spring-boot/components-starter/pom.xml b/platforms/spring-boot/components-starter/pom.xml
index 0e65b06..d961b69 100644
--- a/platforms/spring-boot/components-starter/pom.xml
+++ b/platforms/spring-boot/components-starter/pom.xml
@@ -84,6 +84,8 @@
         <configuration>
           <!-- set to true to make build fail fast if missing documentation in docs files -->
           <failFast>false</failFast>
+          <!-- set to true to make build fail if an option has no description -->
+          <failOnMissingDescription>false</failOnMissingDescription>
         </configuration>
         <executions>
           <execution>
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateSpringBootAutoConfigurationReadmeMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateSpringBootAutoConfigurationReadmeMojo.java
index 3182ca5..4473509 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateSpringBootAutoConfigurationReadmeMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateSpringBootAutoConfigurationReadmeMojo.java
@@ -81,6 +81,13 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
     protected Boolean failFast;
 
     /**
+     * Whether to fail if an option has no documentation.
+     *
+     * @parameter
+     */
+    protected Boolean failOnMissingDescription;
+
+    /**
      * build context to check changed files and mark them for refresh (used for
      * m2e compatibility)
      *
@@ -178,7 +185,20 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
                             // spring-boot use lower cased keys
                             String prefix = pos > 0 ? docName.substring(0, pos).toLowerCase(Locale.US) : null;
 
-                            List models = parseSpringBootAutoConfigureModels(jsonFile, prefix);
+                            List<SpringBootAutoConfigureOptionModel> models = parseSpringBootAutoConfigureModels(jsonFile, prefix);
+
+                            // check for missing description on options
+                            boolean noDescription = false;
+                            for (SpringBootAutoConfigureOptionModel o : models) {
+                                if (StringHelper.isEmpty(o.getDescription())) {
+                                    noDescription = true;
+                                    getLog().warn("Option " + o.getName() + " has no description");
+                                }
+                            }
+                            if (noDescription && isFailOnNoDescription()) {
+                                throw new MojoExecutionException("Failed build due failOnMissingDescription=true");
+                            }
+
                             String options = templateAutoConfigurationOptions(models);
                             boolean updated = updateAutoConfigureOptions(docFile, options);
                             if (updated) {
@@ -267,7 +287,7 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
         return true;
     }
 
-    private List parseSpringBootAutoConfigureModels(File file, String include) throws IOException, DeserializationException {
+    private List<SpringBootAutoConfigureOptionModel> parseSpringBootAutoConfigureModels(File file, String include) throws IOException, DeserializationException {
         getLog().debug("Parsing Spring Boot AutoConfigureModel using include: " + include);
         List<SpringBootAutoConfigureOptionModel> answer = new ArrayList<>();
 
@@ -349,4 +369,8 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
         return failFast != null && failFast;
     }
 
+    private boolean isFailOnNoDescription() {
+        return failOnMissingDescription != null && failOnMissingDescription;
+    }
+
 }