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
The following commit(s) were added to refs/heads/master by this push: new d6c850c CAMEL-15080: camel-spring-boot - The doc with the SB auto configuration table is not updated d6c850c is described below commit d6c850c2bb03c13de7d4f7b5365aa9f5370e3667 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon May 18 15:19:23 2020 +0200 CAMEL-15080: camel-spring-boot - The doc with the SB auto configuration table is not updated --- .../src/main/docs/spring-boot.adoc | 29 +++++++++++++--------- .../spring/boot/CamelConfigurationProperties.java | 8 ++++++ core/pom.xml | 28 ++++++++++++++++++++- ...pdateSpringBootAutoConfigurationReadmeMojo.java | 15 ++++++++--- 4 files changed, 64 insertions(+), 16 deletions(-) diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.adoc b/core/camel-spring-boot/src/main/docs/spring-boot.adoc index 4703c47..796b2fc 100644 --- a/core/camel-spring-boot/src/main/docs/spring-boot.adoc +++ b/core/camel-spring-boot/src/main/docs/spring-boot.adoc @@ -74,9 +74,12 @@ or `application.yml` file. // spring-boot-auto-configure options: START +:page-partial: +:doctitle: Camel Spring Boot Starter for spring-boot + == Spring Boot Auto-Configuration -When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration: +When using spring-boot with Spring Boot make sure to use the following Maven dependency to have support for auto configuration: [source,xml] ---- @@ -89,7 +92,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s ---- -The component supports 145 options, which are listed below. +The component supports 142 options, which are listed below. @@ -108,7 +111,6 @@ The component supports 145 options, which are listed below. | *camel.cloud.service-call.service-filter* | A reference to the org.apache.camel.cloud.ServiceFilter to use. | | String | *camel.cloud.service-call.uri* | The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression. | | String | *camel.cloud.service-chooser.enabled* | Global option to enable/disable Camel cloud service chooser, default is true. | true | Boolean -| *camel.cloud.service-discovery.cache-timeout* | Configure cache timeout (in millis). | | String | *camel.cloud.service-discovery.configurations* | Configure the service discovery rules. | | Map | *camel.cloud.service-discovery.enabled* | Global option to enable/disable Camel cloud service discovery, default is true. | true | Boolean | *camel.cloud.service-discovery.services* | Configure service discoveries. | | Map @@ -172,10 +174,10 @@ The component supports 145 options, which are listed below. | *camel.springboot.inflight-repository-browse-enabled* | Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled. | false | Boolean | *camel.springboot.java-routes-exclude-pattern* | Used for exclusive filtering component scanning of RouteBuilder classes with @Component annotation. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma. For example to exclude all classes starting with Bar use: **/Bar* To exclude all routes form a specific package use: com/mycompany/bar/* To exclude all routes [...] | *camel.springboot.java-routes-include-pattern* | Used for inclusive filtering component scanning of RouteBuilder classes with @Component annotation. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma. For example to include all classes starting with Foo use: **/Foo* To include all routes form a specific package use: com/mycompany/foo/* To include all routes for [...] -| *camel.springboot.jmx-create-connector* | Whether JMX connector is created, allowing clients to connect remotely The default value is false. | false | Boolean | *camel.springboot.jmx-enabled* | Enable JMX in your Camel application. | true | Boolean | *camel.springboot.jmx-management-name-pattern* | The naming pattern for creating the CamelContext JMX management name. The default pattern is #name# | #name# | String | *camel.springboot.jmx-management-statistics-level* | Sets the JMX statistics level The level can be set to Extended to gather additional information The default value is Default. | | ManagementStatisticsLevel +| *camel.springboot.lightweight* | Experimental: Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported. | false | Boolean | *camel.springboot.load-type-converters* | Whether to load custom type converters by scanning classpath. This is used for backwards compatibility with Camel 2.x. Its recommended to migrate to use fast type converter loading by setting <tt>@Converter(generateLoader = true)</tt> on your custom type converter classes. | true | Boolean | *camel.springboot.log-debug-max-chars* | Is used to limit the maximum length of the logging Camel message bodies. If the message body is longer than the limit, the log message is clipped. Use -1 to have unlimited length. Use for example 1000 to log at most 1000 characters. | 0 | Integer | *camel.springboot.log-exhausted-message-body* | Sets whether to log exhausted message body with message history. Default is false. | false | Boolean @@ -185,6 +187,17 @@ The component supports 145 options, which are listed below. | *camel.springboot.message-history* | Sets whether message history is enabled or not. Default is true. | true | Boolean | *camel.springboot.name* | Sets the name of the CamelContext. | | String | *camel.springboot.producer-template-cache-size* | Producer template endpoints cache size. | 1000 | Integer +| *camel.springboot.route-controller-back-off-delay* | Backoff delay in millis when restarting a route that failed to startup. | 2000 | Long +| *camel.springboot.route-controller-back-off-max-attempts* | Backoff maximum number of attempts to restart a route that failed to startup. When this threshold has been exceeded then the controller will give up attempting to restart the route, and the route will remain as stopped. | 0 | Long +| *camel.springboot.route-controller-back-off-max-delay* | Backoff maximum delay in millis when restarting a route that failed to startup. | 0 | Long +| *camel.springboot.route-controller-back-off-max-elapsed-time* | Backoff maximum elapsed time in millis, after which the backoff should be considered exhausted and no more attempts should be made. | 0 | Long +| *camel.springboot.route-controller-back-off-multiplier* | Backoff multiplier to use for exponential backoff. This is used to extend the delay between restart attempts. | 1 | Double +| *camel.springboot.route-controller-exclude-routes* | Pattern for filtering routes to be included as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to include all kafka routes, you can say <tt>kafka:*</tt>. And to include routes with specific route ids <tt>myRoute,myOtherRoute</tt>. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPattern. | | String +| *camel.springboot.route-controller-include-routes* | Pattern for filtering routes to be excluded as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to exclude all JMS routes, you can say <tt>jms:*</tt>. And to exclude routes with specific route ids <tt>mySpecialRoute,myOtherSpecialRoute</tt>. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPatte [...] +| *camel.springboot.route-controller-initial-delay* | Initial delay in milli seconds before the route controller starts, after CamelContext has been started. | 0 | Long +| *camel.springboot.route-controller-route-startup-logging-level* | Sets the logging level used for logging route startup activity. By default INFO level is used. You can use this to change the level for example to OFF if this kind of logging is not wanted. | | LoggingLevel +| *camel.springboot.route-controller-supervise-enabled* | To enable using supervising route controller which allows Camel to startup and then the controller takes care of starting the routes in a safe manner. This can be used when you want to startup Camel despite a route may otherwise fail fast during startup and cause Camel to fail to startup as well. By delegating the route startup to the supervising route controller then its manages the startup using a background thread. The controll [...] +| *camel.springboot.route-controller-thread-pool-size* | The number of threads used by the route controller scheduled thread pool that are used for restarting routes. The pool uses 1 thread by default, but you can increase this to allow the controller to concurrently attempt to restart multiple routes in case more than one route has problems starting. | 1 | Integer | *camel.springboot.route-filter-exclude-pattern* | Used for filtering routes routes matching the given pattern, which follows the following rules: - Match by route id - Match by route input endpoint uri The matching is using exact match, by wildcard and regular expression. For example to only include routes which starts with foo in their route id's, use: include=foo* And to exclude routes which starts from JMS endpoints, use: exclude=jms:* Multiple patterns can be separated by c [...] | *camel.springboot.route-filter-include-pattern* | Used for filtering routes routes matching the given pattern, which follows the following rules: - Match by route id - Match by route input endpoint uri The matching is using exact match, by wildcard and regular expression. For example to only include routes which starts with foo in their route id's, use: include=foo* And to exclude routes which starts from JMS endpoints, use: exclude=jms:* Multiple patterns can be separated by c [...] | *camel.springboot.routes-collector-enabled* | Whether the routes collector is enabled or not. When enabled Camel will auto-discover routes (RouteBuilder instances from the registry and also load additional XML routes from the file system. The routes collector is default enabled. | true | Boolean @@ -226,14 +239,6 @@ The component supports 145 options, which are listed below. | *camel.ssl.server-parameters* | The optional configuration options to be applied purely to the server side settings of the SSLContext. Settings specified here override any duplicate settings provided at the overall level by this class. These parameters apply to SSLServerSocketFactory and SSLEngine produced by the SSLContext produced from this class as well as to the SSLContext itself. | | SSLContextServerParameters | *camel.ssl.session-timeout* | The optional SSLSessionContext timeout time for javax.net.ssl.SSLSession in seconds. | | String | *camel.ssl.trust-managers* | The optional trust manager configuration for creating the TrustManager used in constructing an SSLContext. | | TrustManagersParameters -| *camel.supervising.controller.default-back-off.delay* | The delay to wait before retry the operation. You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour). | | String -| *camel.supervising.controller.default-back-off.max-attempts* | The maximum number of attempts after which the back-off is exhausted. | | Long -| *camel.supervising.controller.default-back-off.max-delay* | The maximum back-off time. You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour). | | String -| *camel.supervising.controller.default-back-off.max-elapsed-time* | The maximum elapsed time after which the back-off is exhausted. You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour). | | String -| *camel.supervising.controller.default-back-off.multiplier* | The value to multiply the current interval by for each retry attempt. | | Double -| *camel.supervising.controller.enabled* | Global option to enable/disable this org.apache.camel.spi.RouteController, default is false. | false | Boolean -| *camel.supervising.controller.initial-delay* | Set the amount of time the route controller should wait before to start the routes after the camel context is started or after the route is initialized if the route is created after the camel context is started. | | String -| *camel.supervising.controller.routes* | Routes configuration. | | Map | *management.info.camel.enabled* | Whether to enable Camel info. | true | Boolean | *management.info.camel.verbose* | Global option to enable/disable health bean camel version info, default is true. | true | Boolean |=== diff --git a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java index c13cb7d..85926da 100644 --- a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java +++ b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java @@ -608,6 +608,14 @@ public class CamelConfigurationProperties extends DefaultConfigurationProperties */ String routeControllerExcludeRoutes; + /** + * Experimental: Configure the context to be lightweight. + * This will trigger some optimizations and memory reduction options. + * Lightweight context have some limitations. + * At this moment, dynamic endpoint destinations are not supported. + */ + private boolean lightweight; + // Getters & setters // ----------------- diff --git a/core/pom.xml b/core/pom.xml index d757cae..dfe1a55 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -17,7 +17,8 @@ limitations under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> @@ -42,4 +43,29 @@ <module>camel-spring-cloud-zookeeper</module> </modules> + <build> + <plugins> + <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>false</failFast> + <!-- set to true to make build fail if an option has no description --> + <failOnMissingDescription>false</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/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 3a99f54..d780859 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 @@ -108,11 +108,20 @@ public class UpdateSpringBootAutoConfigurationReadmeMojo extends AbstractMojo { return; } - // skip camel- and -starter in the end - String componentName = name.substring(6, name.length() - 8); + if (name.startsWith("camel-")) { + // skip camel- and -starter in the end + name = name.substring(6); + } + boolean isStarter = false; + if (name.endsWith("-starter")) { + // skip camel- and -starter in the end + name = name.substring(0, name.length() - 8); + isStarter = true; + } + String componentName = name; getLog().debug("Camel component: " + componentName); File docFolder = new File(starter,"src/main/docs/"); - File docFile = new File(docFolder, componentName + "-starter.adoc"); + File docFile = new File(docFolder, isStarter ? componentName + "-starter.adoc" : componentName + ".adoc"); List<SpringBootAutoConfigureOptionModel> models = parseSpringBootAutoConfigureModels(jsonFile, null);