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]
----