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 2020/02/10 12:44:20 UTC

[camel-spring-boot] 01/02: Generate docs for auto configuration options.

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

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

commit e146279a21d384606870ce38b7c76ad47f1d4ddb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Feb 10 13:14:15 2020 +0100

    Generate docs for auto configuration options.
---
 camel-spring-boot/pom.xml                          |  20 --
 components-starter/pom.xml                         |   7 +
 tooling/camel-spring-boot-dependencies/pom.xml     | 250 +++++++++++++++++++++
 ...pdateSpringBootAutoConfigurationReadmeMojo.java | 174 +++-----------
 .../springboot/maven/model/SpringBootModel.java    |   9 +
 .../spring-boot-auto-configure-options.mvel        |   4 +-
 6 files changed, 297 insertions(+), 167 deletions(-)

diff --git a/camel-spring-boot/pom.xml b/camel-spring-boot/pom.xml
index 24eab76..02f7e0d 100644
--- a/camel-spring-boot/pom.xml
+++ b/camel-spring-boot/pom.xml
@@ -169,26 +169,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.camel.springboot</groupId>
-                <artifactId>camel-spring-boot-generator-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <configuration>
-                    <!-- set to true to make build fail fast if missing documentation in docs files -->
-                    <failFast>true</failFast>
-                    <!-- set to true to make build fail if an option has no description -->
-                    <failOnMissingDescription>true</failOnMissingDescription>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>readme</id>
-                        <goals>
-                            <goal>update-spring-boot-auto-configuration-readme</goal>
-                        </goals>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/components-starter/pom.xml b/components-starter/pom.xml
index 0842caa..5ab5756 100644
--- a/components-starter/pom.xml
+++ b/components-starter/pom.xml
@@ -96,6 +96,13 @@
             </goals>
             <phase>generate-resources</phase>
           </execution>
+          <execution>
+            <id>readme</id>
+            <goals>
+              <goal>update-spring-boot-auto-configuration-readme</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
         </executions>
       </plugin>
     </plugins>
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml b/tooling/camel-spring-boot-dependencies/pom.xml
index 62bdfe5..19b2710 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -263,161 +263,321 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-activemq-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-ahc-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-ahc-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-ahc-ws-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-ahc-ws-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-amqp-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-amqp-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-any23-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-any23-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-apns-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-apns-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-as2-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-as2-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-asn1-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-asn1-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-asterisk-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-asterisk-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-atmos-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-atmos-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-atmosphere-websocket-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-atmosphere-websocket-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-atom-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-atom-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-atomix-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-atomix-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-avro-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-avro-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-cw-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-cw-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-ddb-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-ddb-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-ec2-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-ec2-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-ecs-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-ecs-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-eks-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-eks-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-iam-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-iam-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-kinesis-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-kinesis-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-kms-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-kms-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-lambda-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-lambda-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-mq-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-mq-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-msk-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-msk-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-s3-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-s3-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-sdb-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-sdb-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-ses-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-ses-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-sns-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-sns-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-sqs-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-sqs-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-swf-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-swf-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-translate-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws-translate-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws-xray-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -428,86 +588,171 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-cw-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-ec2-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-ec2-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-ecs-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-ecs-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-eks-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-eks-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-iam-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-iam-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-kms-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-kms-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-mq-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-mq-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-msk-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-msk-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-aws2-translate-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-aws2-translate-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-azure-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-azure-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-barcode-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-barcode-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-base64-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-base64-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-bean-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-bean-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-bean-validator-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-bean-validator-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-beanio-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-beanio-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-beanstalk-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-beanstalk-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-bindy-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-bindy-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-bonita-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -593,6 +838,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel.springboot</groupId>
+        <artifactId>camel-core-startersrc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.springboot</groupId>
         <artifactId>camel-couchbase-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/UpdateSpringBootAutoConfigurationReadmeMojo.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/UpdateSpringBootAutoConfigurationReadmeMojo.java
index b6993d6..a3c95f6 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/UpdateSpringBootAutoConfigurationReadmeMojo.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/UpdateSpringBootAutoConfigurationReadmeMojo.java
@@ -17,16 +17,12 @@
 package org.apache.camel.springboot.maven;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FileInputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.Locale;
-import java.util.stream.Collectors;
 
 import org.apache.camel.maven.packaging.MvelHelper;
 import org.apache.camel.springboot.maven.model.SpringBootAutoConfigureOptionModel;
@@ -46,6 +42,7 @@ import org.apache.maven.project.MavenProject;
 import org.mvel2.templates.TemplateRuntime;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
+
 import static org.apache.camel.tooling.util.PackageHelper.loadText;
 import static org.apache.camel.tooling.util.PackageHelper.writeText;
 
@@ -70,13 +67,6 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
     protected File buildDir;
 
     /**
-     * The documentation directory
-     *
-     */
-    @Parameter(defaultValue = "${basedir}/../../../../components/")
-    protected File componentsDir;
-
-    /**
      * Whether to fail the build fast if any Warnings was detected.
      */
     @Parameter
@@ -118,142 +108,38 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
                     return;
                 }
 
-                File compDir = getComponentsDir(name);
-
-                File[] docFiles;
-                File docFolder;
-                String componentName;
-                if ("camel-spring-boot".equals(name)) {
-                    // special for camel-spring-boot where we also want to auto-generate the options in the adoc file
-                    componentName = "spring-boot";
-                    docFolder = new File(compDir, "/src/main/docs/");
-                    docFiles = docFolder.listFiles(new ComponentDocFilter(componentName));
-                } else if ("camel-univocity-parsers-starter".equals(name)) {
-                    // special for univocity-parsers
-                    componentName = "univocity";
-                    docFolder = new File(compDir, "camel-univocity-parsers/src/main/docs/");
-                    docFiles = docFolder.listFiles(new ComponentDocFilter(componentName));
-                } else {
-                    // skip camel-  and -starter in the end
-                    componentName = name.substring(6, name.length() - 8);
-                    getLog().debug("Camel component: " + componentName);
-                    docFolder = new File(compDir, "camel-" + componentName + "/src/main/docs/");
-                    docFiles = docFolder.listFiles(new ComponentDocFilter(componentName));
-
-                    // maybe its one of those component that has subfolders with -api and -component
-                    if (docFiles == null || docFiles.length == 0) {
-                        docFolder = new File(compDir, "camel-" + componentName + "/camel-" + componentName + "-component/src/main/docs/");
-                        docFiles = docFolder.listFiles(new ComponentDocFilter(componentName));
-                    }
-                }
-
-                if (docFiles != null && docFiles.length > 0) {
-                    List<File> files = Arrays.asList(docFiles);
+                // skip camel-  and -starter in the end
+                String componentName = name.substring(6, name.length() - 8);
+                getLog().debug("Camel component: " + componentName);
+                File docFolder = new File("components-starter/" + name + "/src/main/docs/");
+                File docFile = new File(docFolder, componentName + "-starter.adoc");
 
-                    // find out if the JAR has a Camel component, dataformat, or language
-                    boolean hasComponentDataFormatOrLanguage = files.stream().anyMatch(
-                            f -> f.getName().endsWith("-component.adoc") || f.getName().endsWith("-dataformat.adoc") || f.getName().endsWith("-language.adoc"));
+                List<SpringBootAutoConfigureOptionModel> models = parseSpringBootAutoConfigureModels(jsonFile, null);
 
-                    // if so then skip the root adoc file as its just a introduction to the others
-                    if (hasComponentDataFormatOrLanguage) {
-                        files = Arrays.stream(docFiles).filter(f -> !f.getName().equals(componentName + ".adoc")).collect(Collectors.toList());
+                // check for missing description on options
+                boolean noDescription = false;
+                for (SpringBootAutoConfigureOptionModel o : models) {
+                    if (Strings.isEmpty(o.getDescription())) {
+                        noDescription = true;
+                        getLog().warn("Option " + o.getName() + " has no description");
                     }
+                }
+                if (noDescription && isFailOnNoDescription()) {
+                    throw new MojoExecutionException("Failed build due failOnMissingDescription=true");
+                }
 
-                    if (files.size() == 1) {
-                        List<SpringBootAutoConfigureOptionModel> models = parseSpringBootAutoConfigureModels(jsonFile, null);
-
-                        // special for other kind of JARs that is not a regular Camel component,dataformat,language
-                        boolean onlyOther = files.size() == 1 && !hasComponentDataFormatOrLanguage;
-                        if (models.isEmpty() && onlyOther) {
-                            // there are no spring-boot auto configuration for this other kind of JAR so lets just ignore this
-                            return;
-                        }
-                        File docFile = files.get(0);
-
-                        // check for missing description on options
-                        boolean noDescription = false;
-                        for (SpringBootAutoConfigureOptionModel o : models) {
-                            if (Strings.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 changed = templateAutoConfigurationOptions(models, componentName);
-                        boolean updated = updateAutoConfigureOptions(docFile, changed);
-                        if (updated) {
-                            getLog().info("Updated doc file: " + docFile);
-                        } else {
-                            getLog().debug("No changes to doc file: " + docFile);
-                        }
-                    } else if (files.size() > 1) {
-                        // when we have 2 or more files we need to filter the model options accordingly
-                        for (File docFile : files) {
-                            String docName = docFile.getName();
-                            int pos = docName.lastIndexOf("-");
-                            // spring-boot use lower cased keys
-                            String prefix = pos > 0 ? docName.substring(0, pos).toLowerCase(Locale.US) : null;
-
-                            List<SpringBootAutoConfigureOptionModel> models = parseSpringBootAutoConfigureModels(jsonFile, prefix);
-
-                            // check for missing description on options
-                            boolean noDescription = false;
-                            for (SpringBootAutoConfigureOptionModel o : models) {
-                                if (Strings.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 changed = templateAutoConfigurationOptions(models, componentName);
-                            boolean updated = updateAutoConfigureOptions(docFile, changed);
-                            if (updated) {
-                                getLog().info("Updated doc file: " + docFile);
-                            } else {
-                                getLog().debug("No changes to doc file: " + docFile);
-                            }
-                        }
-                    }
+                String changed = templateAutoConfigurationOptions(models, componentName);
+                boolean updated = updateAutoConfigureOptions(docFile, changed);
+                if (updated) {
+                    getLog().info("Updated doc file: " + docFile);
                 } else {
-                    getLog().warn("No component docs found in folder: " + docFolder);
-                    if (isFailFast()) {
-                        throw new MojoExecutionException("Failed build due failFast=true");
-                    }
+                    getLog().debug("No changes to doc file: " + docFile);
                 }
             }
         }
     }
 
-    private File getComponentsDir(String name) {
-        if ("camel-spring-boot".equals(name)) {
-            // special for camel-spring-boot
-            return project.getBasedir();
-        } else {
-            return componentsDir;
-        }
-    }
-
-    private static final class ComponentDocFilter implements FileFilter {
-
-        private final String componentName;
-
-        public ComponentDocFilter(String componentName) {
-            this.componentName = asComponentName(componentName);
-        }
-
-        @Override
-        public boolean accept(File pathname) {
-            String name = pathname.getName();
-            return name.startsWith(componentName) && name.endsWith(".adoc");
-        }
-    }
-
+    // TODO: later
     private static String asComponentName(String componentName) {
         if ("fastjson".equals(componentName)) {
             return "json-fastjson";
@@ -286,10 +172,6 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
     }
 
     private static boolean isValidStarter(String name) {
-        // skip these
-        if ("camel-core-starter".equals(name)) {
-            return false;
-        }
         return true;
     }
 
@@ -339,11 +221,12 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
     }
 
     private boolean updateAutoConfigureOptions(File file, String changed) throws MojoExecutionException {
-        if (!file.exists()) {
-            return false;
-        }
-
         try {
+            if (!file.exists()) {
+                writeText(file, changed);
+                return true;
+            }
+
             String text = loadText(new FileInputStream(file));
 
             String existing = Strings.between(text, "// spring-boot-auto-configure options: START", "// spring-boot-auto-configure options: END");
@@ -381,6 +264,7 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo {
         model.setArtifactId("camel-" + componentName + "-starter");
         model.setVersion(project.getVersion());
         model.setOptions(options);
+        model.setTitle(componentName);
 
         try {
             String template = loadText(UpdateSpringBootAutoConfigurationReadmeMojo.class.getClassLoader().getResourceAsStream("spring-boot-auto-configure-options.mvel"));
diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/model/SpringBootModel.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/model/SpringBootModel.java
index 6c83d5c..f0caef5 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/model/SpringBootModel.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/model/SpringBootModel.java
@@ -23,9 +23,18 @@ public class SpringBootModel {
     private String groupId;
     private String artifactId;
     private String version;
+    private String title;
 
     private List<SpringBootAutoConfigureOptionModel> options;
 
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
     public String getGroupId() {
         return groupId;
     }
diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/resources/spring-boot-auto-configure-options.mvel b/tooling/camel-spring-boot-generator-maven-plugin/src/main/resources/spring-boot-auto-configure-options.mvel
index 23366cf..2c0b151 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/resources/spring-boot-auto-configure-options.mvel
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/resources/spring-boot-auto-configure-options.mvel
@@ -1,6 +1,6 @@
-== Spring Boot Auto-Configuration
+== @{title} - Spring Boot Auto-Configuration
 
-When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
+When using @{title} with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
 
 [source,xml]
 ----