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 2016/06/08 11:49:15 UTC

[01/12] camel git commit: Component docs

Repository: camel
Updated Branches:
  refs/heads/master ff46f80f8 -> e364bc7bb


Component docs


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e364bc7b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e364bc7b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e364bc7b

Branch: refs/heads/master
Commit: e364bc7bb096b6bf82c7ae541fc0a898dbdea947
Parents: 7525173
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jun 8 13:48:41 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jun 8 13:48:57 2016 +0200

----------------------------------------------------------------------
 components/camel-kubernetes/src/main/docs/kubernetes.adoc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e364bc7b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes.adoc b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
index 3507e04..f0547ae 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
@@ -45,8 +45,9 @@ The Kubernetes component has no options.
 
 
 
+
 // endpoint options: START
-The Kubernetes component supports 23 endpoint options which are listed below:
+The Kubernetes component supports 25 endpoint options which are listed below:
 
 {% raw %}
 [width="100%",cols="2s,1,1m,1m,5",options="header"]
@@ -55,7 +56,9 @@ The Kubernetes component supports 23 endpoint options which are listed below:
 | masterUrl | common |  | String | *Required* Kubernetes Master url
 | apiVersion | common |  | String | The Kubernetes API Version to use
 | category | common |  | String | *Required* Kubernetes Producer and Consumer category
+| dnsDomain | common |  | String | The dns domain used for ServiceCall EIP
 | kubernetesClient | common |  | DefaultKubernetesClient | Default KubernetesClient to use if provided
+| portName | common |  | String | The port name used for ServiceCall EIP
 | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
 | namespace | consumer |  | String | The namespace
 | poolSize | consumer | 1 | int | The Consumer pool size
@@ -82,6 +85,7 @@ The Kubernetes component supports 23 endpoint options which are listed below:
 
 
 
+
 [[Kubernetes-Headers]]
 Headers
 ^^^^^^^


[12/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/75251730
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/75251730
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/75251730

Branch: refs/heads/master
Commit: 75251730cbc7c17d155bdf22efd31c3b21e2b3c0
Parents: ff46f80
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jun 8 13:17:24 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jun 8 13:48:57 2016 +0200

----------------------------------------------------------------------
 camel-core/pom.xml                              |   23 +
 .../DirectComponentAutoConfiguration.java       |   50 +
 .../DirectComponentConfiguration.java           |   56 +
 .../DirectVmComponentAutoConfiguration.java     |   50 +
 .../DirectVmComponentConfiguration.java         |   85 ++
 .../LogComponentAutoConfiguration.java          |   50 +
 .../springboot/LogComponentConfiguration.java   |   44 +
 .../PropertiesComponentAutoConfiguration.java   |   50 +
 .../PropertiesComponentConfiguration.java       |  230 ++++
 .../SchedulerComponentAutoConfiguration.java    |   50 +
 .../SchedulerComponentConfiguration.java        |   43 +
 .../SedaComponentAutoConfiguration.java         |   50 +
 .../springboot/SedaComponentConfiguration.java  |   70 ++
 .../StubComponentAutoConfiguration.java         |   50 +
 .../springboot/StubComponentConfiguration.java  |   70 ++
 .../ValidatorComponentAutoConfiguration.java    |   50 +
 .../ValidatorComponentConfiguration.java        |   44 +
 .../VmComponentAutoConfiguration.java           |   50 +
 .../vm/springboot/VmComponentConfiguration.java |   70 ++
 .../XsltComponentAutoConfiguration.java         |   50 +
 .../springboot/XsltComponentConfiguration.java  |  104 ++
 .../main/resources/META-INF/spring.factories    |   35 +
 components-starter/pom.xml                      |   34 +
 .../WsComponentAutoConfiguration.java           |   50 +
 .../ws/springboot/WsComponentConfiguration.java |  118 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../camel/component/ahc/AhcComponent.java       |    2 -
 .../AhcComponentAutoConfiguration.java          |   50 +
 .../springboot/AhcComponentConfiguration.java   |  118 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../AMQPComponentAutoConfiguration.java         |   50 +
 .../springboot/AMQPComponentConfiguration.java  | 1122 +++++++++++++++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../ApnsComponentAutoConfiguration.java         |   50 +
 .../springboot/ApnsComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../WebsocketComponentAutoConfiguration.java    |   50 +
 .../WebsocketComponentConfiguration.java        |  126 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../AvroComponentAutoConfiguration.java         |   50 +
 .../springboot/AvroComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../BeanstalkComponentAutoConfiguration.java    |   50 +
 .../BeanstalkComponentConfiguration.java        |   46 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../BoxComponentAutoConfiguration.java          |   50 +
 .../springboot/BoxComponentConfiguration.java   |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../BraintreeComponentAutoConfiguration.java    |   50 +
 .../BraintreeComponentConfiguration.java        |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../CacheComponentAutoConfiguration.java        |   50 +
 .../springboot/CacheComponentConfiguration.java |   70 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../CometdComponentAutoConfiguration.java       |   50 +
 .../CometdComponentConfiguration.java           |  108 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 ...italSignatureComponentAutoConfiguration.java |   52 +
 .../DigitalSignatureComponentConfiguration.java |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../CxfRsComponentAutoConfiguration.java        |   50 +
 .../springboot/CxfRsComponentConfiguration.java |   44 +
 .../CxfComponentAutoConfiguration.java          |   50 +
 .../springboot/CxfComponentConfiguration.java   |   59 +
 .../main/resources/META-INF/spring.factories    |   21 +
 .../DisruptorComponentAutoConfiguration.java    |   50 +
 .../DisruptorComponentConfiguration.java        |  120 ++
 .../DisruptorVmComponentAutoConfiguration.java  |   50 +
 .../DisruptorVmComponentConfiguration.java      |  120 ++
 .../main/resources/META-INF/spring.factories    |   21 +
 .../DockerComponentAutoConfiguration.java       |   50 +
 .../DockerComponentConfiguration.java           |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../EjbComponentAutoConfiguration.java          |   50 +
 .../springboot/EjbComponentConfiguration.java   |   56 +
 .../main/resources/META-INF/spring.factories    |   19 +
 ...ElasticsearchComponentAutoConfiguration.java |   50 +
 .../ElasticsearchComponentConfiguration.java    |   44 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../ElsqlComponentAutoConfiguration.java        |   50 +
 .../springboot/ElsqlComponentConfiguration.java |   86 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../EventAdminComponentAutoConfiguration.java   |   50 +
 .../EventAdminComponentConfiguration.java       |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../FacebookComponentAutoConfiguration.java     |   50 +
 .../FacebookComponentConfiguration.java         |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../FlinkComponentAutoConfiguration.java        |   50 +
 .../springboot/FlinkComponentConfiguration.java |   81 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../FreemarkerComponentAutoConfiguration.java   |   50 +
 .../FreemarkerComponentConfiguration.java       |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../GangliaComponentAutoConfiguration.java      |   50 +
 .../GangliaComponentConfiguration.java          |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 ...oogleCalendarComponentAutoConfiguration.java |   52 +
 .../GoogleCalendarComponentConfiguration.java   |   56 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../GoogleDriveComponentAutoConfiguration.java  |   50 +
 .../GoogleDriveComponentConfiguration.java      |   57 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../GoogleMailComponentAutoConfiguration.java   |   50 +
 .../GoogleMailComponentConfiguration.java       |   56 +
 .../main/resources/META-INF/spring.factories    |   19 +
 ...GuavaEventBusComponentAutoConfiguration.java |   50 +
 .../GuavaEventBusComponentConfiguration.java    |   59 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HazelcastComponentAutoConfiguration.java    |   50 +
 .../HazelcastComponentConfiguration.java        |   45 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HBaseComponentAutoConfiguration.java        |   50 +
 .../springboot/HBaseComponentConfiguration.java |   55 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HdfsComponentAutoConfiguration.java         |   50 +
 .../springboot/HdfsComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HdfsComponentAutoConfiguration.java         |   50 +
 .../springboot/HdfsComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HttpComponentAutoConfiguration.java         |   50 +
 .../springboot/HttpComponentConfiguration.java  |  116 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../HttpComponentAutoConfiguration.java         |   50 +
 .../springboot/HttpComponentConfiguration.java  |  217 ++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../IBatisComponentAutoConfiguration.java       |   50 +
 .../IBatisComponentConfiguration.java           |   68 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JcloudsComponentAutoConfiguration.java      |   50 +
 .../JcloudsComponentConfiguration.java          |   57 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JdbcComponentAutoConfiguration.java         |   50 +
 .../springboot/JdbcComponentConfiguration.java  |   44 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JettyHttpComponentAutoConfiguration9.java   |   50 +
 .../JettyHttpComponentConfiguration9.java       |  436 +++++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JGroupsComponentAutoConfiguration.java      |   50 +
 .../JGroupsComponentConfiguration.java          |   69 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JmsComponentAutoConfiguration.java          |   50 +
 .../springboot/JmsComponentConfiguration.java   | 1123 ++++++++++++++++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JoltComponentAutoConfiguration.java         |   50 +
 .../springboot/JoltComponentConfiguration.java  |   44 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../JpaComponentAutoConfiguration.java          |   50 +
 .../springboot/JpaComponentConfiguration.java   |   89 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../ScpComponentAutoConfiguration.java          |   50 +
 .../springboot/ScpComponentConfiguration.java   |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../Jt400ComponentAutoConfiguration.java        |   50 +
 .../springboot/Jt400ComponentConfiguration.java |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../KafkaComponentAutoConfiguration.java        |   50 +
 .../springboot/KafkaComponentConfiguration.java |   47 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../KestrelComponentAutoConfiguration.java      |   50 +
 .../KestrelComponentConfiguration.java          |   44 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../LinkedInComponentAutoConfiguration.java     |   50 +
 .../LinkedInComponentConfiguration.java         |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../LuceneComponentAutoConfiguration.java       |   50 +
 .../LuceneComponentConfiguration.java           |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MailComponentAutoConfiguration.java         |   50 +
 .../springboot/MailComponentConfiguration.java  |   55 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MetricsComponentAutoConfiguration.java      |   50 +
 .../MetricsComponentConfiguration.java          |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MinaComponentAutoConfiguration.java         |   50 +
 .../springboot/MinaComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../Mina2ComponentAutoConfiguration.java        |   50 +
 .../springboot/Mina2ComponentConfiguration.java |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MQTTComponentAutoConfiguration.java         |   50 +
 .../springboot/MQTTComponentConfiguration.java  |   67 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MsvComponentAutoConfiguration.java          |   50 +
 .../springboot/MsvComponentConfiguration.java   |   57 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MustacheComponentAutoConfiguration.java     |   50 +
 .../MustacheComponentConfiguration.java         |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../MyBatisComponentAutoConfiguration.java      |   50 +
 .../MyBatisComponentConfiguration.java          |   56 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../NagiosComponentAutoConfiguration.java       |   50 +
 .../NagiosComponentConfiguration.java           |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../NettyHttpComponentAutoConfiguration.java    |   50 +
 .../NettyHttpComponentConfiguration.java        |  100 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../NettyComponentAutoConfiguration.java        |   50 +
 .../springboot/NettyComponentConfiguration.java |   55 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../NettyHttpComponentAutoConfiguration.java    |   50 +
 .../NettyHttpComponentConfiguration.java        |  113 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../NettyComponentAutoConfiguration.java        |   50 +
 .../springboot/NettyComponentConfiguration.java |   68 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../Olingo2ComponentAutoConfiguration.java      |   50 +
 .../Olingo2ComponentConfiguration.java          |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../OpenShiftComponentAutoConfiguration.java    |   50 +
 .../OpenShiftComponentConfiguration.java        |   79 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../PahoComponentAutoConfiguration.java         |   50 +
 .../springboot/PahoComponentConfiguration.java  |   67 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../PaxLoggingComponentAutoConfiguration.java   |   50 +
 .../PaxLoggingComponentConfiguration.java       |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../QuartzComponentAutoConfiguration.java       |   50 +
 .../QuartzComponentConfiguration.java           |  119 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../QuartzComponentAutoConfiguration.java       |   50 +
 .../QuartzComponentConfiguration.java           |  149 +++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../QuickfixjComponentAutoConfiguration.java    |   50 +
 .../QuickfixjComponentConfiguration.java        |   98 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../RestletComponentAutoConfiguration.java      |   50 +
 .../RestletComponentConfiguration.java          |  296 +++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SalesforceComponentAutoConfiguration.java   |   50 +
 .../SalesforceComponentConfiguration.java       |  231 ++++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../XQueryComponentAutoConfiguration.java       |   50 +
 .../XQueryComponentConfiguration.java           |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../ServletComponentAutoConfiguration.java      |   50 +
 .../ServletComponentConfiguration.java          |  127 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SjmsBatchComponentAutoConfiguration.java    |   50 +
 .../SjmsBatchComponentConfiguration.java        |   43 +
 .../SjmsComponentAutoConfiguration.java         |   50 +
 .../springboot/SjmsComponentConfiguration.java  |  166 +++
 .../main/resources/META-INF/spring.factories    |   21 +
 .../SlackComponentAutoConfiguration.java        |   50 +
 .../springboot/SlackComponentConfiguration.java |   41 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SmppComponentAutoConfiguration.java         |   50 +
 .../springboot/SmppComponentConfiguration.java  |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SparkComponentAutoConfiguration.java        |   50 +
 .../springboot/SparkComponentConfiguration.java |  166 +++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SparkComponentAutoConfiguration.java        |   50 +
 .../springboot/SparkComponentConfiguration.java |   56 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SplunkComponentAutoConfiguration.java       |   50 +
 .../SplunkComponentConfiguration.java           |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SpringBatchComponentAutoConfiguration.java  |   50 +
 .../SpringBatchComponentConfiguration.java      |   43 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../EventComponentAutoConfiguration.java        |   50 +
 .../springboot/EventComponentConfiguration.java |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../SqlComponentAutoConfiguration.java          |   50 +
 .../springboot/SqlComponentConfiguration.java   |   55 +
 .../SqlStoredComponentAutoConfiguration.java    |   50 +
 .../SqlStoredComponentConfiguration.java        |   42 +
 .../main/resources/META-INF/spring.factories    |   21 +
 .../SshComponentAutoConfiguration.java          |   50 +
 .../springboot/SshComponentConfiguration.java   |  175 +++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../camel/component/stomp/StompComponent.java   |   32 +-
 .../StompComponentAutoConfiguration.java        |   50 +
 .../springboot/StompComponentConfiguration.java |   91 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../TwitterComponentAutoConfiguration.java      |   50 +
 .../TwitterComponentConfiguration.java          |  126 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../UndertowComponentAutoConfiguration.java     |   50 +
 .../UndertowComponentConfiguration.java         |   58 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../VelocityComponentAutoConfiguration.java     |   50 +
 .../VelocityComponentConfiguration.java         |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../VertxComponentAutoConfiguration.java        |   50 +
 .../springboot/VertxComponentConfiguration.java |  107 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../WebsocketComponentAutoConfiguration.java    |   50 +
 .../WebsocketComponentConfiguration.java        |  192 +++
 .../main/resources/META-INF/spring.factories    |   19 +
 components/camel-xmlbeans/pom.xml               |  127 +-
 .../XmlSignatureComponentAutoConfiguration.java |   50 +
 .../XmlSignatureComponentConfiguration.java     |   59 +
 .../main/resources/META-INF/spring.factories    |   19 +
 .../YammerComponentAutoConfiguration.java       |   50 +
 .../YammerComponentConfiguration.java           |   79 ++
 .../main/resources/META-INF/spring.factories    |   19 +
 .../ZooKeeperComponentAutoConfiguration.java    |   50 +
 .../ZooKeeperComponentConfiguration.java        |   42 +
 .../main/resources/META-INF/spring.factories    |   19 +
 components/pom.xml                              |   33 +-
 .../src/main/resources/application.yml          |    4 +
 parent/pom.xml                                  |    1 +
 pom.xml                                         |    1 +
 .../maven/camel-package-maven-plugin/pom.xml    |   25 +-
 .../SpringBootAutoConfigurationMojo.java        |  498 ++++++++
 .../src/main/resources/license-header-java.txt  |   16 +
 .../src/main/resources/license-header.txt       |   16 +
 312 files changed, 17992 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/pom.xml
----------------------------------------------------------------------
diff --git a/camel-core/pom.xml b/camel-core/pom.xml
index ca2ac54..6f999e3 100644
--- a/camel-core/pom.xml
+++ b/camel-core/pom.xml
@@ -355,6 +355,7 @@
             <id>validate</id>
             <goals>
               <goal>validate-components</goal>
+              <goal>prepare-spring-boot-auto-configuration</goal>
             </goals>
             <phase>prepare-package</phase>
           </execution>
@@ -534,12 +535,34 @@
       </activation>
 
       <dependencies>
+
+        <!-- to support spring-boot auto configuration in the Camel components -->
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot</artifactId>
+          <version>${spring-boot-version}</version>
+          <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-autoconfigure</artifactId>
+          <version>${spring-boot-version}</version>
+          <scope>provided</scope>
+        </dependency>
+
         <!-- enable the APT processor -->
         <dependency>
           <groupId>org.apache.camel</groupId>
           <artifactId>apt</artifactId>
           <scope>provided</scope>
         </dependency>
+        <!-- enable Spring Boot configuration APT processor -->
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-configuration-processor</artifactId>
+          <version>${spring-boot-version}</version>
+          <scope>provided</scope>
+        </dependency>
       </dependencies>
     </profile>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentAutoConfiguration.java
new file mode 100644
index 0000000..675fefa
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.direct.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.direct.DirectComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DirectComponentConfiguration.class)
+public class DirectComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DirectComponent.class)
+    public DirectComponent configureComponent(CamelContext camelContext,
+            DirectComponentConfiguration configuration) throws Exception {
+        DirectComponent component = new DirectComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
new file mode 100644
index 0000000..848e762
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.direct.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The direct component provides direct synchronous call to another endpoint
+ * from the same CamelContext.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.direct")
+public class DirectComponentConfiguration {
+
+    /**
+     * If sending a message to a direct endpoint which has no active consumer
+     * then we can tell the producer to block and wait for the consumer to
+     * become active.
+     */
+    private boolean block;
+    /**
+     * The timeout value to use if block is enabled.
+     */
+    private long timeout;
+
+    public boolean isBlock() {
+        return block;
+    }
+
+    public void setBlock(boolean block) {
+        this.block = block;
+    }
+
+    public long getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(long timeout) {
+        this.timeout = timeout;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentAutoConfiguration.java
new file mode 100644
index 0000000..97c9f1a
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.directvm.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.directvm.DirectVmComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DirectVmComponentConfiguration.class)
+public class DirectVmComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DirectVmComponent.class)
+    public DirectVmComponent configureComponent(CamelContext camelContext,
+            DirectVmComponentConfiguration configuration) throws Exception {
+        DirectVmComponent component = new DirectVmComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
new file mode 100644
index 0000000..b336e8a
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.directvm.springboot;
+
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The direct-vm component provides direct synchronous call to another endpoint
+ * from any CamelContext in the same JVM.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.direct-vm")
+public class DirectVmComponentConfiguration {
+
+    /**
+     * If sending a message to a direct endpoint which has no active consumer
+     * then we can tell the producer to block and wait for the consumer to
+     * become active.
+     */
+    private boolean block;
+    /**
+     * The timeout value to use if block is enabled.
+     */
+    private long timeout;
+    /**
+     * Sets a HeaderFilterStrategy that will only be applied on producer
+     * endpoints (on both directions: request and response). Default value:
+     * none.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * Whether to propagate or not properties from the producer side to the
+     * consumer side and viceversa. Default value: true.
+     */
+    private boolean propagateProperties;
+
+    public boolean isBlock() {
+        return block;
+    }
+
+    public void setBlock(boolean block) {
+        this.block = block;
+    }
+
+    public long getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(long timeout) {
+        this.timeout = timeout;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public boolean isPropagateProperties() {
+        return propagateProperties;
+    }
+
+    public void setPropagateProperties(boolean propagateProperties) {
+        this.propagateProperties = propagateProperties;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentAutoConfiguration.java
new file mode 100644
index 0000000..b6fb50b
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.log.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.log.LogComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(LogComponentConfiguration.class)
+public class LogComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(LogComponent.class)
+    public LogComponent configureComponent(CamelContext camelContext,
+            LogComponentConfiguration configuration) throws Exception {
+        LogComponent component = new LogComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
new file mode 100644
index 0000000..8b40ee6
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.log.springboot;
+
+import org.apache.camel.spi.ExchangeFormatter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The log component logs message exchanges to the underlying logging mechanism.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.log")
+public class LogComponentConfiguration {
+
+    /**
+     * Sets a custom ExchangeFormatter to convert the Exchange to a String
+     * suitable for logging. If not specified we default to
+     * DefaultExchangeFormatter.
+     */
+    private ExchangeFormatter exchangeFormatter;
+
+    public ExchangeFormatter getExchangeFormatter() {
+        return exchangeFormatter;
+    }
+
+    public void setExchangeFormatter(ExchangeFormatter exchangeFormatter) {
+        this.exchangeFormatter = exchangeFormatter;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentAutoConfiguration.java
new file mode 100644
index 0000000..86de648
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.properties.PropertiesComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(PropertiesComponentConfiguration.class)
+public class PropertiesComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(PropertiesComponent.class)
+    public PropertiesComponent configureComponent(CamelContext camelContext,
+            PropertiesComponentConfiguration configuration) throws Exception {
+        PropertiesComponent component = new PropertiesComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
new file mode 100644
index 0000000..2d31111
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
@@ -0,0 +1,230 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties.springboot;
+
+import java.util.Properties;
+import org.apache.camel.component.properties.PropertiesParser;
+import org.apache.camel.component.properties.PropertiesResolver;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The properties component is used for using property placeholders in endpoint
+ * uris.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.properties")
+public class PropertiesComponentConfiguration {
+
+    /**
+     * A list of locations to load properties. You can use comma to separate
+     * multiple locations. This option will override any default locations and
+     * only use the locations from this option.
+     */
+    private String[] locations;
+    /**
+     * A list of locations to load properties. You can use comma to separate
+     * multiple locations. This option will override any default locations and
+     * only use the locations from this option.
+     */
+    private String location;
+    /**
+     * Encoding to use when loading properties file from the file system or
+     * classpath. If no encoding has been set then the properties files is
+     * loaded using ISO-8859-1 encoding (latin-1) as documented by link
+     * java.util.Propertiesload(java.io.InputStream)
+     */
+    private String encoding;
+    /**
+     * To use a custom PropertiesResolver
+     */
+    private PropertiesResolver propertiesResolver;
+    /**
+     * To use a custom PropertiesParser
+     */
+    private PropertiesParser propertiesParser;
+    /**
+     * Whether or not to cache loaded properties. The default value is true.
+     */
+    private boolean cache;
+    /**
+     * Optional prefix prepended to property names before resolution.
+     */
+    private String propertyPrefix;
+    /**
+     * Optional suffix appended to property names before resolution.
+     */
+    private String propertySuffix;
+    /**
+     * If true first attempt resolution of property name augmented with
+     * propertyPrefix and propertySuffix before falling back the plain property
+     * name specified. If false only the augmented property name is searched.
+     */
+    private boolean fallbackToUnaugmentedProperty;
+    /**
+     * Whether to silently ignore if a location cannot be located such as a
+     * properties file not found.
+     */
+    private boolean ignoreMissingLocation;
+    /**
+     * Sets the value of the prefix token used to identify properties to
+     * replace. Setting a value of null restores the default token (link link
+     * DEFAULT_PREFIX_TOKEN).
+     */
+    private String prefixToken;
+    /**
+     * Sets the value of the suffix token used to identify properties to
+     * replace. Setting a value of null restores the default token (link link
+     * DEFAULT_SUFFIX_TOKEN).
+     */
+    private String suffixToken;
+    /**
+     * Sets initial properties which will be used before any locations are
+     * resolved.
+     */
+    private Properties initialProperties;
+    /**
+     * Sets a special list of override properties that take precedence and will
+     * use first if a property exist.
+     */
+    private Properties overrideProperties;
+    /**
+     * Sets the system property mode.
+     */
+    private int systemPropertiesMode;
+
+    public String[] getLocations() {
+        return locations;
+    }
+
+    public void setLocations(String[] locations) {
+        this.locations = locations;
+    }
+
+    public String getLocation() {
+        return location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public String getEncoding() {
+        return encoding;
+    }
+
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
+    public PropertiesResolver getPropertiesResolver() {
+        return propertiesResolver;
+    }
+
+    public void setPropertiesResolver(PropertiesResolver propertiesResolver) {
+        this.propertiesResolver = propertiesResolver;
+    }
+
+    public PropertiesParser getPropertiesParser() {
+        return propertiesParser;
+    }
+
+    public void setPropertiesParser(PropertiesParser propertiesParser) {
+        this.propertiesParser = propertiesParser;
+    }
+
+    public boolean isCache() {
+        return cache;
+    }
+
+    public void setCache(boolean cache) {
+        this.cache = cache;
+    }
+
+    public String getPropertyPrefix() {
+        return propertyPrefix;
+    }
+
+    public void setPropertyPrefix(String propertyPrefix) {
+        this.propertyPrefix = propertyPrefix;
+    }
+
+    public String getPropertySuffix() {
+        return propertySuffix;
+    }
+
+    public void setPropertySuffix(String propertySuffix) {
+        this.propertySuffix = propertySuffix;
+    }
+
+    public boolean isFallbackToUnaugmentedProperty() {
+        return fallbackToUnaugmentedProperty;
+    }
+
+    public void setFallbackToUnaugmentedProperty(
+            boolean fallbackToUnaugmentedProperty) {
+        this.fallbackToUnaugmentedProperty = fallbackToUnaugmentedProperty;
+    }
+
+    public boolean isIgnoreMissingLocation() {
+        return ignoreMissingLocation;
+    }
+
+    public void setIgnoreMissingLocation(boolean ignoreMissingLocation) {
+        this.ignoreMissingLocation = ignoreMissingLocation;
+    }
+
+    public String getPrefixToken() {
+        return prefixToken;
+    }
+
+    public void setPrefixToken(String prefixToken) {
+        this.prefixToken = prefixToken;
+    }
+
+    public String getSuffixToken() {
+        return suffixToken;
+    }
+
+    public void setSuffixToken(String suffixToken) {
+        this.suffixToken = suffixToken;
+    }
+
+    public Properties getInitialProperties() {
+        return initialProperties;
+    }
+
+    public void setInitialProperties(Properties initialProperties) {
+        this.initialProperties = initialProperties;
+    }
+
+    public Properties getOverrideProperties() {
+        return overrideProperties;
+    }
+
+    public void setOverrideProperties(Properties overrideProperties) {
+        this.overrideProperties = overrideProperties;
+    }
+
+    public int getSystemPropertiesMode() {
+        return systemPropertiesMode;
+    }
+
+    public void setSystemPropertiesMode(int systemPropertiesMode) {
+        this.systemPropertiesMode = systemPropertiesMode;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentAutoConfiguration.java
new file mode 100644
index 0000000..e5e3800
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.scheduler.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.scheduler.SchedulerComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SchedulerComponentConfiguration.class)
+public class SchedulerComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SchedulerComponent.class)
+    public SchedulerComponent configureComponent(CamelContext camelContext,
+            SchedulerComponentConfiguration configuration) throws Exception {
+        SchedulerComponent component = new SchedulerComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
new file mode 100644
index 0000000..a4c7e6f
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.scheduler.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The scheduler component is used for generating message exchanges when a
+ * scheduler fires.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.scheduler")
+public class SchedulerComponentConfiguration {
+
+    /**
+     * Number of threads used by the scheduling thread pool. Is by default using
+     * a single thread
+     */
+    private int concurrentTasks;
+
+    public int getConcurrentTasks() {
+        return concurrentTasks;
+    }
+
+    public void setConcurrentTasks(int concurrentTasks) {
+        this.concurrentTasks = concurrentTasks;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentAutoConfiguration.java
new file mode 100644
index 0000000..009b1ea
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.seda.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.seda.SedaComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SedaComponentConfiguration.class)
+public class SedaComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SedaComponent.class)
+    public SedaComponent configureComponent(CamelContext camelContext,
+            SedaComponentConfiguration configuration) throws Exception {
+        SedaComponent component = new SedaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
new file mode 100644
index 0000000..1f4ec64
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.seda.springboot;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.component.seda.BlockingQueueFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The seda component provides asynchronous call to another endpoint from any
+ * CamelContext in the same JVM.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.seda")
+public class SedaComponentConfiguration {
+
+    /**
+     * Sets the default maximum capacity of the SEDA queue (i.e. the number of
+     * messages it can hold).
+     */
+    private int queueSize;
+    /**
+     * Sets the default number of concurrent threads processing exchanges.
+     */
+    private int concurrentConsumers;
+    /**
+     * Sets the default queue factory.
+     */
+    private BlockingQueueFactory<org.apache.camel.Exchange> defaultQueueFactory;
+
+    public int getQueueSize() {
+        return queueSize;
+    }
+
+    public void setQueueSize(int queueSize) {
+        this.queueSize = queueSize;
+    }
+
+    public int getConcurrentConsumers() {
+        return concurrentConsumers;
+    }
+
+    public void setConcurrentConsumers(int concurrentConsumers) {
+        this.concurrentConsumers = concurrentConsumers;
+    }
+
+    public BlockingQueueFactory<Exchange> getDefaultQueueFactory() {
+        return defaultQueueFactory;
+    }
+
+    public void setDefaultQueueFactory(
+            BlockingQueueFactory<Exchange> defaultQueueFactory) {
+        this.defaultQueueFactory = defaultQueueFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentAutoConfiguration.java
new file mode 100644
index 0000000..b49ac9c
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.stub.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.stub.StubComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(StubComponentConfiguration.class)
+public class StubComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(StubComponent.class)
+    public StubComponent configureComponent(CamelContext camelContext,
+            StubComponentConfiguration configuration) throws Exception {
+        StubComponent component = new StubComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
new file mode 100644
index 0000000..f40268c
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.stub.springboot;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.component.seda.BlockingQueueFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The stub component provides a simple way to stub out any physical endpoints
+ * while in development or testing.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.stub")
+public class StubComponentConfiguration {
+
+    /**
+     * Sets the default maximum capacity of the SEDA queue (i.e. the number of
+     * messages it can hold).
+     */
+    private int queueSize;
+    /**
+     * Sets the default number of concurrent threads processing exchanges.
+     */
+    private int concurrentConsumers;
+    /**
+     * Sets the default queue factory.
+     */
+    private BlockingQueueFactory<org.apache.camel.Exchange> defaultQueueFactory;
+
+    public int getQueueSize() {
+        return queueSize;
+    }
+
+    public void setQueueSize(int queueSize) {
+        this.queueSize = queueSize;
+    }
+
+    public int getConcurrentConsumers() {
+        return concurrentConsumers;
+    }
+
+    public void setConcurrentConsumers(int concurrentConsumers) {
+        this.concurrentConsumers = concurrentConsumers;
+    }
+
+    public BlockingQueueFactory<Exchange> getDefaultQueueFactory() {
+        return defaultQueueFactory;
+    }
+
+    public void setDefaultQueueFactory(
+            BlockingQueueFactory<Exchange> defaultQueueFactory) {
+        this.defaultQueueFactory = defaultQueueFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentAutoConfiguration.java
new file mode 100644
index 0000000..9f14137
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.validator.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.validator.ValidatorComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ValidatorComponentConfiguration.class)
+public class ValidatorComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ValidatorComponent.class)
+    public ValidatorComponent configureComponent(CamelContext camelContext,
+            ValidatorComponentConfiguration configuration) throws Exception {
+        ValidatorComponent component = new ValidatorComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
new file mode 100644
index 0000000..40e5a2d
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.validator.springboot;
+
+import org.apache.camel.component.validator.ValidatorResourceResolverFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Validates the payload of a message using XML Schema and JAXP Validation.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.validator")
+public class ValidatorComponentConfiguration {
+
+    /**
+     * To use a custom LSResourceResolver which depends on a dynamic endpoint
+     * resource URI
+     */
+    private ValidatorResourceResolverFactory resourceResolverFactory;
+
+    public ValidatorResourceResolverFactory getResourceResolverFactory() {
+        return resourceResolverFactory;
+    }
+
+    public void setResourceResolverFactory(
+            ValidatorResourceResolverFactory resourceResolverFactory) {
+        this.resourceResolverFactory = resourceResolverFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentAutoConfiguration.java
new file mode 100644
index 0000000..49747e1
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.vm.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.vm.VmComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(VmComponentConfiguration.class)
+public class VmComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(VmComponent.class)
+    public VmComponent configureComponent(CamelContext camelContext,
+            VmComponentConfiguration configuration) throws Exception {
+        VmComponent component = new VmComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
new file mode 100644
index 0000000..106cf89
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.vm.springboot;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.component.seda.BlockingQueueFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The vm component provides asynchronous call to another endpoint from the same
+ * CamelContext.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.vm")
+public class VmComponentConfiguration {
+
+    /**
+     * Sets the default maximum capacity of the SEDA queue (i.e. the number of
+     * messages it can hold).
+     */
+    private int queueSize;
+    /**
+     * Sets the default number of concurrent threads processing exchanges.
+     */
+    private int concurrentConsumers;
+    /**
+     * Sets the default queue factory.
+     */
+    private BlockingQueueFactory<org.apache.camel.Exchange> defaultQueueFactory;
+
+    public int getQueueSize() {
+        return queueSize;
+    }
+
+    public void setQueueSize(int queueSize) {
+        this.queueSize = queueSize;
+    }
+
+    public int getConcurrentConsumers() {
+        return concurrentConsumers;
+    }
+
+    public void setConcurrentConsumers(int concurrentConsumers) {
+        this.concurrentConsumers = concurrentConsumers;
+    }
+
+    public BlockingQueueFactory<Exchange> getDefaultQueueFactory() {
+        return defaultQueueFactory;
+    }
+
+    public void setDefaultQueueFactory(
+            BlockingQueueFactory<Exchange> defaultQueueFactory) {
+        this.defaultQueueFactory = defaultQueueFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentAutoConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentAutoConfiguration.java
new file mode 100644
index 0000000..3d3fdf8
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xslt.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.xslt.XsltComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(XsltComponentConfiguration.class)
+public class XsltComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(XsltComponent.class)
+    public XsltComponent configureComponent(CamelContext camelContext,
+            XsltComponentConfiguration configuration) throws Exception {
+        XsltComponent component = new XsltComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
new file mode 100644
index 0000000..b4f3be8
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
@@ -0,0 +1,104 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xslt.springboot;
+
+import javax.xml.transform.URIResolver;
+import org.apache.camel.component.xslt.XsltUriResolverFactory;
+import org.apache.camel.converter.jaxp.XmlConverter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Transforms the message using a XSLT template.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.xslt")
+public class XsltComponentConfiguration {
+
+    /**
+     * To use a custom implementation of
+     * org.apache.camel.converter.jaxp.XmlConverter
+     */
+    private XmlConverter xmlConverter;
+    /**
+     * To use a custom javax.xml.transform.URIResolver which depends on a
+     * dynamic endpoint resource URI or which is a subclass of XsltUriResolver.
+     * Do not use in combination with uriResolver. See also link
+     * setUriResolver(URIResolver).
+     */
+    private XsltUriResolverFactory uriResolverFactory;
+    /**
+     * To use a custom javax.xml.transform.URIResolver. Do not use in
+     * combination with uriResolverFactory. See also link
+     * setUriResolverFactory(XsltUriResolverFactory).
+     */
+    private URIResolver uriResolver;
+    /**
+     * Cache for the resource content (the stylesheet file) when it is loaded.
+     * If set to false Camel will reload the stylesheet file on each message
+     * processing. This is good for development. A cached stylesheet can be
+     * forced to reload at runtime via JMX using the clearCachedStylesheet
+     * operation.
+     */
+    private boolean contentCache;
+    /**
+     * Whether to use Saxon as the transformerFactoryClass. If enabled then the
+     * class net.sf.saxon.TransformerFactoryImpl. You would need to add Saxon to
+     * the classpath.
+     */
+    private boolean saxon;
+
+    public XmlConverter getXmlConverter() {
+        return xmlConverter;
+    }
+
+    public void setXmlConverter(XmlConverter xmlConverter) {
+        this.xmlConverter = xmlConverter;
+    }
+
+    public XsltUriResolverFactory getUriResolverFactory() {
+        return uriResolverFactory;
+    }
+
+    public void setUriResolverFactory(XsltUriResolverFactory uriResolverFactory) {
+        this.uriResolverFactory = uriResolverFactory;
+    }
+
+    public URIResolver getUriResolver() {
+        return uriResolver;
+    }
+
+    public void setUriResolver(URIResolver uriResolver) {
+        this.uriResolver = uriResolver;
+    }
+
+    public boolean isContentCache() {
+        return contentCache;
+    }
+
+    public void setContentCache(boolean contentCache) {
+        this.contentCache = contentCache;
+    }
+
+    public boolean isSaxon() {
+        return saxon;
+    }
+
+    public void setSaxon(boolean saxon) {
+        this.saxon = saxon;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/camel-core/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/camel-core/src/main/resources/META-INF/spring.factories b/camel-core/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..b96c2d2
--- /dev/null
+++ b/camel-core/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,35 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.direct.springboot.DirectComponentAutoConfiguration,\
+org.apache.camel.component.directvm.springboot.DirectVmComponentAutoConfiguration,\
+org.apache.camel.component.log.springboot.LogComponentAutoConfiguration,\
+org.apache.camel.component.properties.springboot.PropertiesComponentAutoConfiguration,\
+org.apache.camel.component.scheduler.springboot.SchedulerComponentAutoConfiguration,\
+org.apache.camel.component.seda.springboot.SedaComponentAutoConfiguration,\
+org.apache.camel.component.stub.springboot.StubComponentAutoConfiguration,\
+org.apache.camel.component.validator.springboot.ValidatorComponentAutoConfiguration,\
+org.apache.camel.component.xslt.springboot.XsltComponentAutoConfiguration
+
+
+
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components-starter/pom.xml
----------------------------------------------------------------------
diff --git a/components-starter/pom.xml b/components-starter/pom.xml
new file mode 100644
index 0000000..5164e77
--- /dev/null
+++ b/components-starter/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  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">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-parent</artifactId>
+    <version>2.18-SNAPSHOT</version>
+    <relativePath>../parent</relativePath>
+  </parent>
+
+  <artifactId>components-starter</artifactId>
+  <name>Camel :: Components Starter</name>
+  <description>Camel Components Spring Boot Starter</description>
+  <packaging>pom</packaging>
+
+</project>


[04/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentConfiguration.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentConfiguration.java
new file mode 100644
index 0000000..7c581db
--- /dev/null
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentConfiguration.java
@@ -0,0 +1,296 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.restlet.springboot;
+
+import java.util.List;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Component for consuming and producing Restful resources using Restlet.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.restlet")
+public class RestletComponentConfiguration {
+
+    /**
+     * Indicates if the controller thread should be a daemon (not blocking JVM
+     * exit).
+     */
+    private Boolean controllerDaemon;
+    /**
+     * Time for the controller thread to sleep between each control.
+     */
+    private Integer controllerSleepTimeMs;
+    /**
+     * The size of the buffer when reading messages.
+     */
+    private Integer inboundBufferSize;
+    /**
+     * Maximum number of concurrent connections per host (IP address).
+     */
+    private Integer maxConnectionsPerHost;
+    /**
+     * Maximum threads that will service requests.
+     */
+    private Integer maxThreads;
+    /**
+     * Number of worker threads determining when the connector is considered
+     * overloaded.
+     */
+    private Integer lowThreads;
+    /**
+     * Maximum number of concurrent connections in total.
+     */
+    private Integer maxTotalConnections;
+    /**
+     * Minimum threads waiting to service requests.
+     */
+    private Integer minThreads;
+    /**
+     * The size of the buffer when writing messages.
+     */
+    private Integer outboundBufferSize;
+    /**
+     * Indicates if connections should be kept alive after a call.
+     */
+    private Boolean persistingConnections;
+    /**
+     * Indicates if pipelining connections are supported.
+     */
+    private Boolean pipeliningConnections;
+    /**
+     * Time for an idle thread to wait for an operation before being collected.
+     */
+    private Integer threadMaxIdleTimeMs;
+    /**
+     * Lookup the X-Forwarded-For header supported by popular proxies and caches
+     * and uses it to populate the Request.getClientAddresses() method result.
+     * This information is only safe for intermediary components within your
+     * local network. Other addresses could easily be changed by setting a fake
+     * header and should not be trusted for serious security checks.
+     */
+    private Boolean useForwardedForHeader;
+    /**
+     * Enable/disable the SO_REUSEADDR socket option. See
+     * java.io.ServerSocketreuseAddress property for additional details.
+     */
+    private Boolean reuseAddress;
+    /**
+     * Maximum number of calls that can be queued if there aren't any worker
+     * thread available to service them. If the value is '0' then no queue is
+     * used and calls are rejected if no worker thread is immediately available.
+     * If the value is '-1' then an unbounded queue is used and calls are never
+     * rejected.
+     */
+    private Integer maxQueued;
+    /**
+     * Determines whether or not the raw input stream from Restlet is cached or
+     * not (Camel will read the stream into a in memory/overflow to file Stream
+     * caching) cache. By default Camel will cache the Restlet input stream to
+     * support reading it multiple times to ensure Camel can retrieve all data
+     * from the stream. However you can set this option to true when you for
+     * example need to access the raw stream such as streaming it directly to a
+     * file or other persistent store. DefaultRestletBinding will copy the
+     * request input stream into a stream cache and put it into message body if
+     * this option is false to support reading the stream multiple times.
+     */
+    private boolean disableStreamCache;
+    /**
+     * To configure the port number for the restlet consumer routes. This allows
+     * to configure this once to reuse the same port for these consumers.
+     */
+    private int port;
+    /**
+     * Whether to use synchronous Restlet Client for the producer. Setting this
+     * option to true can yield faster performance as it seems the Restlet
+     * synchronous Client works better.
+     */
+    private Boolean synchronous;
+    /**
+     * A list of converters to enable as full class name or simple class name.
+     * All the converters automatically registered are enabled if empty or null
+     */
+    private List<java.lang.String> enabledConverters;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public Boolean getControllerDaemon() {
+        return controllerDaemon;
+    }
+
+    public void setControllerDaemon(Boolean controllerDaemon) {
+        this.controllerDaemon = controllerDaemon;
+    }
+
+    public Integer getControllerSleepTimeMs() {
+        return controllerSleepTimeMs;
+    }
+
+    public void setControllerSleepTimeMs(Integer controllerSleepTimeMs) {
+        this.controllerSleepTimeMs = controllerSleepTimeMs;
+    }
+
+    public Integer getInboundBufferSize() {
+        return inboundBufferSize;
+    }
+
+    public void setInboundBufferSize(Integer inboundBufferSize) {
+        this.inboundBufferSize = inboundBufferSize;
+    }
+
+    public Integer getMaxConnectionsPerHost() {
+        return maxConnectionsPerHost;
+    }
+
+    public void setMaxConnectionsPerHost(Integer maxConnectionsPerHost) {
+        this.maxConnectionsPerHost = maxConnectionsPerHost;
+    }
+
+    public Integer getMaxThreads() {
+        return maxThreads;
+    }
+
+    public void setMaxThreads(Integer maxThreads) {
+        this.maxThreads = maxThreads;
+    }
+
+    public Integer getLowThreads() {
+        return lowThreads;
+    }
+
+    public void setLowThreads(Integer lowThreads) {
+        this.lowThreads = lowThreads;
+    }
+
+    public Integer getMaxTotalConnections() {
+        return maxTotalConnections;
+    }
+
+    public void setMaxTotalConnections(Integer maxTotalConnections) {
+        this.maxTotalConnections = maxTotalConnections;
+    }
+
+    public Integer getMinThreads() {
+        return minThreads;
+    }
+
+    public void setMinThreads(Integer minThreads) {
+        this.minThreads = minThreads;
+    }
+
+    public Integer getOutboundBufferSize() {
+        return outboundBufferSize;
+    }
+
+    public void setOutboundBufferSize(Integer outboundBufferSize) {
+        this.outboundBufferSize = outboundBufferSize;
+    }
+
+    public Boolean getPersistingConnections() {
+        return persistingConnections;
+    }
+
+    public void setPersistingConnections(Boolean persistingConnections) {
+        this.persistingConnections = persistingConnections;
+    }
+
+    public Boolean getPipeliningConnections() {
+        return pipeliningConnections;
+    }
+
+    public void setPipeliningConnections(Boolean pipeliningConnections) {
+        this.pipeliningConnections = pipeliningConnections;
+    }
+
+    public Integer getThreadMaxIdleTimeMs() {
+        return threadMaxIdleTimeMs;
+    }
+
+    public void setThreadMaxIdleTimeMs(Integer threadMaxIdleTimeMs) {
+        this.threadMaxIdleTimeMs = threadMaxIdleTimeMs;
+    }
+
+    public Boolean getUseForwardedForHeader() {
+        return useForwardedForHeader;
+    }
+
+    public void setUseForwardedForHeader(Boolean useForwardedForHeader) {
+        this.useForwardedForHeader = useForwardedForHeader;
+    }
+
+    public Boolean getReuseAddress() {
+        return reuseAddress;
+    }
+
+    public void setReuseAddress(Boolean reuseAddress) {
+        this.reuseAddress = reuseAddress;
+    }
+
+    public Integer getMaxQueued() {
+        return maxQueued;
+    }
+
+    public void setMaxQueued(Integer maxQueued) {
+        this.maxQueued = maxQueued;
+    }
+
+    public boolean isDisableStreamCache() {
+        return disableStreamCache;
+    }
+
+    public void setDisableStreamCache(boolean disableStreamCache) {
+        this.disableStreamCache = disableStreamCache;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    public Boolean getSynchronous() {
+        return synchronous;
+    }
+
+    public void setSynchronous(Boolean synchronous) {
+        this.synchronous = synchronous;
+    }
+
+    public List<String> getEnabledConverters() {
+        return enabledConverters;
+    }
+
+    public void setEnabledConverters(List<String> enabledConverters) {
+        this.enabledConverters = enabledConverters;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-restlet/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/resources/META-INF/spring.factories b/components/camel-restlet/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..5ff7b3e
--- /dev/null
+++ b/components/camel-restlet/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.restlet.springboot.RestletComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentAutoConfiguration.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentAutoConfiguration.java
new file mode 100644
index 0000000..7bd6cbd
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.salesforce.SalesforceComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SalesforceComponentConfiguration.class)
+public class SalesforceComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SalesforceComponent.class)
+    public SalesforceComponent configureComponent(CamelContext camelContext,
+            SalesforceComponentConfiguration configuration) throws Exception {
+        SalesforceComponent component = new SalesforceComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
new file mode 100644
index 0000000..37c73ea
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
@@ -0,0 +1,231 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
+import org.apache.camel.component.salesforce.SalesforceLoginConfig;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The salesforce component is used for integrating Camel with the massive
+ * Salesforce API.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.salesforce")
+public class SalesforceComponentConfiguration {
+
+    /**
+     * To use the shared SalesforceLoginConfig as login configuration
+     */
+    private SalesforceLoginConfig loginConfig;
+    /**
+     * To use the shared SalesforceLoginConfig as configuration
+     */
+    private SalesforceEndpointConfig config;
+    /**
+     * Used for configuring HTTP client properties as key/value pairs
+     */
+    private Map<java.lang.String, java.lang.Object> httpClientProperties;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * To configure HTTP proxy host
+     */
+    private String httpProxyHost;
+    /**
+     * To configure HTTP proxy port
+     */
+    private Integer httpProxyPort;
+    /**
+     * To configure HTTP proxy username
+     */
+    private String httpProxyUsername;
+    /**
+     * To configure HTTP proxy password
+     */
+    private String httpProxyPassword;
+    /**
+     * Enable for Socks4 proxy false by default
+     */
+    private boolean isHttpProxySocks4;
+    /**
+     * Enable for TLS connections true by default
+     */
+    private boolean isHttpProxySecure;
+    /**
+     * HTTP proxy included addresses
+     */
+    private Set<java.lang.String> httpProxyIncludedAddresses;
+    /**
+     * HTTP proxy excluded addresses
+     */
+    private Set<java.lang.String> httpProxyExcludedAddresses;
+    /**
+     * HTTP proxy authentication URI
+     */
+    private String httpProxyAuthUri;
+    /**
+     * HTTP proxy authentication realm
+     */
+    private String httpProxyRealm;
+    /**
+     * Use HTTP proxy Digest authentication false by default
+     */
+    private boolean httpProxyUseDigestAuth;
+    /**
+     * Package names to scan for DTO classes (multiple packages can be separated
+     * by comma).
+     */
+    private String[] packages;
+
+    public SalesforceLoginConfig getLoginConfig() {
+        return loginConfig;
+    }
+
+    public void setLoginConfig(SalesforceLoginConfig loginConfig) {
+        this.loginConfig = loginConfig;
+    }
+
+    public SalesforceEndpointConfig getConfig() {
+        return config;
+    }
+
+    public void setConfig(SalesforceEndpointConfig config) {
+        this.config = config;
+    }
+
+    public Map<String, Object> getHttpClientProperties() {
+        return httpClientProperties;
+    }
+
+    public void setHttpClientProperties(Map<String, Object> httpClientProperties) {
+        this.httpClientProperties = httpClientProperties;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public String getHttpProxyHost() {
+        return httpProxyHost;
+    }
+
+    public void setHttpProxyHost(String httpProxyHost) {
+        this.httpProxyHost = httpProxyHost;
+    }
+
+    public Integer getHttpProxyPort() {
+        return httpProxyPort;
+    }
+
+    public void setHttpProxyPort(Integer httpProxyPort) {
+        this.httpProxyPort = httpProxyPort;
+    }
+
+    public String getHttpProxyUsername() {
+        return httpProxyUsername;
+    }
+
+    public void setHttpProxyUsername(String httpProxyUsername) {
+        this.httpProxyUsername = httpProxyUsername;
+    }
+
+    public String getHttpProxyPassword() {
+        return httpProxyPassword;
+    }
+
+    public void setHttpProxyPassword(String httpProxyPassword) {
+        this.httpProxyPassword = httpProxyPassword;
+    }
+
+    public boolean isIsHttpProxySocks4() {
+        return isHttpProxySocks4;
+    }
+
+    public void setIsHttpProxySocks4(boolean isHttpProxySocks4) {
+        this.isHttpProxySocks4 = isHttpProxySocks4;
+    }
+
+    public boolean isIsHttpProxySecure() {
+        return isHttpProxySecure;
+    }
+
+    public void setIsHttpProxySecure(boolean isHttpProxySecure) {
+        this.isHttpProxySecure = isHttpProxySecure;
+    }
+
+    public Set<String> getHttpProxyIncludedAddresses() {
+        return httpProxyIncludedAddresses;
+    }
+
+    public void setHttpProxyIncludedAddresses(
+            Set<String> httpProxyIncludedAddresses) {
+        this.httpProxyIncludedAddresses = httpProxyIncludedAddresses;
+    }
+
+    public Set<String> getHttpProxyExcludedAddresses() {
+        return httpProxyExcludedAddresses;
+    }
+
+    public void setHttpProxyExcludedAddresses(
+            Set<String> httpProxyExcludedAddresses) {
+        this.httpProxyExcludedAddresses = httpProxyExcludedAddresses;
+    }
+
+    public String getHttpProxyAuthUri() {
+        return httpProxyAuthUri;
+    }
+
+    public void setHttpProxyAuthUri(String httpProxyAuthUri) {
+        this.httpProxyAuthUri = httpProxyAuthUri;
+    }
+
+    public String getHttpProxyRealm() {
+        return httpProxyRealm;
+    }
+
+    public void setHttpProxyRealm(String httpProxyRealm) {
+        this.httpProxyRealm = httpProxyRealm;
+    }
+
+    public boolean isHttpProxyUseDigestAuth() {
+        return httpProxyUseDigestAuth;
+    }
+
+    public void setHttpProxyUseDigestAuth(boolean httpProxyUseDigestAuth) {
+        this.httpProxyUseDigestAuth = httpProxyUseDigestAuth;
+    }
+
+    public String[] getPackages() {
+        return packages;
+    }
+
+    public void setPackages(String[] packages) {
+        this.packages = packages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-salesforce/camel-salesforce-component/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/resources/META-INF/spring.factories b/components/camel-salesforce/camel-salesforce-component/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..19e534b
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.salesforce.springboot.SalesforceComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentAutoConfiguration.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentAutoConfiguration.java
new file mode 100644
index 0000000..a8e7c3c
--- /dev/null
+++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xquery.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.xquery.XQueryComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(XQueryComponentConfiguration.class)
+public class XQueryComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(XQueryComponent.class)
+    public XQueryComponent configureComponent(CamelContext camelContext,
+            XQueryComponentConfiguration configuration) throws Exception {
+        XQueryComponent component = new XQueryComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
new file mode 100644
index 0000000..8731955
--- /dev/null
+++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xquery.springboot;
+
+import net.sf.saxon.lib.ModuleURIResolver;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Transforms the message using a XQuery template using Saxon.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.xquery")
+public class XQueryComponentConfiguration {
+
+    /**
+     * To use the custom ModuleURIResolver
+     */
+    private ModuleURIResolver moduleURIResolver;
+
+    public ModuleURIResolver getModuleURIResolver() {
+        return moduleURIResolver;
+    }
+
+    public void setModuleURIResolver(ModuleURIResolver moduleURIResolver) {
+        this.moduleURIResolver = moduleURIResolver;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-saxon/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-saxon/src/main/resources/META-INF/spring.factories b/components/camel-saxon/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..e9b7419
--- /dev/null
+++ b/components/camel-saxon/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.xquery.springboot.XQueryComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentAutoConfiguration.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentAutoConfiguration.java
new file mode 100644
index 0000000..f9d8b98
--- /dev/null
+++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.servlet.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.servlet.ServletComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ServletComponentConfiguration.class)
+public class ServletComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ServletComponent.class)
+    public ServletComponent configureComponent(CamelContext camelContext,
+            ServletComponentConfiguration configuration) throws Exception {
+        ServletComponent component = new ServletComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentConfiguration.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentConfiguration.java
new file mode 100644
index 0000000..56c156c
--- /dev/null
+++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentConfiguration.java
@@ -0,0 +1,127 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.servlet.springboot;
+
+import org.apache.camel.component.servlet.HttpRegistry;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To use a HTTP Servlet as entry for Camel routes when running in a servlet
+ * container.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.servlet")
+public class ServletComponentConfiguration {
+
+    /**
+     * Default name of servlet to use. The default name is CamelServlet.
+     */
+    private String servletName;
+    /**
+     * To use a custom org.apache.camel.component.servlet.HttpRegistry.
+     */
+    private HttpRegistry httpRegistry;
+    /**
+     * Whether to automatic bind multipart/form-data as attachments on the Camel
+     * Exchange. This is turn off by default as this may require servet specific
+     * configuration to enable this when using Servlet's.
+     */
+    private boolean attachmentMultipartBinding;
+    /**
+     * To use a custom HttpBinding to control the mapping between Camel message
+     * and HttpClient.
+     */
+    private HttpBinding httpBinding;
+    /**
+     * To use the shared HttpConfiguration as base configuration.
+     */
+    private HttpConfiguration httpConfiguration;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public String getServletName() {
+        return servletName;
+    }
+
+    public void setServletName(String servletName) {
+        this.servletName = servletName;
+    }
+
+    public HttpRegistry getHttpRegistry() {
+        return httpRegistry;
+    }
+
+    public void setHttpRegistry(HttpRegistry httpRegistry) {
+        this.httpRegistry = httpRegistry;
+    }
+
+    public boolean isAttachmentMultipartBinding() {
+        return attachmentMultipartBinding;
+    }
+
+    public void setAttachmentMultipartBinding(boolean attachmentMultipartBinding) {
+        this.attachmentMultipartBinding = attachmentMultipartBinding;
+    }
+
+    public HttpBinding getHttpBinding() {
+        return httpBinding;
+    }
+
+    public void setHttpBinding(HttpBinding httpBinding) {
+        this.httpBinding = httpBinding;
+    }
+
+    public HttpConfiguration getHttpConfiguration() {
+        return httpConfiguration;
+    }
+
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
+        this.httpConfiguration = httpConfiguration;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-servlet/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-servlet/src/main/resources/META-INF/spring.factories b/components/camel-servlet/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..878459a
--- /dev/null
+++ b/components/camel-servlet/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.servlet.springboot.ServletComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentAutoConfiguration.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentAutoConfiguration.java
new file mode 100644
index 0000000..ff2c90d
--- /dev/null
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sjms.batch.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.sjms.batch.SjmsBatchComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SjmsBatchComponentConfiguration.class)
+public class SjmsBatchComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SjmsBatchComponent.class)
+    public SjmsBatchComponent configureComponent(CamelContext camelContext,
+            SjmsBatchComponentConfiguration configuration) throws Exception {
+        SjmsBatchComponent component = new SjmsBatchComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentConfiguration.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentConfiguration.java
new file mode 100644
index 0000000..b611055
--- /dev/null
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sjms.batch.springboot;
+
+import javax.jms.ConnectionFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The sjms-batch component is a specialized for highly performant transactional
+ * batch consumption from a JMS queue.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.sjms-batch")
+public class SjmsBatchComponentConfiguration {
+
+    /**
+     * A ConnectionFactory is required to enable the SjmsBatchComponent.
+     */
+    private ConnectionFactory connectionFactory;
+
+    public ConnectionFactory getConnectionFactory() {
+        return connectionFactory;
+    }
+
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        this.connectionFactory = connectionFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentAutoConfiguration.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentAutoConfiguration.java
new file mode 100644
index 0000000..de771b7
--- /dev/null
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sjms.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.sjms.SjmsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SjmsComponentConfiguration.class)
+public class SjmsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SjmsComponent.class)
+    public SjmsComponent configureComponent(CamelContext camelContext,
+            SjmsComponentConfiguration configuration) throws Exception {
+        SjmsComponent component = new SjmsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentConfiguration.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentConfiguration.java
new file mode 100644
index 0000000..b45174d
--- /dev/null
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentConfiguration.java
@@ -0,0 +1,166 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sjms.springboot;
+
+import javax.jms.ConnectionFactory;
+import org.apache.camel.component.sjms.TransactionCommitStrategy;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
+import org.apache.camel.component.sjms.jms.DestinationCreationStrategy;
+import org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy;
+import org.apache.camel.component.sjms.jms.MessageCreatedStrategy;
+import org.apache.camel.component.sjms.taskmanager.TimedTaskManager;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The sjms component (simple jms) allows messages to be sent to (or consumed
+ * from) a JMS Queue or Topic.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.sjms")
+public class SjmsComponentConfiguration {
+
+    /**
+     * A ConnectionFactory is required to enable the SjmsComponent. It can be
+     * set directly or set set as part of a ConnectionResource.
+     */
+    private ConnectionFactory connectionFactory;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * A ConnectionResource is an interface that allows for customization and
+     * container control of the ConnectionFactory. See Plugable Connection
+     * Resource Management for further details.
+     */
+    private ConnectionResource connectionResource;
+    /**
+     * The maximum number of connections available to endpoints started under
+     * this component
+     */
+    private Integer connectionCount;
+    /**
+     * Pluggable strategy for encoding and decoding JMS keys so they can be
+     * compliant with the JMS specification. Camel provides one implementation
+     * out of the box: default. The default strategy will safely marshal dots
+     * and hyphens (. and -). Can be used for JMS brokers which do not care
+     * whether JMS header keys contain illegal characters. You can provide your
+     * own implementation of the
+     * org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using
+     * the notation.
+     */
+    private JmsKeyFormatStrategy jmsKeyFormatStrategy;
+    /**
+     * To configure which kind of commit strategy to use. Camel provides two
+     * implementations out of the box default and batch.
+     */
+    private TransactionCommitStrategy transactionCommitStrategy;
+    /**
+     * To use a custom DestinationCreationStrategy.
+     */
+    private DestinationCreationStrategy destinationCreationStrategy;
+    /**
+     * To use a custom TimedTaskManager
+     */
+    private TimedTaskManager timedTaskManager;
+    /**
+     * To use the given MessageCreatedStrategy which are invoked when Camel
+     * creates new instances of javax.jms.Message objects when Camel is sending
+     * a JMS message.
+     */
+    private MessageCreatedStrategy messageCreatedStrategy;
+
+    public ConnectionFactory getConnectionFactory() {
+        return connectionFactory;
+    }
+
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        this.connectionFactory = connectionFactory;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public ConnectionResource getConnectionResource() {
+        return connectionResource;
+    }
+
+    public void setConnectionResource(ConnectionResource connectionResource) {
+        this.connectionResource = connectionResource;
+    }
+
+    public Integer getConnectionCount() {
+        return connectionCount;
+    }
+
+    public void setConnectionCount(Integer connectionCount) {
+        this.connectionCount = connectionCount;
+    }
+
+    public JmsKeyFormatStrategy getJmsKeyFormatStrategy() {
+        return jmsKeyFormatStrategy;
+    }
+
+    public void setJmsKeyFormatStrategy(
+            JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+        this.jmsKeyFormatStrategy = jmsKeyFormatStrategy;
+    }
+
+    public TransactionCommitStrategy getTransactionCommitStrategy() {
+        return transactionCommitStrategy;
+    }
+
+    public void setTransactionCommitStrategy(
+            TransactionCommitStrategy transactionCommitStrategy) {
+        this.transactionCommitStrategy = transactionCommitStrategy;
+    }
+
+    public DestinationCreationStrategy getDestinationCreationStrategy() {
+        return destinationCreationStrategy;
+    }
+
+    public void setDestinationCreationStrategy(
+            DestinationCreationStrategy destinationCreationStrategy) {
+        this.destinationCreationStrategy = destinationCreationStrategy;
+    }
+
+    public TimedTaskManager getTimedTaskManager() {
+        return timedTaskManager;
+    }
+
+    public void setTimedTaskManager(TimedTaskManager timedTaskManager) {
+        this.timedTaskManager = timedTaskManager;
+    }
+
+    public MessageCreatedStrategy getMessageCreatedStrategy() {
+        return messageCreatedStrategy;
+    }
+
+    public void setMessageCreatedStrategy(
+            MessageCreatedStrategy messageCreatedStrategy) {
+        this.messageCreatedStrategy = messageCreatedStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sjms/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/resources/META-INF/spring.factories b/components/camel-sjms/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7fe9139
--- /dev/null
+++ b/components/camel-sjms/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.sjms.springboot.SjmsComponentAutoConfiguration,\
+org.apache.camel.component.sjms.batch.springboot.SjmsBatchComponentAutoConfiguration
+

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentAutoConfiguration.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentAutoConfiguration.java
new file mode 100644
index 0000000..831c22d
--- /dev/null
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.slack.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.slack.SlackComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SlackComponentConfiguration.class)
+public class SlackComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SlackComponent.class)
+    public SlackComponent configureComponent(CamelContext camelContext,
+            SlackComponentConfiguration configuration) throws Exception {
+        SlackComponent component = new SlackComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentConfiguration.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentConfiguration.java
new file mode 100644
index 0000000..59ceb03
--- /dev/null
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/springboot/SlackComponentConfiguration.java
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.slack.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The slack component allows you to send messages to Slack.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.slack")
+public class SlackComponentConfiguration {
+
+    /**
+     * The incoming webhook URL
+     */
+    private String webhookUrl;
+
+    public String getWebhookUrl() {
+        return webhookUrl;
+    }
+
+    public void setWebhookUrl(String webhookUrl) {
+        this.webhookUrl = webhookUrl;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-slack/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/resources/META-INF/spring.factories b/components/camel-slack/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..3be2452
--- /dev/null
+++ b/components/camel-slack/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.slack.springboot.SlackComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentAutoConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentAutoConfiguration.java
new file mode 100644
index 0000000..4a9783c
--- /dev/null
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.smpp.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.smpp.SmppComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SmppComponentConfiguration.class)
+public class SmppComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SmppComponent.class)
+    public SmppComponent configureComponent(CamelContext camelContext,
+            SmppComponentConfiguration configuration) throws Exception {
+        SmppComponent component = new SmppComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentConfiguration.java
new file mode 100644
index 0000000..e6e5277
--- /dev/null
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.smpp.springboot;
+
+import org.apache.camel.component.smpp.SmppConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To send and receive SMS using a SMSC (Short Message Service Center).
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.smpps")
+public class SmppComponentConfiguration {
+
+    /**
+     * To use the shared SmppConfiguration as configuration.
+     */
+    private SmppConfiguration configuration;
+
+    public SmppConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(SmppConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-smpp/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/resources/META-INF/spring.factories b/components/camel-smpp/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..e3c2d51
--- /dev/null
+++ b/components/camel-smpp/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.smpp.springboot.SmppComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentAutoConfiguration.java b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentAutoConfiguration.java
new file mode 100644
index 0000000..95e12d6
--- /dev/null
+++ b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sparkrest.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.sparkrest.SparkComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SparkComponentConfiguration.class)
+public class SparkComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SparkComponent.class)
+    public SparkComponent configureComponent(CamelContext camelContext,
+            SparkComponentConfiguration configuration) throws Exception {
+        SparkComponent component = new SparkComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentConfiguration.java b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentConfiguration.java
new file mode 100644
index 0000000..1791ce1
--- /dev/null
+++ b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/springboot/SparkComponentConfiguration.java
@@ -0,0 +1,166 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sparkrest.springboot;
+
+import org.apache.camel.component.sparkrest.SparkBinding;
+import org.apache.camel.component.sparkrest.SparkConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The spark-rest component is used for hosting REST services which has been
+ * defined using Camel rest-dsl.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.spark-rest")
+public class SparkComponentConfiguration {
+
+    /**
+     * Port number. Will by default use 4567
+     */
+    private int port;
+    /**
+     * Set the IP address that Spark should listen on. If not called the default
+     * address is '0.0.0.0'.
+     */
+    private String ipAddress;
+    /**
+     * Minimum number of threads in Spark thread-pool (shared globally)
+     */
+    private int minThreads;
+    /**
+     * Maximum number of threads in Spark thread-pool (shared globally)
+     */
+    private int maxThreads;
+    /**
+     * Thread idle timeout in millis where threads that has been idle for a
+     * longer period will be terminated from the thread pool
+     */
+    private int timeOutMillis;
+    /**
+     * Configures connection to be secure to use the keystore file
+     */
+    private String keystoreFile;
+    /**
+     * Configures connection to be secure to use the keystore password
+     */
+    private String keystorePassword;
+    /**
+     * Configures connection to be secure to use the truststore file
+     */
+    private String truststoreFile;
+    /**
+     * Configures connection to be secure to use the truststore password
+     */
+    private String truststorePassword;
+    /**
+     * To use the shared SparkConfiguration
+     */
+    private SparkConfiguration sparkConfiguration;
+    /**
+     * To use a custom SparkBinding to map to/from Camel message.
+     */
+    private SparkBinding sparkBinding;
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    public String getIpAddress() {
+        return ipAddress;
+    }
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+    public int getMinThreads() {
+        return minThreads;
+    }
+
+    public void setMinThreads(int minThreads) {
+        this.minThreads = minThreads;
+    }
+
+    public int getMaxThreads() {
+        return maxThreads;
+    }
+
+    public void setMaxThreads(int maxThreads) {
+        this.maxThreads = maxThreads;
+    }
+
+    public int getTimeOutMillis() {
+        return timeOutMillis;
+    }
+
+    public void setTimeOutMillis(int timeOutMillis) {
+        this.timeOutMillis = timeOutMillis;
+    }
+
+    public String getKeystoreFile() {
+        return keystoreFile;
+    }
+
+    public void setKeystoreFile(String keystoreFile) {
+        this.keystoreFile = keystoreFile;
+    }
+
+    public String getKeystorePassword() {
+        return keystorePassword;
+    }
+
+    public void setKeystorePassword(String keystorePassword) {
+        this.keystorePassword = keystorePassword;
+    }
+
+    public String getTruststoreFile() {
+        return truststoreFile;
+    }
+
+    public void setTruststoreFile(String truststoreFile) {
+        this.truststoreFile = truststoreFile;
+    }
+
+    public String getTruststorePassword() {
+        return truststorePassword;
+    }
+
+    public void setTruststorePassword(String truststorePassword) {
+        this.truststorePassword = truststorePassword;
+    }
+
+    public SparkConfiguration getSparkConfiguration() {
+        return sparkConfiguration;
+    }
+
+    public void setSparkConfiguration(SparkConfiguration sparkConfiguration) {
+        this.sparkConfiguration = sparkConfiguration;
+    }
+
+    public SparkBinding getSparkBinding() {
+        return sparkBinding;
+    }
+
+    public void setSparkBinding(SparkBinding sparkBinding) {
+        this.sparkBinding = sparkBinding;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark-rest/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/resources/META-INF/spring.factories b/components/camel-spark-rest/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9f7f38a
--- /dev/null
+++ b/components/camel-spark-rest/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.sparkrest.springboot.SparkComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentAutoConfiguration.java b/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentAutoConfiguration.java
new file mode 100644
index 0000000..bf65556
--- /dev/null
+++ b/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spark.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.spark.SparkComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SparkComponentConfiguration.class)
+public class SparkComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SparkComponent.class)
+    public SparkComponent configureComponent(CamelContext camelContext,
+            SparkComponentConfiguration configuration) throws Exception {
+        SparkComponent component = new SparkComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentConfiguration.java b/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentConfiguration.java
new file mode 100644
index 0000000..eedf908
--- /dev/null
+++ b/components/camel-spark/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spark.springboot;
+
+import org.apache.camel.component.spark.RddCallback;
+import org.apache.spark.api.java.JavaRDDLike;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The spark component can be used to send RDD or DataFrame jobs to Apache Spark
+ * cluster.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.spark")
+public class SparkComponentConfiguration {
+
+    /**
+     * RDD to compute against.
+     */
+    private JavaRDDLike rdd;
+    /**
+     * Function performing action against an RDD.
+     */
+    private RddCallback rddCallback;
+
+    public JavaRDDLike getRdd() {
+        return rdd;
+    }
+
+    public void setRdd(JavaRDDLike rdd) {
+        this.rdd = rdd;
+    }
+
+    public RddCallback getRddCallback() {
+        return rddCallback;
+    }
+
+    public void setRddCallback(RddCallback rddCallback) {
+        this.rddCallback = rddCallback;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spark/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-spark/src/main/resources/META-INF/spring.factories b/components/camel-spark/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..744a7bf
--- /dev/null
+++ b/components/camel-spark/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.spark.springboot.SparkComponentAutoConfiguration


[07/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentConfiguration.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentConfiguration.java
new file mode 100644
index 0000000..167cd79
--- /dev/null
+++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentConfiguration.java
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jgroups.springboot;
+
+import org.jgroups.Channel;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The jgroups component provides exchange of messages between Camel and JGroups
+ * clusters.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jgroups")
+public class JGroupsComponentConfiguration {
+
+    /**
+     * Channel to use
+     */
+    private Channel channel;
+    /**
+     * Specifies configuration properties of the JChannel used by the endpoint.
+     */
+    private String channelProperties;
+    /**
+     * If set to true the consumer endpoint will receive org.jgroups.View
+     * messages as well (not only org.jgroups.Message instances). By default
+     * only regular messages are consumed by the endpoint.
+     */
+    private boolean enableViewMessages;
+
+    public Channel getChannel() {
+        return channel;
+    }
+
+    public void setChannel(Channel channel) {
+        this.channel = channel;
+    }
+
+    public String getChannelProperties() {
+        return channelProperties;
+    }
+
+    public void setChannelProperties(String channelProperties) {
+        this.channelProperties = channelProperties;
+    }
+
+    public boolean isEnableViewMessages() {
+        return enableViewMessages;
+    }
+
+    public void setEnableViewMessages(boolean enableViewMessages) {
+        this.enableViewMessages = enableViewMessages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jgroups/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jgroups/src/main/resources/META-INF/spring.factories b/components/camel-jgroups/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f0e9df6
--- /dev/null
+++ b/components/camel-jgroups/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jgroups.springboot.JGroupsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentAutoConfiguration.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentAutoConfiguration.java
new file mode 100644
index 0000000..ef6473a
--- /dev/null
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jms.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JmsComponentConfiguration.class)
+public class JmsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JmsComponent.class)
+    public JmsComponent configureComponent(CamelContext camelContext,
+            JmsComponentConfiguration configuration) throws Exception {
+        JmsComponent component = new JmsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java
new file mode 100644
index 0000000..b027c28
--- /dev/null
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java
@@ -0,0 +1,1123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jms.springboot;
+
+import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.component.jms.DefaultTaskExecutorType;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsKeyFormatStrategy;
+import org.apache.camel.component.jms.MessageCreatedStrategy;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
+import org.apache.camel.component.jms.ReplyToType;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.jms.core.JmsOperations;
+import org.springframework.jms.support.converter.MessageConverter;
+import org.springframework.jms.support.destination.DestinationResolver;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.util.ErrorHandler;
+
+/**
+ * The jms component allows messages to be sent to (or consumed from) a JMS
+ * Queue or Topic.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jms")
+public class JmsComponentConfiguration {
+
+    /**
+     * To use a shared JMS configuration
+     */
+    private JmsConfiguration configuration;
+    /**
+     * Specifies whether the consumer accept messages while it is stopping. You
+     * may consider enabling this option if you start and stop JMS routes at
+     * runtime while there are still messages enqued on the queue. If this
+     * option is false and you stop the JMS route then messages may be rejected
+     * and the JMS broker would have to attempt redeliveries which yet again may
+     * be rejected and eventually the message may be moved at a dead letter
+     * queue on the JMS broker. To avoid this its recommended to enable this
+     * option.
+     */
+    private boolean acceptMessagesWhileStopping;
+    /**
+     * Whether the DefaultMessageListenerContainer used in the reply managers
+     * for request-reply messaging allow the
+     * DefaultMessageListenerContainer.runningAllowed flag to quick stop in case
+     * JmsConfigurationisAcceptMessagesWhileStopping is enabled and
+     * org.apache.camel.CamelContext is currently being stopped. This quick stop
+     * ability is enabled by default in the regular JMS consumers but to enable
+     * for reply managers you must enable this flag.
+     */
+    private boolean allowReplyManagerQuickStop;
+    /**
+     * The JMS acknowledgement mode defined as an Integer. Allows you to set
+     * vendor-specific extensions to the acknowledgment mode. For the regular
+     * modes it is preferable to use the acknowledgementModeName instead.
+     */
+    private int acknowledgementMode;
+    /**
+     * Enables eager loading of JMS properties as soon as a message is loaded
+     * which generally is inefficient as the JMS properties may not be required
+     * but sometimes can catch early any issues with the underlying JMS provider
+     * and the use of JMS properties
+     */
+    private boolean eagerLoadingOfProperties;
+    /**
+     * The JMS acknowledgement name which is one of: SESSION_TRANSACTED
+     * CLIENT_ACKNOWLEDGE AUTO_ACKNOWLEDGE DUPS_OK_ACKNOWLEDGE
+     */
+    private String acknowledgementModeName;
+    /**
+     * Specifies whether the consumer container should auto-startup.
+     */
+    private boolean autoStartup;
+    /**
+     * Sets the cache level by ID for the underlying JMS resources. See
+     * cacheLevelName option for more details.
+     */
+    private int cacheLevel;
+    /**
+     * Sets the cache level by name for the underlying JMS resources. Possible
+     * values are: CACHE_AUTO CACHE_CONNECTION CACHE_CONSUMER CACHE_NONE and
+     * CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring
+     * documentation and Transactions Cache Levels for more information.
+     */
+    private String cacheLevelName;
+    /**
+     * Sets the cache level by name for the reply consumer when doing
+     * request/reply over JMS. This option only applies when using fixed reply
+     * queues (not temporary). Camel will by default use: CACHE_CONSUMER for
+     * exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared
+     * without replyToSelectorName. Some JMS brokers such as IBM WebSphere may
+     * require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If
+     * using temporary queues then CACHE_NONE is not allowed and you must use a
+     * higher value such as CACHE_CONSUMER or CACHE_SESSION.
+     */
+    private String replyToCacheLevelName;
+    /**
+     * Sets the JMS client ID to use. Note that this value if specified must be
+     * unique and can only be used by a single JMS connection instance. It is
+     * typically only required for durable topic subscriptions. If using Apache
+     * ActiveMQ you may prefer to use Virtual Topics instead.
+     */
+    private String clientId;
+    /**
+     * Specifies the default number of concurrent consumers when consuming from
+     * JMS (not for request/reply over JMS). See also the maxMessagesPerTask
+     * option to control dynamic scaling up/down of threads. When doing
+     * request/reply over JMS then the option replyToConcurrentConsumers is used
+     * to control number of concurrent consumers on the reply message listener.
+     */
+    private int concurrentConsumers;
+    /**
+     * Specifies the default number of concurrent consumers when doing
+     * request/reply over JMS. See also the maxMessagesPerTask option to control
+     * dynamic scaling up/down of threads.
+     */
+    private int replyToConcurrentConsumers;
+    /**
+     * Sets the default connection factory to be use
+     */
+    private ConnectionFactory connectionFactory;
+    /**
+     * Specifies whether persistent delivery is used by default.
+     */
+    private boolean deliveryPersistent;
+    /**
+     * Specifies the delivery mode to be used. Possible values are Possibles
+     * values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1
+     * and PERSISTENT = 2.
+     */
+    private Integer deliveryMode;
+    /**
+     * The durable subscriber name for specifying durable topic subscriptions.
+     * The clientId option must be configured as well.
+     */
+    private String durableSubscriptionName;
+    /**
+     * Specifies the JMS Exception Listener that is to be notified of any
+     * underlying JMS exceptions.
+     */
+    private ExceptionListener exceptionListener;
+    /**
+     * Specifies a org.springframework.util.ErrorHandler to be invoked in case
+     * of any uncaught exceptions thrown while processing a Message. By default
+     * these exceptions will be logged at the WARN level if no errorHandler has
+     * been configured. You can configure logging level and whether stack traces
+     * should be logged using errorHandlerLoggingLevel and
+     * errorHandlerLogStackTrace options. This makes it much easier to configure
+     * than having to code a custom errorHandler.
+     */
+    private ErrorHandler errorHandler;
+    /**
+     * Allows to configure the default errorHandler logging level for logging
+     * uncaught exceptions.
+     */
+    private LoggingLevel errorHandlerLoggingLevel;
+    /**
+     * Allows to control whether stacktraces should be logged or not by the
+     * default errorHandler.
+     */
+    private boolean errorHandlerLogStackTrace;
+    /**
+     * Set if the deliveryMode priority or timeToLive qualities of service
+     * should be used when sending messages. This option is based on Spring's
+     * JmsTemplate. The deliveryMode priority and timeToLive options are applied
+     * to the current endpoint. This contrasts with the preserveMessageQos
+     * option which operates at message granularity reading QoS properties
+     * exclusively from the Camel In message headers.
+     */
+    private boolean explicitQosEnabled;
+    /**
+     * Specifies whether the listener session should be exposed when consuming
+     * messages.
+     */
+    private boolean exposeListenerSession;
+    /**
+     * Specifies the limit for idle executions of a receive task not having
+     * received any message within its execution. If this limit is reached the
+     * task will shut down and leave receiving to other executing tasks (in the
+     * case of dynamic scheduling; see the maxConcurrentConsumers setting).
+     * There is additional doc available from Spring.
+     */
+    private int idleTaskExecutionLimit;
+    /**
+     * Specify the limit for the number of consumers that are allowed to be idle
+     * at any given time.
+     */
+    private int idleConsumerLimit;
+    /**
+     * Specifies the maximum number of concurrent consumers when consuming from
+     * JMS (not for request/reply over JMS). See also the maxMessagesPerTask
+     * option to control dynamic scaling up/down of threads. When doing
+     * request/reply over JMS then the option replyToMaxConcurrentConsumers is
+     * used to control number of concurrent consumers on the reply message
+     * listener.
+     */
+    private int maxConcurrentConsumers;
+    /**
+     * Specifies the maximum number of concurrent consumers when using
+     * request/reply over JMS. See also the maxMessagesPerTask option to control
+     * dynamic scaling up/down of threads.
+     */
+    private int replyToMaxConcurrentConsumers;
+    /**
+     * Specifies the maximum number of concurrent consumers for continue routing
+     * when timeout occurred when using request/reply over JMS.
+     */
+    private int replyOnTimeoutToMaxConcurrentConsumers;
+    /**
+     * The number of messages per task. -1 is unlimited. If you use a range for
+     * concurrent consumers (eg min max) then this option can be used to set a
+     * value to eg 100 to control how fast the consumers will shrink when less
+     * work is required.
+     */
+    private int maxMessagesPerTask;
+    /**
+     * To use a custom Spring
+     * org.springframework.jms.support.converter.MessageConverter so you can be
+     * in control how to map to/from a javax.jms.Message.
+     */
+    private MessageConverter messageConverter;
+    /**
+     * Specifies whether Camel should auto map the received JMS message to a
+     * suited payload type such as javax.jms.TextMessage to a String etc. See
+     * section about how mapping works below for more details.
+     */
+    private boolean mapJmsMessage;
+    /**
+     * When sending specifies whether message IDs should be added.
+     */
+    private boolean messageIdEnabled;
+    /**
+     * Specifies whether timestamps should be enabled by default on sending
+     * messages.
+     */
+    private boolean messageTimestampEnabled;
+    /**
+     * If true Camel will always make a JMS message copy of the message when it
+     * is passed to the producer for sending. Copying the message is needed in
+     * some situations such as when a replyToDestinationSelectorName is set
+     * (incidentally Camel will set the alwaysCopyMessage option to true if a
+     * replyToDestinationSelectorName is set)
+     */
+    private boolean alwaysCopyMessage;
+    /**
+     * Specifies whether JMSMessageID should always be used as JMSCorrelationID
+     * for InOut messages.
+     */
+    private boolean useMessageIDAsCorrelationID;
+    /**
+     * Values greater than 1 specify the message priority when sending (where 0
+     * is the lowest priority and 9 is the highest). The explicitQosEnabled
+     * option must also be enabled in order for this option to have any effect.
+     */
+    private int priority;
+    /**
+     * Specifies whether to inhibit the delivery of messages published by its
+     * own connection.
+     */
+    private boolean pubSubNoLocal;
+    /**
+     * The timeout for receiving messages (in milliseconds).
+     */
+    private long receiveTimeout;
+    /**
+     * Specifies the interval between recovery attempts i.e. when a connection
+     * is being refreshed in milliseconds. The default is 5000 ms that is 5
+     * seconds.
+     */
+    private long recoveryInterval;
+    /**
+     * Deprecated: Enabled by default if you specify a durableSubscriptionName
+     * and a clientId.
+     */
+    @Deprecated
+    private boolean subscriptionDurable;
+    /**
+     * Allows you to specify a custom task executor for consuming messages.
+     */
+    private TaskExecutor taskExecutor;
+    /**
+     * When sending messages specifies the time-to-live of the message (in
+     * milliseconds).
+     */
+    private long timeToLive;
+    /**
+     * Specifies whether to use transacted mode
+     */
+    private boolean transacted;
+    /**
+     * If true Camel will create a JmsTransactionManager if there is no
+     * transactionManager injected when option transacted=true.
+     */
+    private boolean lazyCreateTransactionManager;
+    /**
+     * The Spring transaction manager to use.
+     */
+    private PlatformTransactionManager transactionManager;
+    /**
+     * The name of the transaction to use.
+     */
+    private String transactionName;
+    /**
+     * The timeout value of the transaction (in seconds) if using transacted
+     * mode.
+     */
+    private int transactionTimeout;
+    /**
+     * Specifies whether to test the connection on startup. This ensures that
+     * when Camel starts that all the JMS consumers have a valid connection to
+     * the JMS broker. If a connection cannot be granted then Camel throws an
+     * exception on startup. This ensures that Camel is not started with failed
+     * connections. The JMS producers is tested as well.
+     */
+    private boolean testConnectionOnStartup;
+    /**
+     * Whether to startup the JmsConsumer message listener asynchronously when
+     * starting a route. For example if a JmsConsumer cannot get a connection to
+     * a remote JMS broker then it may block while retrying and/or failover.
+     * This will cause Camel to block while starting routes. By setting this
+     * option to true you will let routes startup while the JmsConsumer connects
+     * to the JMS broker using a dedicated thread in asynchronous mode. If this
+     * option is used then beware that if the connection could not be
+     * established then an exception is logged at WARN level and the consumer
+     * will not be able to receive messages; You can then restart the route to
+     * retry.
+     */
+    private boolean asyncStartListener;
+    /**
+     * Whether to stop the JmsConsumer message listener asynchronously when
+     * stopping a route.
+     */
+    private boolean asyncStopListener;
+    /**
+     * When using mapJmsMessage=false Camel will create a new JMS message to
+     * send to a new JMS destination if you touch the headers (get or set)
+     * during the route. Set this option to true to force Camel to send the
+     * original JMS message that was received.
+     */
+    private boolean forceSendOriginalMessage;
+    /**
+     * The timeout for waiting for a reply when using the InOut Exchange Pattern
+     * (in milliseconds). The default is 20 seconds. You can include the header
+     * CamelJmsRequestTimeout to override this endpoint configured timeout value
+     * and thus have per message individual timeout values. See also the
+     * requestTimeoutCheckerInterval option.
+     */
+    private long requestTimeout;
+    /**
+     * Configures how often Camel should check for timed out Exchanges when
+     * doing request/reply over JMS. By default Camel checks once per second.
+     * But if you must react faster when a timeout occurs then you can lower
+     * this interval to check more frequently. The timeout is determined by the
+     * option requestTimeout.
+     */
+    private long requestTimeoutCheckerInterval;
+    /**
+     * You can transfer the exchange over the wire instead of just the body and
+     * headers. The following fields are transferred: In body Out body Fault
+     * body In headers Out headers Fault headers exchange properties exchange
+     * exception. This requires that the objects are serializable. Camel will
+     * exclude any non-serializable objects and log it at WARN level. You must
+     * enable this option on both the producer and consumer side so Camel knows
+     * the payloads is an Exchange and not a regular payload.
+     */
+    private boolean transferExchange;
+    /**
+     * If enabled and you are using Request Reply messaging (InOut) and an
+     * Exchange failed on the consumer side then the caused Exception will be
+     * send back in response as a javax.jms.ObjectMessage. If the client is
+     * Camel the returned Exception is rethrown. This allows you to use Camel
+     * JMS as a bridge in your routing - for example using persistent queues to
+     * enable robust routing. Notice that if you also have transferExchange
+     * enabled this option takes precedence. The caught exception is required to
+     * be serializable. The original Exception on the consumer side can be
+     * wrapped in an outer exception such as
+     * org.apache.camel.RuntimeCamelException when returned to the producer.
+     */
+    private boolean transferException;
+    /**
+     * If enabled and you are using Request Reply messaging (InOut) and an
+     * Exchange failed with a SOAP fault (not exception) on the consumer side
+     * then the fault flag on link org.apache.camel.MessageisFault() will be
+     * send back in the response as a JMS header with the key link
+     * JmsConstantsJMS_TRANSFER_FAULT. If the client is Camel the returned fault
+     * flag will be set on the link org.apache.camel.MessagesetFault(boolean).
+     * You may want to enable this when using Camel components that support
+     * faults such as SOAP based such as cxf or spring-ws.
+     */
+    private boolean transferFault;
+    /**
+     * Allows you to use your own implementation of the
+     * org.springframework.jms.core.JmsOperations interface. Camel uses
+     * JmsTemplate as default. Can be used for testing purpose but not used much
+     * as stated in the spring API docs.
+     */
+    private JmsOperations jmsOperations;
+    /**
+     * A pluggable
+     * org.springframework.jms.support.destination.DestinationResolver that
+     * allows you to use your own resolver (for example to lookup the real
+     * destination in a JNDI registry).
+     */
+    private DestinationResolver destinationResolver;
+    /**
+     * Allows for explicitly specifying which kind of strategy to use for
+     * replyTo queues when doing request/reply over JMS. Possible values are:
+     * Temporary Shared or Exclusive. By default Camel will use temporary
+     * queues. However if replyTo has been configured then Shared is used by
+     * default. This option allows you to use exclusive queues instead of shared
+     * ones. See Camel JMS documentation for more details and especially the
+     * notes about the implications if running in a clustered environment and
+     * the fact that Shared reply queues has lower performance than its
+     * alternatives Temporary and Exclusive.
+     */
+    private ReplyToType replyToType;
+    /**
+     * Set to true if you want to send message using the QoS settings specified
+     * on the message instead of the QoS settings on the JMS endpoint. The
+     * following three headers are considered JMSPriority JMSDeliveryMode and
+     * JMSExpiration. You can provide all or only some of them. If not provided
+     * Camel will fall back to use the values from the endpoint instead. So when
+     * using this option the headers override the values from the endpoint. The
+     * explicitQosEnabled option by contrast will only use options set on the
+     * endpoint and not values from the message header.
+     */
+    private boolean preserveMessageQos;
+    /**
+     * Whether the JmsConsumer processes the Exchange asynchronously. If enabled
+     * then the JmsConsumer may pickup the next message from the JMS queue while
+     * the previous message is being processed asynchronously (by the
+     * Asynchronous Routing Engine). This means that messages may be processed
+     * not 100 strictly in order. If disabled (as default) then the Exchange is
+     * fully processed before the JmsConsumer will pickup the next message from
+     * the JMS queue. Note if transacted has been enabled then
+     * asyncConsumer=true does not run asynchronously as transaction must be
+     * executed synchronously (Camel 3.0 may support async transactions).
+     */
+    private boolean asyncConsumer;
+    /**
+     * Whether to allow sending messages with no body. If this option is false
+     * and the message body is null then an JMSException is thrown.
+     */
+    private boolean allowNullBody;
+    /**
+     * Only applicable when sending to JMS destination using InOnly (eg fire and
+     * forget). Enabling this option will enrich the Camel Exchange with the
+     * actual JMSMessageID that was used by the JMS client when the message was
+     * sent to the JMS destination.
+     */
+    private boolean includeSentJMSMessageID;
+    /**
+     * Whether to include all JMSXxxx properties when mapping from JMS to Camel
+     * Message. Setting this to true will include properties such as JMSXAppID
+     * and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy
+     * then this option does not apply.
+     */
+    private boolean includeAllJMSXProperties;
+    /**
+     * Specifies what default TaskExecutor type to use in the
+     * DefaultMessageListenerContainer for both consumer endpoints and the
+     * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync
+     * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's
+     * ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If
+     * not set it defaults to the previous behaviour which uses a cached thread
+     * pool for consumer endpoints and SimpleAsync for reply consumers. The use
+     * of ThreadPool is recommended to reduce thread trash in elastic
+     * configurations with dynamically increasing and decreasing concurrent
+     * consumers.
+     */
+    private DefaultTaskExecutorType defaultTaskExecutorType;
+    /**
+     * Pluggable strategy for encoding and decoding JMS keys so they can be
+     * compliant with the JMS specification. Camel provides two implementations
+     * out of the box: default and passthrough. The default strategy will safely
+     * marshal dots and hyphens (. and -). The passthrough strategy leaves the
+     * key as is. Can be used for JMS brokers which do not care whether JMS
+     * header keys contain illegal characters. You can provide your own
+     * implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy
+     * and refer to it using the notation.
+     */
+    private JmsKeyFormatStrategy jmsKeyFormatStrategy;
+    /**
+     * Sets the Spring ApplicationContext to use
+     */
+    private ApplicationContext applicationContext;
+    /**
+     * To use a custom QueueBrowseStrategy when browsing queues
+     */
+    private QueueBrowseStrategy queueBrowseStrategy;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * To use the given MessageCreatedStrategy which are invoked when Camel
+     * creates new instances of javax.jms.Message objects when Camel is sending
+     * a JMS message.
+     */
+    private MessageCreatedStrategy messageCreatedStrategy;
+    /**
+     * Number of times to wait for provisional correlation id to be updated to
+     * the actual correlation id when doing request/reply over JMS and when the
+     * option useMessageIDAsCorrelationID is enabled.
+     */
+    private int waitForProvisionCorrelationToBeUpdatedCounter;
+    /**
+     * Interval in millis to sleep each time while waiting for provisional
+     * correlation id to be updated.
+     */
+    private long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+
+    public JmsConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(JmsConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public boolean isAcceptMessagesWhileStopping() {
+        return acceptMessagesWhileStopping;
+    }
+
+    public void setAcceptMessagesWhileStopping(
+            boolean acceptMessagesWhileStopping) {
+        this.acceptMessagesWhileStopping = acceptMessagesWhileStopping;
+    }
+
+    public boolean isAllowReplyManagerQuickStop() {
+        return allowReplyManagerQuickStop;
+    }
+
+    public void setAllowReplyManagerQuickStop(boolean allowReplyManagerQuickStop) {
+        this.allowReplyManagerQuickStop = allowReplyManagerQuickStop;
+    }
+
+    public int getAcknowledgementMode() {
+        return acknowledgementMode;
+    }
+
+    public void setAcknowledgementMode(int acknowledgementMode) {
+        this.acknowledgementMode = acknowledgementMode;
+    }
+
+    public boolean isEagerLoadingOfProperties() {
+        return eagerLoadingOfProperties;
+    }
+
+    public void setEagerLoadingOfProperties(boolean eagerLoadingOfProperties) {
+        this.eagerLoadingOfProperties = eagerLoadingOfProperties;
+    }
+
+    public String getAcknowledgementModeName() {
+        return acknowledgementModeName;
+    }
+
+    public void setAcknowledgementModeName(String acknowledgementModeName) {
+        this.acknowledgementModeName = acknowledgementModeName;
+    }
+
+    public boolean isAutoStartup() {
+        return autoStartup;
+    }
+
+    public void setAutoStartup(boolean autoStartup) {
+        this.autoStartup = autoStartup;
+    }
+
+    public int getCacheLevel() {
+        return cacheLevel;
+    }
+
+    public void setCacheLevel(int cacheLevel) {
+        this.cacheLevel = cacheLevel;
+    }
+
+    public String getCacheLevelName() {
+        return cacheLevelName;
+    }
+
+    public void setCacheLevelName(String cacheLevelName) {
+        this.cacheLevelName = cacheLevelName;
+    }
+
+    public String getReplyToCacheLevelName() {
+        return replyToCacheLevelName;
+    }
+
+    public void setReplyToCacheLevelName(String replyToCacheLevelName) {
+        this.replyToCacheLevelName = replyToCacheLevelName;
+    }
+
+    public String getClientId() {
+        return clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public int getConcurrentConsumers() {
+        return concurrentConsumers;
+    }
+
+    public void setConcurrentConsumers(int concurrentConsumers) {
+        this.concurrentConsumers = concurrentConsumers;
+    }
+
+    public int getReplyToConcurrentConsumers() {
+        return replyToConcurrentConsumers;
+    }
+
+    public void setReplyToConcurrentConsumers(int replyToConcurrentConsumers) {
+        this.replyToConcurrentConsumers = replyToConcurrentConsumers;
+    }
+
+    public ConnectionFactory getConnectionFactory() {
+        return connectionFactory;
+    }
+
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        this.connectionFactory = connectionFactory;
+    }
+
+    public boolean isDeliveryPersistent() {
+        return deliveryPersistent;
+    }
+
+    public void setDeliveryPersistent(boolean deliveryPersistent) {
+        this.deliveryPersistent = deliveryPersistent;
+    }
+
+    public Integer getDeliveryMode() {
+        return deliveryMode;
+    }
+
+    public void setDeliveryMode(Integer deliveryMode) {
+        this.deliveryMode = deliveryMode;
+    }
+
+    public String getDurableSubscriptionName() {
+        return durableSubscriptionName;
+    }
+
+    public void setDurableSubscriptionName(String durableSubscriptionName) {
+        this.durableSubscriptionName = durableSubscriptionName;
+    }
+
+    public ExceptionListener getExceptionListener() {
+        return exceptionListener;
+    }
+
+    public void setExceptionListener(ExceptionListener exceptionListener) {
+        this.exceptionListener = exceptionListener;
+    }
+
+    public ErrorHandler getErrorHandler() {
+        return errorHandler;
+    }
+
+    public void setErrorHandler(ErrorHandler errorHandler) {
+        this.errorHandler = errorHandler;
+    }
+
+    public LoggingLevel getErrorHandlerLoggingLevel() {
+        return errorHandlerLoggingLevel;
+    }
+
+    public void setErrorHandlerLoggingLevel(
+            LoggingLevel errorHandlerLoggingLevel) {
+        this.errorHandlerLoggingLevel = errorHandlerLoggingLevel;
+    }
+
+    public boolean isErrorHandlerLogStackTrace() {
+        return errorHandlerLogStackTrace;
+    }
+
+    public void setErrorHandlerLogStackTrace(boolean errorHandlerLogStackTrace) {
+        this.errorHandlerLogStackTrace = errorHandlerLogStackTrace;
+    }
+
+    public boolean isExplicitQosEnabled() {
+        return explicitQosEnabled;
+    }
+
+    public void setExplicitQosEnabled(boolean explicitQosEnabled) {
+        this.explicitQosEnabled = explicitQosEnabled;
+    }
+
+    public boolean isExposeListenerSession() {
+        return exposeListenerSession;
+    }
+
+    public void setExposeListenerSession(boolean exposeListenerSession) {
+        this.exposeListenerSession = exposeListenerSession;
+    }
+
+    public int getIdleTaskExecutionLimit() {
+        return idleTaskExecutionLimit;
+    }
+
+    public void setIdleTaskExecutionLimit(int idleTaskExecutionLimit) {
+        this.idleTaskExecutionLimit = idleTaskExecutionLimit;
+    }
+
+    public int getIdleConsumerLimit() {
+        return idleConsumerLimit;
+    }
+
+    public void setIdleConsumerLimit(int idleConsumerLimit) {
+        this.idleConsumerLimit = idleConsumerLimit;
+    }
+
+    public int getMaxConcurrentConsumers() {
+        return maxConcurrentConsumers;
+    }
+
+    public void setMaxConcurrentConsumers(int maxConcurrentConsumers) {
+        this.maxConcurrentConsumers = maxConcurrentConsumers;
+    }
+
+    public int getReplyToMaxConcurrentConsumers() {
+        return replyToMaxConcurrentConsumers;
+    }
+
+    public void setReplyToMaxConcurrentConsumers(
+            int replyToMaxConcurrentConsumers) {
+        this.replyToMaxConcurrentConsumers = replyToMaxConcurrentConsumers;
+    }
+
+    public int getReplyOnTimeoutToMaxConcurrentConsumers() {
+        return replyOnTimeoutToMaxConcurrentConsumers;
+    }
+
+    public void setReplyOnTimeoutToMaxConcurrentConsumers(
+            int replyOnTimeoutToMaxConcurrentConsumers) {
+        this.replyOnTimeoutToMaxConcurrentConsumers = replyOnTimeoutToMaxConcurrentConsumers;
+    }
+
+    public int getMaxMessagesPerTask() {
+        return maxMessagesPerTask;
+    }
+
+    public void setMaxMessagesPerTask(int maxMessagesPerTask) {
+        this.maxMessagesPerTask = maxMessagesPerTask;
+    }
+
+    public MessageConverter getMessageConverter() {
+        return messageConverter;
+    }
+
+    public void setMessageConverter(MessageConverter messageConverter) {
+        this.messageConverter = messageConverter;
+    }
+
+    public boolean isMapJmsMessage() {
+        return mapJmsMessage;
+    }
+
+    public void setMapJmsMessage(boolean mapJmsMessage) {
+        this.mapJmsMessage = mapJmsMessage;
+    }
+
+    public boolean isMessageIdEnabled() {
+        return messageIdEnabled;
+    }
+
+    public void setMessageIdEnabled(boolean messageIdEnabled) {
+        this.messageIdEnabled = messageIdEnabled;
+    }
+
+    public boolean isMessageTimestampEnabled() {
+        return messageTimestampEnabled;
+    }
+
+    public void setMessageTimestampEnabled(boolean messageTimestampEnabled) {
+        this.messageTimestampEnabled = messageTimestampEnabled;
+    }
+
+    public boolean isAlwaysCopyMessage() {
+        return alwaysCopyMessage;
+    }
+
+    public void setAlwaysCopyMessage(boolean alwaysCopyMessage) {
+        this.alwaysCopyMessage = alwaysCopyMessage;
+    }
+
+    public boolean isUseMessageIDAsCorrelationID() {
+        return useMessageIDAsCorrelationID;
+    }
+
+    public void setUseMessageIDAsCorrelationID(
+            boolean useMessageIDAsCorrelationID) {
+        this.useMessageIDAsCorrelationID = useMessageIDAsCorrelationID;
+    }
+
+    public int getPriority() {
+        return priority;
+    }
+
+    public void setPriority(int priority) {
+        this.priority = priority;
+    }
+
+    public boolean isPubSubNoLocal() {
+        return pubSubNoLocal;
+    }
+
+    public void setPubSubNoLocal(boolean pubSubNoLocal) {
+        this.pubSubNoLocal = pubSubNoLocal;
+    }
+
+    public long getReceiveTimeout() {
+        return receiveTimeout;
+    }
+
+    public void setReceiveTimeout(long receiveTimeout) {
+        this.receiveTimeout = receiveTimeout;
+    }
+
+    public long getRecoveryInterval() {
+        return recoveryInterval;
+    }
+
+    public void setRecoveryInterval(long recoveryInterval) {
+        this.recoveryInterval = recoveryInterval;
+    }
+
+    public boolean isSubscriptionDurable() {
+        return subscriptionDurable;
+    }
+
+    public void setSubscriptionDurable(boolean subscriptionDurable) {
+        this.subscriptionDurable = subscriptionDurable;
+    }
+
+    public TaskExecutor getTaskExecutor() {
+        return taskExecutor;
+    }
+
+    public void setTaskExecutor(TaskExecutor taskExecutor) {
+        this.taskExecutor = taskExecutor;
+    }
+
+    public long getTimeToLive() {
+        return timeToLive;
+    }
+
+    public void setTimeToLive(long timeToLive) {
+        this.timeToLive = timeToLive;
+    }
+
+    public boolean isTransacted() {
+        return transacted;
+    }
+
+    public void setTransacted(boolean transacted) {
+        this.transacted = transacted;
+    }
+
+    public boolean isLazyCreateTransactionManager() {
+        return lazyCreateTransactionManager;
+    }
+
+    public void setLazyCreateTransactionManager(
+            boolean lazyCreateTransactionManager) {
+        this.lazyCreateTransactionManager = lazyCreateTransactionManager;
+    }
+
+    public PlatformTransactionManager getTransactionManager() {
+        return transactionManager;
+    }
+
+    public void setTransactionManager(
+            PlatformTransactionManager transactionManager) {
+        this.transactionManager = transactionManager;
+    }
+
+    public String getTransactionName() {
+        return transactionName;
+    }
+
+    public void setTransactionName(String transactionName) {
+        this.transactionName = transactionName;
+    }
+
+    public int getTransactionTimeout() {
+        return transactionTimeout;
+    }
+
+    public void setTransactionTimeout(int transactionTimeout) {
+        this.transactionTimeout = transactionTimeout;
+    }
+
+    public boolean isTestConnectionOnStartup() {
+        return testConnectionOnStartup;
+    }
+
+    public void setTestConnectionOnStartup(boolean testConnectionOnStartup) {
+        this.testConnectionOnStartup = testConnectionOnStartup;
+    }
+
+    public boolean isAsyncStartListener() {
+        return asyncStartListener;
+    }
+
+    public void setAsyncStartListener(boolean asyncStartListener) {
+        this.asyncStartListener = asyncStartListener;
+    }
+
+    public boolean isAsyncStopListener() {
+        return asyncStopListener;
+    }
+
+    public void setAsyncStopListener(boolean asyncStopListener) {
+        this.asyncStopListener = asyncStopListener;
+    }
+
+    public boolean isForceSendOriginalMessage() {
+        return forceSendOriginalMessage;
+    }
+
+    public void setForceSendOriginalMessage(boolean forceSendOriginalMessage) {
+        this.forceSendOriginalMessage = forceSendOriginalMessage;
+    }
+
+    public long getRequestTimeout() {
+        return requestTimeout;
+    }
+
+    public void setRequestTimeout(long requestTimeout) {
+        this.requestTimeout = requestTimeout;
+    }
+
+    public long getRequestTimeoutCheckerInterval() {
+        return requestTimeoutCheckerInterval;
+    }
+
+    public void setRequestTimeoutCheckerInterval(
+            long requestTimeoutCheckerInterval) {
+        this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval;
+    }
+
+    public boolean isTransferExchange() {
+        return transferExchange;
+    }
+
+    public void setTransferExchange(boolean transferExchange) {
+        this.transferExchange = transferExchange;
+    }
+
+    public boolean isTransferException() {
+        return transferException;
+    }
+
+    public void setTransferException(boolean transferException) {
+        this.transferException = transferException;
+    }
+
+    public boolean isTransferFault() {
+        return transferFault;
+    }
+
+    public void setTransferFault(boolean transferFault) {
+        this.transferFault = transferFault;
+    }
+
+    public JmsOperations getJmsOperations() {
+        return jmsOperations;
+    }
+
+    public void setJmsOperations(JmsOperations jmsOperations) {
+        this.jmsOperations = jmsOperations;
+    }
+
+    public DestinationResolver getDestinationResolver() {
+        return destinationResolver;
+    }
+
+    public void setDestinationResolver(DestinationResolver destinationResolver) {
+        this.destinationResolver = destinationResolver;
+    }
+
+    public ReplyToType getReplyToType() {
+        return replyToType;
+    }
+
+    public void setReplyToType(ReplyToType replyToType) {
+        this.replyToType = replyToType;
+    }
+
+    public boolean isPreserveMessageQos() {
+        return preserveMessageQos;
+    }
+
+    public void setPreserveMessageQos(boolean preserveMessageQos) {
+        this.preserveMessageQos = preserveMessageQos;
+    }
+
+    public boolean isAsyncConsumer() {
+        return asyncConsumer;
+    }
+
+    public void setAsyncConsumer(boolean asyncConsumer) {
+        this.asyncConsumer = asyncConsumer;
+    }
+
+    public boolean isAllowNullBody() {
+        return allowNullBody;
+    }
+
+    public void setAllowNullBody(boolean allowNullBody) {
+        this.allowNullBody = allowNullBody;
+    }
+
+    public boolean isIncludeSentJMSMessageID() {
+        return includeSentJMSMessageID;
+    }
+
+    public void setIncludeSentJMSMessageID(boolean includeSentJMSMessageID) {
+        this.includeSentJMSMessageID = includeSentJMSMessageID;
+    }
+
+    public boolean isIncludeAllJMSXProperties() {
+        return includeAllJMSXProperties;
+    }
+
+    public void setIncludeAllJMSXProperties(boolean includeAllJMSXProperties) {
+        this.includeAllJMSXProperties = includeAllJMSXProperties;
+    }
+
+    public DefaultTaskExecutorType getDefaultTaskExecutorType() {
+        return defaultTaskExecutorType;
+    }
+
+    public void setDefaultTaskExecutorType(
+            DefaultTaskExecutorType defaultTaskExecutorType) {
+        this.defaultTaskExecutorType = defaultTaskExecutorType;
+    }
+
+    public JmsKeyFormatStrategy getJmsKeyFormatStrategy() {
+        return jmsKeyFormatStrategy;
+    }
+
+    public void setJmsKeyFormatStrategy(
+            JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+        this.jmsKeyFormatStrategy = jmsKeyFormatStrategy;
+    }
+
+    public ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    public void setApplicationContext(ApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+
+    public QueueBrowseStrategy getQueueBrowseStrategy() {
+        return queueBrowseStrategy;
+    }
+
+    public void setQueueBrowseStrategy(QueueBrowseStrategy queueBrowseStrategy) {
+        this.queueBrowseStrategy = queueBrowseStrategy;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public MessageCreatedStrategy getMessageCreatedStrategy() {
+        return messageCreatedStrategy;
+    }
+
+    public void setMessageCreatedStrategy(
+            MessageCreatedStrategy messageCreatedStrategy) {
+        this.messageCreatedStrategy = messageCreatedStrategy;
+    }
+
+    public int getWaitForProvisionCorrelationToBeUpdatedCounter() {
+        return waitForProvisionCorrelationToBeUpdatedCounter;
+    }
+
+    public void setWaitForProvisionCorrelationToBeUpdatedCounter(
+            int waitForProvisionCorrelationToBeUpdatedCounter) {
+        this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter;
+    }
+
+    public long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
+        return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+    }
+
+    public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+            long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+        this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jms/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/resources/META-INF/spring.factories b/components/camel-jms/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9168bc1
--- /dev/null
+++ b/components/camel-jms/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jms.springboot.JmsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentAutoConfiguration.java b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentAutoConfiguration.java
new file mode 100644
index 0000000..13df730
--- /dev/null
+++ b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jolt.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jolt.JoltComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JoltComponentConfiguration.class)
+public class JoltComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JoltComponent.class)
+    public JoltComponent configureComponent(CamelContext camelContext,
+            JoltComponentConfiguration configuration) throws Exception {
+        JoltComponent component = new JoltComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentConfiguration.java b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentConfiguration.java
new file mode 100644
index 0000000..688679f
--- /dev/null
+++ b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jolt.springboot;
+
+import com.bazaarvoice.jolt.Transform;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The jolt component allows you to process a JSON messages using an JOLT
+ * specification (such as JSON-JSON transformation).
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jolt")
+public class JoltComponentConfiguration {
+
+    /**
+     * Explicitly sets the Transform to use. If not set a Transform specified by
+     * the transformDsl will be created
+     */
+    private Transform transform;
+
+    public Transform getTransform() {
+        return transform;
+    }
+
+    public void setTransform(Transform transform) {
+        this.transform = transform;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jolt/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jolt/src/main/resources/META-INF/spring.factories b/components/camel-jolt/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..c1cc7bf
--- /dev/null
+++ b/components/camel-jolt/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jolt.springboot.JoltComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentAutoConfiguration.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentAutoConfiguration.java
new file mode 100644
index 0000000..52be5d5
--- /dev/null
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jpa.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jpa.JpaComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JpaComponentConfiguration.class)
+public class JpaComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JpaComponent.class)
+    public JpaComponent configureComponent(CamelContext camelContext,
+            JpaComponentConfiguration configuration) throws Exception {
+        JpaComponent component = new JpaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
new file mode 100644
index 0000000..44050ce
--- /dev/null
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
@@ -0,0 +1,89 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jpa.springboot;
+
+import javax.persistence.EntityManagerFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.transaction.PlatformTransactionManager;
+
+/**
+ * The jpa component enables you to store and retrieve Java objects from
+ * databases using JPA.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jpa")
+public class JpaComponentConfiguration {
+
+    /**
+     * To use the EntityManagerFactory. This is strongly recommended to
+     * configure.
+     */
+    private EntityManagerFactory entityManagerFactory;
+    /**
+     * To use the PlatformTransactionManager for managing transactions.
+     */
+    private PlatformTransactionManager transactionManager;
+    /**
+     * The camel-jpa component will join transaction by default. You can use
+     * this option to turn this off for example if you use LOCAL_RESOURCE and
+     * join transaction doesn't work with your JPA provider. This option can
+     * also be set globally on the JpaComponent instead of having to set it on
+     * all endpoints.
+     */
+    private boolean joinTransaction;
+    /**
+     * Whether to use Spring's SharedEntityManager for the consumer/producer.
+     * Note in most cases joinTransaction should be set to false as this is not
+     * an EXTENDED EntityManager.
+     */
+    private boolean sharedEntityManager;
+
+    public EntityManagerFactory getEntityManagerFactory() {
+        return entityManagerFactory;
+    }
+
+    public void setEntityManagerFactory(
+            EntityManagerFactory entityManagerFactory) {
+        this.entityManagerFactory = entityManagerFactory;
+    }
+
+    public PlatformTransactionManager getTransactionManager() {
+        return transactionManager;
+    }
+
+    public void setTransactionManager(
+            PlatformTransactionManager transactionManager) {
+        this.transactionManager = transactionManager;
+    }
+
+    public boolean isJoinTransaction() {
+        return joinTransaction;
+    }
+
+    public void setJoinTransaction(boolean joinTransaction) {
+        this.joinTransaction = joinTransaction;
+    }
+
+    public boolean isSharedEntityManager() {
+        return sharedEntityManager;
+    }
+
+    public void setSharedEntityManager(boolean sharedEntityManager) {
+        this.sharedEntityManager = sharedEntityManager;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jpa/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/resources/META-INF/spring.factories b/components/camel-jpa/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..344e45e
--- /dev/null
+++ b/components/camel-jpa/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jpa.springboot.JpaComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentAutoConfiguration.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentAutoConfiguration.java
new file mode 100644
index 0000000..2e88bfc
--- /dev/null
+++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.scp.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.scp.ScpComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ScpComponentConfiguration.class)
+public class ScpComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ScpComponent.class)
+    public ScpComponent configureComponent(CamelContext camelContext,
+            ScpComponentConfiguration configuration) throws Exception {
+        ScpComponent component = new ScpComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentConfiguration.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentConfiguration.java
new file mode 100644
index 0000000..4fa0f5f
--- /dev/null
+++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/springboot/ScpComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.scp.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To copy files using the secure copy protocol (SCP).
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.scp")
+public class ScpComponentConfiguration {
+
+    /**
+     * JSCH is verbose logging out of the box. Therefore we turn the logging
+     * down to DEBUG logging by default. But setting this option to true turns
+     * on the verbose logging again.
+     */
+    private boolean verboseLogging;
+
+    public boolean isVerboseLogging() {
+        return verboseLogging;
+    }
+
+    public void setVerboseLogging(boolean verboseLogging) {
+        this.verboseLogging = verboseLogging;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jsch/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jsch/src/main/resources/META-INF/spring.factories b/components/camel-jsch/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..0fefee7
--- /dev/null
+++ b/components/camel-jsch/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.scp.springboot.ScpComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentAutoConfiguration.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentAutoConfiguration.java
new file mode 100644
index 0000000..16b57a0
--- /dev/null
+++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jt400.Jt400Component;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(Jt400ComponentConfiguration.class)
+public class Jt400ComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(Jt400Component.class)
+    public Jt400Component configureComponent(CamelContext camelContext,
+            Jt400ComponentConfiguration configuration) throws Exception {
+        Jt400Component component = new Jt400Component();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentConfiguration.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentConfiguration.java
new file mode 100644
index 0000000..ac0cdc1
--- /dev/null
+++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400.springboot;
+
+import com.ibm.as400.access.AS400ConnectionPool;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The jt400 component allows you to exchanges messages with an AS/400 system
+ * using data queues or program call.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jt400")
+public class Jt400ComponentConfiguration {
+
+    /**
+     * Returns the default connection pool used by this component.
+     */
+    private AS400ConnectionPool connectionPool;
+
+    public AS400ConnectionPool getConnectionPool() {
+        return connectionPool;
+    }
+
+    public void setConnectionPool(AS400ConnectionPool connectionPool) {
+        this.connectionPool = connectionPool;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jt400/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/resources/META-INF/spring.factories b/components/camel-jt400/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..3d0f165
--- /dev/null
+++ b/components/camel-jt400/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jt400.springboot.Jt400ComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentAutoConfiguration.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentAutoConfiguration.java
new file mode 100644
index 0000000..25361ce
--- /dev/null
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.kafka.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.kafka.KafkaComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(KafkaComponentConfiguration.class)
+public class KafkaComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(KafkaComponent.class)
+    public KafkaComponent configureComponent(CamelContext camelContext,
+            KafkaComponentConfiguration configuration) throws Exception {
+        KafkaComponent component = new KafkaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
new file mode 100644
index 0000000..5460500
--- /dev/null
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.kafka.springboot;
+
+import java.util.concurrent.ExecutorService;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The kafka component allows messages to be sent to (or consumed from) Apache
+ * Kafka brokers.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.kafka")
+public class KafkaComponentConfiguration {
+
+    /**
+     * To use a shared custom worker pool for continue routing Exchange after
+     * kafka server has acknowledge the message that was sent to it from
+     * KafkaProducer using asynchronous non-blocking processing. If using this
+     * option then you must handle the lifecycle of the thread pool to shut the
+     * pool down when no longer needed.
+     */
+    private ExecutorService workerPool;
+
+    public ExecutorService getWorkerPool() {
+        return workerPool;
+    }
+
+    public void setWorkerPool(ExecutorService workerPool) {
+        this.workerPool = workerPool;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kafka/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/resources/META-INF/spring.factories b/components/camel-kafka/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..3bf44f6
--- /dev/null
+++ b/components/camel-kafka/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.kafka.springboot.KafkaComponentAutoConfiguration


[08/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hazelcast/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/resources/META-INF/spring.factories b/components/camel-hazelcast/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..ea9aee3
--- /dev/null
+++ b/components/camel-hazelcast/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.hazelcast.springboot.HazelcastComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentAutoConfiguration.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentAutoConfiguration.java
new file mode 100644
index 0000000..6fdcc28
--- /dev/null
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hbase.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.hbase.HBaseComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HBaseComponentConfiguration.class)
+public class HBaseComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HBaseComponent.class)
+    public HBaseComponent configureComponent(CamelContext camelContext,
+            HBaseComponentConfiguration configuration) throws Exception {
+        HBaseComponent component = new HBaseComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
new file mode 100644
index 0000000..613247a
--- /dev/null
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hbase.springboot;
+
+import org.apache.hadoop.conf.Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For reading/writing from/to an HBase store (Hadoop database).
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.hbase")
+public class HBaseComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private Configuration configuration;
+    /**
+     * Maximum number of references to keep for each table in the HTable pool.
+     * The default value is 10.
+     */
+    private int poolMaxSize;
+
+    public Configuration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(Configuration configuration) {
+        this.configuration = configuration;
+    }
+
+    public int getPoolMaxSize() {
+        return poolMaxSize;
+    }
+
+    public void setPoolMaxSize(int poolMaxSize) {
+        this.poolMaxSize = poolMaxSize;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hbase/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-hbase/src/main/resources/META-INF/spring.factories b/components/camel-hbase/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f38fac0
--- /dev/null
+++ b/components/camel-hbase/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.hbase.springboot.HBaseComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentAutoConfiguration.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentAutoConfiguration.java
new file mode 100644
index 0000000..8e9811d
--- /dev/null
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hdfs.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.hdfs.HdfsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HdfsComponentConfiguration.class)
+public class HdfsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HdfsComponent.class)
+    public HdfsComponent configureComponent(CamelContext camelContext,
+            HdfsComponentConfiguration configuration) throws Exception {
+        HdfsComponent component = new HdfsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentConfiguration.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentConfiguration.java
new file mode 100644
index 0000000..d5201b9
--- /dev/null
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hdfs.springboot;
+
+import javax.security.auth.login.Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For reading/writing from/to an HDFS filesystem using Hadoop 1.x.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.hdfs")
+public class HdfsComponentConfiguration {
+
+    /**
+     * To use the given configuration for security with JAAS.
+     */
+    private Configuration jAASConfiguration;
+
+    public Configuration getJAASConfiguration() {
+        return jAASConfiguration;
+    }
+
+    public void setJAASConfiguration(Configuration jAASConfiguration) {
+        this.jAASConfiguration = jAASConfiguration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-hdfs/src/main/resources/META-INF/spring.factories b/components/camel-hdfs/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..ad3f96f
--- /dev/null
+++ b/components/camel-hdfs/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.hdfs.springboot.HdfsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentAutoConfiguration.java b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentAutoConfiguration.java
new file mode 100644
index 0000000..5e8a77a
--- /dev/null
+++ b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hdfs2.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.hdfs2.HdfsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HdfsComponentConfiguration.class)
+public class HdfsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HdfsComponent.class)
+    public HdfsComponent configureComponent(CamelContext camelContext,
+            HdfsComponentConfiguration configuration) throws Exception {
+        HdfsComponent component = new HdfsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentConfiguration.java b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentConfiguration.java
new file mode 100644
index 0000000..cd63753
--- /dev/null
+++ b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/springboot/HdfsComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hdfs2.springboot;
+
+import javax.security.auth.login.Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For reading/writing from/to an HDFS filesystem using Hadoop 2.x.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.hdfs2")
+public class HdfsComponentConfiguration {
+
+    /**
+     * To use the given configuration for security with JAAS.
+     */
+    private Configuration jAASConfiguration;
+
+    public Configuration getJAASConfiguration() {
+        return jAASConfiguration;
+    }
+
+    public void setJAASConfiguration(Configuration jAASConfiguration) {
+        this.jAASConfiguration = jAASConfiguration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hdfs2/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-hdfs2/src/main/resources/META-INF/spring.factories b/components/camel-hdfs2/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a5b0dc9
--- /dev/null
+++ b/components/camel-hdfs2/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.hdfs2.springboot.HdfsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java b/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
new file mode 100644
index 0000000..ddbbeff
--- /dev/null
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.http.HttpComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HttpComponentConfiguration.class)
+public class HttpComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HttpComponent.class)
+    public HttpComponent configureComponent(CamelContext camelContext,
+            HttpComponentConfiguration configuration) throws Exception {
+        HttpComponent component = new HttpComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java b/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
new file mode 100644
index 0000000..4357a55
--- /dev/null
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
@@ -0,0 +1,116 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http.springboot;
+
+import org.apache.camel.component.http.HttpClientConfigurer;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.commons.httpclient.HttpConnectionManager;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For calling out to external HTTP servers using Apache HTTP Client 3.x.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.https")
+public class HttpComponentConfiguration {
+
+    /**
+     * To use the custom HttpClientConfigurer to perform configuration of the
+     * HttpClient that will be used.
+     */
+    private HttpClientConfigurer httpClientConfigurer;
+    /**
+     * To use a custom HttpConnectionManager to manage connections
+     */
+    private HttpConnectionManager httpConnectionManager;
+    /**
+     * To use a custom HttpBinding to control the mapping between Camel message
+     * and HttpClient.
+     */
+    private HttpBinding httpBinding;
+    /**
+     * To use the shared HttpConfiguration as base configuration.
+     */
+    private HttpConfiguration httpConfiguration;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public HttpClientConfigurer getHttpClientConfigurer() {
+        return httpClientConfigurer;
+    }
+
+    public void setHttpClientConfigurer(
+            HttpClientConfigurer httpClientConfigurer) {
+        this.httpClientConfigurer = httpClientConfigurer;
+    }
+
+    public HttpConnectionManager getHttpConnectionManager() {
+        return httpConnectionManager;
+    }
+
+    public void setHttpConnectionManager(
+            HttpConnectionManager httpConnectionManager) {
+        this.httpConnectionManager = httpConnectionManager;
+    }
+
+    public HttpBinding getHttpBinding() {
+        return httpBinding;
+    }
+
+    public void setHttpBinding(HttpBinding httpBinding) {
+        this.httpBinding = httpBinding;
+    }
+
+    public HttpConfiguration getHttpConfiguration() {
+        return httpConfiguration;
+    }
+
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
+        this.httpConfiguration = httpConfiguration;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/resources/META-INF/spring.factories b/components/camel-http/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..d248647
--- /dev/null
+++ b/components/camel-http/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.http.springboot.HttpComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
new file mode 100644
index 0000000..025e006
--- /dev/null
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http4.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.http4.HttpComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HttpComponentConfiguration.class)
+public class HttpComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HttpComponent.class)
+    public HttpComponent configureComponent(CamelContext camelContext,
+            HttpComponentConfiguration configuration) throws Exception {
+        HttpComponent component = new HttpComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
new file mode 100644
index 0000000..8980f63
--- /dev/null
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
@@ -0,0 +1,217 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http4.springboot;
+
+import org.apache.camel.component.http4.HttpClientConfigurer;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.http.client.CookieStore;
+import org.apache.http.conn.HttpClientConnectionManager;
+import org.apache.http.conn.ssl.X509HostnameVerifier;
+import org.apache.http.protocol.HttpContext;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For calling out to external HTTP servers using Apache HTTP Client 4.x.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.http4")
+public class HttpComponentConfiguration {
+
+    /**
+     * To use the custom HttpClientConfigurer to perform configuration of the
+     * HttpClient that will be used.
+     */
+    private HttpClientConfigurer httpClientConfigurer;
+    /**
+     * To use a custom HttpClientConnectionManager to manage connections
+     */
+    private HttpClientConnectionManager clientConnectionManager;
+    /**
+     * To use a custom HttpBinding to control the mapping between Camel message
+     * and HttpClient.
+     */
+    private HttpBinding httpBinding;
+    /**
+     * To use the shared HttpConfiguration as base configuration.
+     */
+    private HttpConfiguration httpConfiguration;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom org.apache.http.protocol.HttpContext when executing
+     * requests.
+     */
+    private HttpContext httpContext;
+    /**
+     * To configure security using SSLContextParameters. Important: Only one
+     * instance of org.apache.camel.util.jsse.SSLContextParameters is supported
+     * per HttpComponent. If you need to use 2 or more different instances you
+     * need to define a new HttpComponent per instance you need.
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * To use a custom X509HostnameVerifier such as
+     * org.apache.http.conn.ssl.StrictHostnameVerifier or
+     * org.apache.http.conn.ssl.AllowAllHostnameVerifier.
+     */
+    private X509HostnameVerifier x509HostnameVerifier;
+    /**
+     * The maximum number of connections.
+     */
+    private int maxTotalConnections;
+    /**
+     * The maximum number of connections per route.
+     */
+    private int connectionsPerRoute;
+    /**
+     * The time for connection to live the time unit is millisecond the default
+     * value is always keep alive.
+     */
+    private long connectionTimeToLive;
+    /**
+     * To use a custom org.apache.http.client.CookieStore. By default the
+     * org.apache.http.impl.client.BasicCookieStore is used which is an
+     * in-memory only cookie store. Notice if bridgeEndpoint=true then the
+     * cookie store is forced to be a noop cookie store as cookie shouldn't be
+     * stored as we are just bridging (eg acting as a proxy).
+     */
+    private CookieStore cookieStore;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public HttpClientConfigurer getHttpClientConfigurer() {
+        return httpClientConfigurer;
+    }
+
+    public void setHttpClientConfigurer(
+            HttpClientConfigurer httpClientConfigurer) {
+        this.httpClientConfigurer = httpClientConfigurer;
+    }
+
+    public HttpClientConnectionManager getClientConnectionManager() {
+        return clientConnectionManager;
+    }
+
+    public void setClientConnectionManager(
+            HttpClientConnectionManager clientConnectionManager) {
+        this.clientConnectionManager = clientConnectionManager;
+    }
+
+    public HttpBinding getHttpBinding() {
+        return httpBinding;
+    }
+
+    public void setHttpBinding(HttpBinding httpBinding) {
+        this.httpBinding = httpBinding;
+    }
+
+    public HttpConfiguration getHttpConfiguration() {
+        return httpConfiguration;
+    }
+
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
+        this.httpConfiguration = httpConfiguration;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HttpContext getHttpContext() {
+        return httpContext;
+    }
+
+    public void setHttpContext(HttpContext httpContext) {
+        this.httpContext = httpContext;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public X509HostnameVerifier getX509HostnameVerifier() {
+        return x509HostnameVerifier;
+    }
+
+    public void setX509HostnameVerifier(
+            X509HostnameVerifier x509HostnameVerifier) {
+        this.x509HostnameVerifier = x509HostnameVerifier;
+    }
+
+    public int getMaxTotalConnections() {
+        return maxTotalConnections;
+    }
+
+    public void setMaxTotalConnections(int maxTotalConnections) {
+        this.maxTotalConnections = maxTotalConnections;
+    }
+
+    public int getConnectionsPerRoute() {
+        return connectionsPerRoute;
+    }
+
+    public void setConnectionsPerRoute(int connectionsPerRoute) {
+        this.connectionsPerRoute = connectionsPerRoute;
+    }
+
+    public long getConnectionTimeToLive() {
+        return connectionTimeToLive;
+    }
+
+    public void setConnectionTimeToLive(long connectionTimeToLive) {
+        this.connectionTimeToLive = connectionTimeToLive;
+    }
+
+    public CookieStore getCookieStore() {
+        return cookieStore;
+    }
+
+    public void setCookieStore(CookieStore cookieStore) {
+        this.cookieStore = cookieStore;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-http4/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/resources/META-INF/spring.factories b/components/camel-http4/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..50597fc
--- /dev/null
+++ b/components/camel-http4/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.http4.springboot.HttpComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentAutoConfiguration.java b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentAutoConfiguration.java
new file mode 100644
index 0000000..4678146
--- /dev/null
+++ b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ibatis.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ibatis.IBatisComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(IBatisComponentConfiguration.class)
+public class IBatisComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(IBatisComponent.class)
+    public IBatisComponent configureComponent(CamelContext camelContext,
+            IBatisComponentConfiguration configuration) throws Exception {
+        IBatisComponent component = new IBatisComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentConfiguration.java b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentConfiguration.java
new file mode 100644
index 0000000..bb02344
--- /dev/null
+++ b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/springboot/IBatisComponentConfiguration.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ibatis.springboot;
+
+import com.ibatis.sqlmap.client.SqlMapClient;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Performs a query poll insert update or delete in a relational database using
+ * Apache iBATIS.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ibatis")
+public class IBatisComponentConfiguration {
+
+    /**
+     * To use the given com.ibatis.sqlmap.client.SqlMapClient
+     */
+    private SqlMapClient sqlMapClient;
+    /**
+     * Location of iBatis xml configuration file. The default value is:
+     * SqlMapConfig.xml loaded from the classpath
+     */
+    private String sqlMapConfig;
+    /**
+     * Whether to use transactions. This option is by default true.
+     */
+    private boolean useTransactions;
+
+    public SqlMapClient getSqlMapClient() {
+        return sqlMapClient;
+    }
+
+    public void setSqlMapClient(SqlMapClient sqlMapClient) {
+        this.sqlMapClient = sqlMapClient;
+    }
+
+    public String getSqlMapConfig() {
+        return sqlMapConfig;
+    }
+
+    public void setSqlMapConfig(String sqlMapConfig) {
+        this.sqlMapConfig = sqlMapConfig;
+    }
+
+    public boolean isUseTransactions() {
+        return useTransactions;
+    }
+
+    public void setUseTransactions(boolean useTransactions) {
+        this.useTransactions = useTransactions;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ibatis/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ibatis/src/main/resources/META-INF/spring.factories b/components/camel-ibatis/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..d222b9c
--- /dev/null
+++ b/components/camel-ibatis/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ibatis.springboot.IBatisComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentAutoConfiguration.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentAutoConfiguration.java
new file mode 100644
index 0000000..e20b6b0
--- /dev/null
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jclouds.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jclouds.JcloudsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JcloudsComponentConfiguration.class)
+public class JcloudsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JcloudsComponent.class)
+    public JcloudsComponent configureComponent(CamelContext camelContext,
+            JcloudsComponentConfiguration configuration) throws Exception {
+        JcloudsComponent component = new JcloudsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentConfiguration.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentConfiguration.java
new file mode 100644
index 0000000..8aa3fc1
--- /dev/null
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/springboot/JcloudsComponentConfiguration.java
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jclouds.springboot;
+
+import java.util.List;
+import org.jclouds.blobstore.BlobStore;
+import org.jclouds.compute.ComputeService;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For interacting with cloud compute & blobstore service via jclouds.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jclouds")
+public class JcloudsComponentConfiguration {
+
+    /**
+     * To use the given BlobStore which must be configured when using blobstore.
+     */
+    private List<org.jclouds.blobstore.BlobStore> blobStores;
+    /**
+     * To use the given ComputeService which must be configured when use
+     * compute.
+     */
+    private List<org.jclouds.compute.ComputeService> computeServices;
+
+    public List<BlobStore> getBlobStores() {
+        return blobStores;
+    }
+
+    public void setBlobStores(List<BlobStore> blobStores) {
+        this.blobStores = blobStores;
+    }
+
+    public List<ComputeService> getComputeServices() {
+        return computeServices;
+    }
+
+    public void setComputeServices(List<ComputeService> computeServices) {
+        this.computeServices = computeServices;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jclouds/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/resources/META-INF/spring.factories b/components/camel-jclouds/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a73c82d
--- /dev/null
+++ b/components/camel-jclouds/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jclouds.springboot.JcloudsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentAutoConfiguration.java b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentAutoConfiguration.java
new file mode 100644
index 0000000..b4b6ff7
--- /dev/null
+++ b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jdbc.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jdbc.JdbcComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JdbcComponentConfiguration.class)
+public class JdbcComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JdbcComponent.class)
+    public JdbcComponent configureComponent(CamelContext camelContext,
+            JdbcComponentConfiguration configuration) throws Exception {
+        JdbcComponent component = new JdbcComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentConfiguration.java b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentConfiguration.java
new file mode 100644
index 0000000..a4be1f6
--- /dev/null
+++ b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jdbc.springboot;
+
+import javax.sql.DataSource;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The jdbc component enables you to access databases through JDBC where SQL
+ * queries are sent in the message body.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jdbc")
+public class JdbcComponentConfiguration {
+
+    /**
+     * To use the DataSource instance instead of looking up the data source by
+     * name from the registry.
+     */
+    private DataSource dataSource;
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+    public void setDataSource(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jdbc/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/resources/META-INF/spring.factories b/components/camel-jdbc/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..b9900b5
--- /dev/null
+++ b/components/camel-jdbc/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jdbc.springboot.JdbcComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentAutoConfiguration9.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentAutoConfiguration9.java b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentAutoConfiguration9.java
new file mode 100644
index 0000000..396702c
--- /dev/null
+++ b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentAutoConfiguration9.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jetty9.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jetty9.JettyHttpComponent9;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JettyHttpComponentConfiguration9.class)
+public class JettyHttpComponentAutoConfiguration9 {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JettyHttpComponent9.class)
+    public JettyHttpComponent9 configureComponent(CamelContext camelContext,
+            JettyHttpComponentConfiguration9 configuration) throws Exception {
+        JettyHttpComponent9 component = new JettyHttpComponent9();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
new file mode 100644
index 0000000..fc3877c
--- /dev/null
+++ b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
@@ -0,0 +1,436 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jetty9.springboot;
+
+import java.util.Map;
+import org.apache.camel.component.jetty.JettyHttpBinding;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.eclipse.jetty.jmx.MBeanContainer;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.handler.ErrorHandler;
+import org.eclipse.jetty.util.thread.ThreadPool;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The jetty component provides HTTP-based endpoints for consuming and producing
+ * HTTP requests.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.jetty")
+public class JettyHttpComponentConfiguration9 {
+
+    /**
+     * The key password which is used to access the certificate's key entry in
+     * the keystore (this is the same password that is supplied to the keystore
+     * command's -keypass option).
+     */
+    private String sslKeyPassword;
+    /**
+     * The ssl password which is required to access the keystore file (this is
+     * the same password that is supplied to the keystore command's -storepass
+     * option).
+     */
+    private String sslPassword;
+    /**
+     * Specifies the location of the Java keystore file which contains the Jetty
+     * server's own X.509 certificate in a key entry.
+     */
+    private String keystore;
+    /**
+     * This option is used to set the ErrorHandler that Jetty server uses.
+     */
+    private ErrorHandler errorHandler;
+    /**
+     * A map which contains per port number specific SSL connectors.
+     */
+    private Map<java.lang.Integer, org.eclipse.jetty.server.Connector> sslSocketConnectors;
+    /**
+     * A map which contains per port number specific HTTP connectors. Uses the
+     * same principle as sslSocketConnectors.
+     */
+    private Map<java.lang.Integer, org.eclipse.jetty.server.Connector> socketConnectors;
+    /**
+     * To set a value for minimum number of threads in HttpClient thread pool.
+     * Notice that both a min and max size must be configured.
+     */
+    private Integer httpClientMinThreads;
+    /**
+     * To set a value for maximum number of threads in HttpClient thread pool.
+     * Notice that both a min and max size must be configured.
+     */
+    private Integer httpClientMaxThreads;
+    /**
+     * To set a value for minimum number of threads in server thread pool.
+     * Notice that both a min and max size must be configured.
+     */
+    private Integer minThreads;
+    /**
+     * To set a value for maximum number of threads in server thread pool.
+     * Notice that both a min and max size must be configured.
+     */
+    private Integer maxThreads;
+    /**
+     * To use a custom thread pool for the server. This option should only be
+     * used in special circumstances.
+     */
+    private ThreadPool threadPool;
+    /**
+     * If this option is true Jetty JMX support will be enabled for this
+     * endpoint.
+     */
+    private boolean enableJmx;
+    /**
+     * To use a custom org.apache.camel.component.jetty.JettyHttpBinding which
+     * are used to customize how a response should be written for the producer.
+     */
+    private JettyHttpBinding jettyHttpBinding;
+    /**
+     * Not to be used - use JettyHttpBinding instead.
+     */
+    private HttpBinding httpBinding;
+    /**
+     * Jetty component does not use HttpConfiguration.
+     */
+    private HttpConfiguration httpConfiguration;
+    /**
+     * To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX
+     * is enabled that Jetty uses for registering mbeans.
+     */
+    private MBeanContainer mbContainer;
+    /**
+     * A map which contains general SSL connector properties.
+     */
+    private Map<java.lang.String, java.lang.Object> sslSocketConnectorProperties;
+    /**
+     * A map which contains general HTTP connector properties. Uses the same
+     * principle as sslSocketConnectorProperties.
+     */
+    private Map<java.lang.String, java.lang.Object> socketConnectorProperties;
+    /**
+     * Allows to set a timeout in millis when using Jetty as consumer (server).
+     * By default Jetty uses 30000. You can use a value of = 0 to never expire.
+     * If a timeout occurs then the request will be expired and Jetty will
+     * return back a http error 503 to the client. This option is only in use
+     * when using Jetty with the Asynchronous Routing Engine.
+     */
+    private Long continuationTimeout;
+    /**
+     * Whether or not to use Jetty continuations for the Jetty Server.
+     */
+    private boolean useContinuation;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * Allows to configure a custom value of the response buffer size on the
+     * Jetty connectors.
+     */
+    private Integer responseBufferSize;
+    /**
+     * Allows to configure a custom value of the request buffer size on the
+     * Jetty connectors.
+     */
+    private Integer requestBufferSize;
+    /**
+     * Allows to configure a custom value of the request header size on the
+     * Jetty connectors.
+     */
+    private Integer requestHeaderSize;
+    /**
+     * Allows to configure a custom value of the response header size on the
+     * Jetty connectors.
+     */
+    private Integer responseHeaderSize;
+    /**
+     * To use a http proxy to configure the hostname.
+     */
+    private String proxyHost;
+    /**
+     * To use a http proxy to configure the port number.
+     */
+    private Integer proxyPort;
+    /**
+     * If the option is true jetty server will send the date header to the
+     * client which sends the request. NOTE please make sure there is no any
+     * other camel-jetty endpoint is share the same port otherwise this option
+     * may not work as expected.
+     */
+    private boolean sendServerVersion;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public String getSslKeyPassword() {
+        return sslKeyPassword;
+    }
+
+    public void setSslKeyPassword(String sslKeyPassword) {
+        this.sslKeyPassword = sslKeyPassword;
+    }
+
+    public String getSslPassword() {
+        return sslPassword;
+    }
+
+    public void setSslPassword(String sslPassword) {
+        this.sslPassword = sslPassword;
+    }
+
+    public String getKeystore() {
+        return keystore;
+    }
+
+    public void setKeystore(String keystore) {
+        this.keystore = keystore;
+    }
+
+    public ErrorHandler getErrorHandler() {
+        return errorHandler;
+    }
+
+    public void setErrorHandler(ErrorHandler errorHandler) {
+        this.errorHandler = errorHandler;
+    }
+
+    public Map<Integer, Connector> getSslSocketConnectors() {
+        return sslSocketConnectors;
+    }
+
+    public void setSslSocketConnectors(
+            Map<Integer, Connector> sslSocketConnectors) {
+        this.sslSocketConnectors = sslSocketConnectors;
+    }
+
+    public Map<Integer, Connector> getSocketConnectors() {
+        return socketConnectors;
+    }
+
+    public void setSocketConnectors(Map<Integer, Connector> socketConnectors) {
+        this.socketConnectors = socketConnectors;
+    }
+
+    public Integer getHttpClientMinThreads() {
+        return httpClientMinThreads;
+    }
+
+    public void setHttpClientMinThreads(Integer httpClientMinThreads) {
+        this.httpClientMinThreads = httpClientMinThreads;
+    }
+
+    public Integer getHttpClientMaxThreads() {
+        return httpClientMaxThreads;
+    }
+
+    public void setHttpClientMaxThreads(Integer httpClientMaxThreads) {
+        this.httpClientMaxThreads = httpClientMaxThreads;
+    }
+
+    public Integer getMinThreads() {
+        return minThreads;
+    }
+
+    public void setMinThreads(Integer minThreads) {
+        this.minThreads = minThreads;
+    }
+
+    public Integer getMaxThreads() {
+        return maxThreads;
+    }
+
+    public void setMaxThreads(Integer maxThreads) {
+        this.maxThreads = maxThreads;
+    }
+
+    public ThreadPool getThreadPool() {
+        return threadPool;
+    }
+
+    public void setThreadPool(ThreadPool threadPool) {
+        this.threadPool = threadPool;
+    }
+
+    public boolean isEnableJmx() {
+        return enableJmx;
+    }
+
+    public void setEnableJmx(boolean enableJmx) {
+        this.enableJmx = enableJmx;
+    }
+
+    public JettyHttpBinding getJettyHttpBinding() {
+        return jettyHttpBinding;
+    }
+
+    public void setJettyHttpBinding(JettyHttpBinding jettyHttpBinding) {
+        this.jettyHttpBinding = jettyHttpBinding;
+    }
+
+    public HttpBinding getHttpBinding() {
+        return httpBinding;
+    }
+
+    public void setHttpBinding(HttpBinding httpBinding) {
+        this.httpBinding = httpBinding;
+    }
+
+    public HttpConfiguration getHttpConfiguration() {
+        return httpConfiguration;
+    }
+
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
+        this.httpConfiguration = httpConfiguration;
+    }
+
+    public MBeanContainer getMbContainer() {
+        return mbContainer;
+    }
+
+    public void setMbContainer(MBeanContainer mbContainer) {
+        this.mbContainer = mbContainer;
+    }
+
+    public Map<String, Object> getSslSocketConnectorProperties() {
+        return sslSocketConnectorProperties;
+    }
+
+    public void setSslSocketConnectorProperties(
+            Map<String, Object> sslSocketConnectorProperties) {
+        this.sslSocketConnectorProperties = sslSocketConnectorProperties;
+    }
+
+    public Map<String, Object> getSocketConnectorProperties() {
+        return socketConnectorProperties;
+    }
+
+    public void setSocketConnectorProperties(
+            Map<String, Object> socketConnectorProperties) {
+        this.socketConnectorProperties = socketConnectorProperties;
+    }
+
+    public Long getContinuationTimeout() {
+        return continuationTimeout;
+    }
+
+    public void setContinuationTimeout(Long continuationTimeout) {
+        this.continuationTimeout = continuationTimeout;
+    }
+
+    public boolean isUseContinuation() {
+        return useContinuation;
+    }
+
+    public void setUseContinuation(boolean useContinuation) {
+        this.useContinuation = useContinuation;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public Integer getResponseBufferSize() {
+        return responseBufferSize;
+    }
+
+    public void setResponseBufferSize(Integer responseBufferSize) {
+        this.responseBufferSize = responseBufferSize;
+    }
+
+    public Integer getRequestBufferSize() {
+        return requestBufferSize;
+    }
+
+    public void setRequestBufferSize(Integer requestBufferSize) {
+        this.requestBufferSize = requestBufferSize;
+    }
+
+    public Integer getRequestHeaderSize() {
+        return requestHeaderSize;
+    }
+
+    public void setRequestHeaderSize(Integer requestHeaderSize) {
+        this.requestHeaderSize = requestHeaderSize;
+    }
+
+    public Integer getResponseHeaderSize() {
+        return responseHeaderSize;
+    }
+
+    public void setResponseHeaderSize(Integer responseHeaderSize) {
+        this.responseHeaderSize = responseHeaderSize;
+    }
+
+    public String getProxyHost() {
+        return proxyHost;
+    }
+
+    public void setProxyHost(String proxyHost) {
+        this.proxyHost = proxyHost;
+    }
+
+    public Integer getProxyPort() {
+        return proxyPort;
+    }
+
+    public void setProxyPort(Integer proxyPort) {
+        this.proxyPort = proxyPort;
+    }
+
+    public boolean isSendServerVersion() {
+        return sendServerVersion;
+    }
+
+    public void setSendServerVersion(boolean sendServerVersion) {
+        this.sendServerVersion = sendServerVersion;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jetty9/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-jetty9/src/main/resources/META-INF/spring.factories b/components/camel-jetty9/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..4665848
--- /dev/null
+++ b/components/camel-jetty9/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.jetty9.springboot.JettyHttpComponentAutoConfiguration9

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentAutoConfiguration.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentAutoConfiguration.java
new file mode 100644
index 0000000..9580ac9
--- /dev/null
+++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jgroups.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.jgroups.JGroupsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(JGroupsComponentConfiguration.class)
+public class JGroupsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(JGroupsComponent.class)
+    public JGroupsComponent configureComponent(CamelContext camelContext,
+            JGroupsComponentConfiguration configuration) throws Exception {
+        JGroupsComponent component = new JGroupsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file


[02/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
new file mode 100644
index 0000000..76a2821
--- /dev/null
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
@@ -0,0 +1,192 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.websocket.springboot;
+
+import java.util.Map;
+import org.apache.camel.component.websocket.WebSocketFactory;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.eclipse.jetty.util.thread.ThreadPool;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The websocket component provides websocket endpoints for communicating with
+ * clients using websocket.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.websocket")
+public class WebsocketComponentConfiguration {
+
+    /**
+     * Set a resource path for static resources (such as .html files etc). The
+     * resources can be loaded from classpath if you prefix with classpath:
+     * otherwise the resources is loaded from file system or from JAR files. For
+     * example to load from root classpath use classpath:. or
+     * classpath:WEB-INF/static If not configured (eg null) then no static
+     * resource is in use.
+     */
+    private String staticResources;
+    /**
+     * The hostname. The default value is 0.0.0.0
+     */
+    private String host;
+    /**
+     * The port number. The default value is 9292
+     */
+    private Integer port;
+    /**
+     * The password for the keystore when using SSL.
+     */
+    private String sslKeyPassword;
+    /**
+     * The password when using SSL.
+     */
+    private String sslPassword;
+    /**
+     * The path to the keystore.
+     */
+    private String sslKeystore;
+    /**
+     * If this option is true Jetty JMX support will be enabled for this
+     * endpoint. See Jetty JMX support for more details.
+     */
+    private boolean enableJmx;
+    /**
+     * To set a value for minimum number of threads in server thread pool.
+     * MaxThreads/minThreads or threadPool fields are required due to switch to
+     * Jetty9. The default values for minThreads is 1.
+     */
+    private Integer minThreads;
+    /**
+     * To set a value for maximum number of threads in server thread pool.
+     * MaxThreads/minThreads or threadPool fields are required due to switch to
+     * Jetty9. The default values for maxThreads is 1 2 noCores.
+     */
+    private Integer maxThreads;
+    /**
+     * To use a custom thread pool for the server. MaxThreads/minThreads or
+     * threadPool fields are required due to switch to Jetty9.
+     */
+    private ThreadPool threadPool;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * To configure a map which contains custom WebSocketFactory for sub
+     * protocols. The key in the map is the sub protocol. The default key is
+     * reserved for the default implementation.
+     */
+    private Map<java.lang.String, org.apache.camel.component.websocket.WebSocketFactory> socketFactory;
+
+    public String getStaticResources() {
+        return staticResources;
+    }
+
+    public void setStaticResources(String staticResources) {
+        this.staticResources = staticResources;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public Integer getPort() {
+        return port;
+    }
+
+    public void setPort(Integer port) {
+        this.port = port;
+    }
+
+    public String getSslKeyPassword() {
+        return sslKeyPassword;
+    }
+
+    public void setSslKeyPassword(String sslKeyPassword) {
+        this.sslKeyPassword = sslKeyPassword;
+    }
+
+    public String getSslPassword() {
+        return sslPassword;
+    }
+
+    public void setSslPassword(String sslPassword) {
+        this.sslPassword = sslPassword;
+    }
+
+    public String getSslKeystore() {
+        return sslKeystore;
+    }
+
+    public void setSslKeystore(String sslKeystore) {
+        this.sslKeystore = sslKeystore;
+    }
+
+    public boolean isEnableJmx() {
+        return enableJmx;
+    }
+
+    public void setEnableJmx(boolean enableJmx) {
+        this.enableJmx = enableJmx;
+    }
+
+    public Integer getMinThreads() {
+        return minThreads;
+    }
+
+    public void setMinThreads(Integer minThreads) {
+        this.minThreads = minThreads;
+    }
+
+    public Integer getMaxThreads() {
+        return maxThreads;
+    }
+
+    public void setMaxThreads(Integer maxThreads) {
+        this.maxThreads = maxThreads;
+    }
+
+    public ThreadPool getThreadPool() {
+        return threadPool;
+    }
+
+    public void setThreadPool(ThreadPool threadPool) {
+        this.threadPool = threadPool;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public Map<String, WebSocketFactory> getSocketFactory() {
+        return socketFactory;
+    }
+
+    public void setSocketFactory(Map<String, WebSocketFactory> socketFactory) {
+        this.socketFactory = socketFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-websocket/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/resources/META-INF/spring.factories b/components/camel-websocket/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f5a3522
--- /dev/null
+++ b/components/camel-websocket/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.websocket.springboot.WebsocketComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-xmlbeans/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-xmlbeans/pom.xml b/components/camel-xmlbeans/pom.xml
index c40aa92..9353cf2 100644
--- a/components/camel-xmlbeans/pom.xml
+++ b/components/camel-xmlbeans/pom.xml
@@ -15,7 +15,8 @@
   See the License for the specific language governing permissions and
   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>
 
@@ -69,57 +70,79 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
+
+    <!-- xmlbeans-maven-plugin do not work with spring-boot so we need
+         to change the dependencies from provided to test so they are not in use -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+      <version>${spring-boot-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-autoconfigure</artifactId>
+      <version>${spring-boot-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-configuration-processor</artifactId>
+      <version>${spring-boot-version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <!-- Eclipse m2e Lifecycle Management -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>${lifecycle-mapping-version}</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.codehaus.mojo</groupId>
-                                        <artifactId>xmlbeans-maven-plugin</artifactId>
-                                        <versionRange>${xmlbeans-maven-plugin-version}</versionRange>
-                                        <goals>
-                                            <goal>xmlbeans-test</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>xmlbeans-maven-plugin</artifactId>
-                <version>${xmlbeans-maven-plugin-version}</version>
-                <executions>
-                    <execution>
-                        <id>generate-sources</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>xmlbeans-test</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <inherited>true</inherited>
-                <configuration>
-                    <schemaDirectory>src/test/resources/xsd</schemaDirectory>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <!-- Eclipse m2e Lifecycle Management -->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>${lifecycle-mapping-version}</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>xmlbeans-maven-plugin</artifactId>
+                    <versionRange>${xmlbeans-maven-plugin-version}</versionRange>
+                    <goals>
+                      <goal>xmlbeans-test</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore/>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>xmlbeans-maven-plugin</artifactId>
+        <version>${xmlbeans-maven-plugin-version}</version>
+        <executions>
+          <execution>
+            <id>generate-sources</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>xmlbeans-test</goal>
+            </goals>
+          </execution>
+        </executions>
+        <inherited>true</inherited>
+        <configuration>
+          <schemaDirectory>src/test/resources/xsd</schemaDirectory>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentAutoConfiguration.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentAutoConfiguration.java
new file mode 100644
index 0000000..fab9d14
--- /dev/null
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xmlsecurity.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.xmlsecurity.XmlSignatureComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(XmlSignatureComponentConfiguration.class)
+public class XmlSignatureComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(XmlSignatureComponent.class)
+    public XmlSignatureComponent configureComponent(CamelContext camelContext,
+            XmlSignatureComponentConfiguration configuration) throws Exception {
+        XmlSignatureComponent component = new XmlSignatureComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
new file mode 100644
index 0000000..0a34deb
--- /dev/null
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.xmlsecurity.springboot;
+
+import org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration;
+import org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Used to sign and verify exchanges using the XML signature specification.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.xmlsecurity")
+public class XmlSignatureComponentConfiguration {
+
+    /**
+     * To use a shared XmlSignerConfiguration configuration to use as base for
+     * configuring endpoints.
+     */
+    private XmlSignerConfiguration signerConfiguration;
+    /**
+     * To use a shared XmlVerifierConfiguration configuration to use as base for
+     * configuring endpoints.
+     */
+    private XmlVerifierConfiguration verifierConfiguration;
+
+    public XmlSignerConfiguration getSignerConfiguration() {
+        return signerConfiguration;
+    }
+
+    public void setSignerConfiguration(
+            XmlSignerConfiguration signerConfiguration) {
+        this.signerConfiguration = signerConfiguration;
+    }
+
+    public XmlVerifierConfiguration getVerifierConfiguration() {
+        return verifierConfiguration;
+    }
+
+    public void setVerifierConfiguration(
+            XmlVerifierConfiguration verifierConfiguration) {
+        this.verifierConfiguration = verifierConfiguration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-xmlsecurity/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-xmlsecurity/src/main/resources/META-INF/spring.factories b/components/camel-xmlsecurity/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..04f85dd
--- /dev/null
+++ b/components/camel-xmlsecurity/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.xmlsecurity.springboot.XmlSignatureComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentAutoConfiguration.java b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentAutoConfiguration.java
new file mode 100644
index 0000000..aae8ff3
--- /dev/null
+++ b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.yammer.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.yammer.YammerComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(YammerComponentConfiguration.class)
+public class YammerComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(YammerComponent.class)
+    public YammerComponent configureComponent(CamelContext camelContext,
+            YammerComponentConfiguration configuration) throws Exception {
+        YammerComponent component = new YammerComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentConfiguration.java b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentConfiguration.java
new file mode 100644
index 0000000..1ba82a4
--- /dev/null
+++ b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentConfiguration.java
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.yammer.springboot;
+
+import org.apache.camel.component.yammer.YammerConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The yammer component allows you to interact with the Yammer enterprise social
+ * network.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.yammer")
+public class YammerComponentConfiguration {
+
+    /**
+     * The consumer key
+     */
+    private String consumerKey;
+    /**
+     * The consumer secret
+     */
+    private String consumerSecret;
+    /**
+     * The access token
+     */
+    private String accessToken;
+    /**
+     * To use a shared yammer configuration
+     */
+    private YammerConfiguration config;
+
+    public String getConsumerKey() {
+        return consumerKey;
+    }
+
+    public void setConsumerKey(String consumerKey) {
+        this.consumerKey = consumerKey;
+    }
+
+    public String getConsumerSecret() {
+        return consumerSecret;
+    }
+
+    public void setConsumerSecret(String consumerSecret) {
+        this.consumerSecret = consumerSecret;
+    }
+
+    public String getAccessToken() {
+        return accessToken;
+    }
+
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
+    }
+
+    public YammerConfiguration getConfig() {
+        return config;
+    }
+
+    public void setConfig(YammerConfiguration config) {
+        this.config = config;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-yammer/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/resources/META-INF/spring.factories b/components/camel-yammer/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..898e683
--- /dev/null
+++ b/components/camel-yammer/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.yammer.springboot.YammerComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentAutoConfiguration.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentAutoConfiguration.java
new file mode 100644
index 0000000..35d9d34
--- /dev/null
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.zookeeper.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.zookeeper.ZooKeeperComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ZooKeeperComponentConfiguration.class)
+public class ZooKeeperComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ZooKeeperComponent.class)
+    public ZooKeeperComponent configureComponent(CamelContext camelContext,
+            ZooKeeperComponentConfiguration configuration) throws Exception {
+        ZooKeeperComponent component = new ZooKeeperComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentConfiguration.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentConfiguration.java
new file mode 100644
index 0000000..a3902ad
--- /dev/null
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.zookeeper.springboot;
+
+import org.apache.camel.component.zookeeper.ZooKeeperConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The zookeeper component allows interaction with a ZooKeeper cluster.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.zookeeper")
+public class ZooKeeperComponentConfiguration {
+
+    /**
+     * To use a shared ZooKeeperConfiguration
+     */
+    private ZooKeeperConfiguration configuration;
+
+    public ZooKeeperConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(ZooKeeperConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-zookeeper/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/resources/META-INF/spring.factories b/components/camel-zookeeper/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..998f9e1
--- /dev/null
+++ b/components/camel-zookeeper/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/pom.xml
----------------------------------------------------------------------
diff --git a/components/pom.xml b/components/pom.xml
index 724f757..09c56aa 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -31,6 +31,22 @@
   <description>Camel Components</description>
   <packaging>pom</packaging>
 
+  <!-- to support spring-boot auto configuration in the Camel components -->
+  <dependencies>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+      <version>${spring-boot-version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-autoconfigure</artifactId>
+      <version>${spring-boot-version}</version>
+      <scope>provided</scope>
+    </dependency>
+ </dependencies>
+
   <modules>
     <!-- we want to test these modules first to catch any errors early as possible -->
     <module>camel-test</module>
@@ -286,15 +302,16 @@
               <goal>prepare-components</goal>
             </goals>
             <phase>generate-resources</phase>
-         </execution>
+          </execution>
           <execution>
             <id>validate</id>
             <goals>
               <goal>validate-components</goal>
+              <goal>prepare-spring-boot-auto-configuration</goal>
             </goals>
             <phase>prepare-package</phase>
-         </execution>
-         <execution>
+          </execution>
+          <execution>
             <id>readme</id>
             <goals>
               <goal>update-readme</goal>
@@ -317,14 +334,22 @@
       </activation>
 
       <dependencies>
-        <!-- enable the APT processor -->
+        <!-- enable Camel APT processors -->
         <dependency>
           <groupId>org.apache.camel</groupId>
           <artifactId>apt</artifactId>
           <version>${project.version}</version>
           <scope>provided</scope>
         </dependency>
+        <!-- enable Spring Boot configuration APT processor -->
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-configuration-processor</artifactId>
+          <version>${spring-boot-version}</version>
+          <scope>provided</scope>
+        </dependency>
       </dependencies>
     </profile>
   </profiles>
+
 </project>

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/examples/camel-example-spring-boot/src/main/resources/application.yml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot/src/main/resources/application.yml b/examples/camel-example-spring-boot/src/main/resources/application.yml
index 59fc3f5..dc362f5 100644
--- a/examples/camel-example-spring-boot/src/main/resources/application.yml
+++ b/examples/camel-example-spring-boot/src/main/resources/application.yml
@@ -17,3 +17,7 @@
 
 spring.main.sources: org.apache.camel.example.spring.boot.MySpringBootRouter
 shell.auth.simple.user.password: password
+
+camel:
+  springboot:
+    allow-use-original-message: false

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 7224373..d6079b1 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -476,6 +476,7 @@
     <rhino-bundle-version>1.7R2_3</rhino-bundle-version>
     <rhino-version>1.7R2</rhino-version>
     <ribbon-version>2.2.0</ribbon-version>
+    <roaster-version>2.18.3.Final</roaster-version>
     <rome-bundle-version>1.0_3</rome-bundle-version>
     <rome-version>1.0</rome-version>
     <rxjava-version>1.1.5</rxjava-version>

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d062d59..dc1823f 100755
--- a/pom.xml
+++ b/pom.xml
@@ -138,6 +138,7 @@
     <module>buildingtools</module>
     <module>camel-core</module>
     <module>components</module>
+    <module>components-starter</module>
     <module>tooling</module>
     <module>platforms</module>
     <module>tests</module>

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/tooling/maven/camel-package-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/pom.xml b/tooling/maven/camel-package-maven-plugin/pom.xml
index 4393469..604624e 100644
--- a/tooling/maven/camel-package-maven-plugin/pom.xml
+++ b/tooling/maven/camel-package-maven-plugin/pom.xml
@@ -15,7 +15,8 @@
     See the License for the specific language governing permissions and
     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>
 
   <parent>
@@ -87,6 +88,28 @@
       <artifactId>commons-io</artifactId>
     </dependency>
 
+    <!-- roaster to create java source for Spring Boot auto configuration support -->
+    <dependency>
+      <groupId>org.jboss.forge.roaster</groupId>
+      <artifactId>roaster-api</artifactId>
+      <version>${roaster-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.forge.roaster</groupId>
+      <artifactId>roaster-jdt</artifactId>
+      <version>${roaster-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+      <version>${spring-boot-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-autoconfigure</artifactId>
+      <version>${spring-boot-version}</version>
+    </dependency>
+
     <!-- add some logging to the classpath -->
     <dependency>
       <groupId>log4j</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
new file mode 100644
index 0000000..f87660f
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
@@ -0,0 +1,498 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.apache.camel.maven.packaging.model.ComponentModel;
+import org.apache.camel.maven.packaging.model.ComponentOptionModel;
+import org.apache.camel.maven.packaging.model.EndpointOptionModel;
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.jboss.forge.roaster.Roaster;
+import org.jboss.forge.roaster.model.source.AnnotationSource;
+import org.jboss.forge.roaster.model.source.Import;
+import org.jboss.forge.roaster.model.source.JavaClassSource;
+import org.jboss.forge.roaster.model.source.MethodSource;
+import org.jboss.forge.roaster.model.source.PropertySource;
+import org.jboss.forge.roaster.model.util.Strings;
+import org.sonatype.plexus.build.incremental.BuildContext;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import static org.apache.camel.maven.packaging.JSonSchemaHelper.getSafeValue;
+import static org.apache.camel.maven.packaging.PackageHelper.loadText;
+
+/**
+ * Generate Spring Boot auto configuration files for Camel components.
+ *
+ * @goal prepare-spring-boot-auto-configuration
+ */
+public class SpringBootAutoConfigurationMojo extends AbstractMojo {
+
+    /**
+     * The maven project.
+     *
+     * @parameter property="project"
+     * @required
+     * @readonly
+     */
+    protected MavenProject project;
+
+    /**
+     * The project build directory
+     *
+     * @parameter default-value="${project.build.directory}"
+     */
+    protected File buildDir;
+
+    /**
+     * The source directory
+     *
+     * @parameter default-value="${basedir}/src/main/java"
+     */
+    protected File srcDir;
+
+    /**
+     * The resources directory
+     *
+     * @parameter default-value="${basedir}/src/main/resources"
+     */
+    protected File resourcesDir;
+
+    /**
+     * build context to check changed files and mark them for refresh (used for
+     * m2e compatibility)
+     *
+     * @component
+     * @readonly
+     */
+    private BuildContext buildContext;
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        // find the component names
+        List<String> componentNames = findComponentNames();
+
+        final Set<File> jsonFiles = new TreeSet<File>();
+        PackageHelper.findJsonFiles(buildDir, jsonFiles, new PackageHelper.CamelComponentsModelFilter());
+
+        // create auto configuration for the components
+        if (!componentNames.isEmpty()) {
+            getLog().info("Found " + componentNames.size() + " components");
+            for (String componentName : componentNames) {
+                String json = loadComponentJson(jsonFiles, componentName);
+                if (json != null) {
+                    ComponentModel model = generateComponentModel(componentName, json);
+
+                    // only create source code if the component has options that can be used in auto configuration
+                    if (!model.getComponentOptions().isEmpty()) {
+
+                        // use springboot as sub package name so the code is not in normal
+                        // package so the Spring Boot JARs can be optional at runtime
+                        int pos = model.getJavaType().lastIndexOf(".");
+                        String pkg = model.getJavaType().substring(0, pos) + ".springboot";
+
+                        createComponentConfigurationSource(pkg, model);
+                        createComponentAutoConfigurationSource(pkg, model);
+                        createSpringFactorySource(pkg, model);
+                    }
+                }
+            }
+        }
+    }
+
+    private void createComponentConfigurationSource(String packageName, ComponentModel model) throws MojoFailureException {
+        final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
+
+        int pos = model.getJavaType().lastIndexOf(".");
+        String name = model.getJavaType().substring(pos + 1);
+        name = name.replace("Component", "ComponentConfiguration");
+        javaClass.setPackage(packageName).setName(name);
+
+        String doc = "Generated by camel-package-maven-plugin - do not edit this file!";
+        if (!Strings.isBlank(model.getDescription())) {
+            doc = model.getDescription() + "\n\n" + doc;
+        }
+        javaClass.getJavaDoc().setFullText(doc);
+
+        String prefix = "camel.component." + model.getScheme();
+        javaClass.addAnnotation("org.springframework.boot.context.properties.ConfigurationProperties").setStringValue("prefix", prefix);
+
+        for (ComponentOptionModel option : model.getComponentOptions()) {
+            // remove <?> as generic type as Roaster (Eclipse JDT) cannot use that
+            String type = option.getJavaType();
+            type = type.replaceAll("\\<\\?\\>", "");
+            PropertySource<JavaClassSource> prop = javaClass.addProperty(type, option.getName());
+            if ("true".equals(option.getDeprecated())) {
+                prop.getField().addAnnotation(Deprecated.class);
+            }
+            if (!Strings.isBlank(option.getDescription())) {
+                prop.getField().getJavaDoc().setFullText(option.getDescription());
+            }
+        }
+
+        sortImports(javaClass);
+
+        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
+        File target = new File(srcDir, fileName);
+
+        try {
+            InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt");
+            String header = loadText(is);
+            String code = sourceToString(javaClass);
+            code = header + code;
+            getLog().debug("Source code generated:\n" + code);
+
+            if (target.exists()) {
+                String existing = FileUtils.readFileToString(target);
+                if (!code.equals(existing)) {
+                    FileUtils.write(target, code, false);
+                    getLog().info("Updated existing file: " + target);
+                } else {
+                    getLog().info("No changes to existing file: " + target);
+                }
+            } else {
+                FileUtils.write(target, code);
+                getLog().info("Created file: " + target);
+            }
+        } catch (Exception e) {
+            throw new MojoFailureException("IOError with file " + target, e);
+        }
+    }
+
+    private void createComponentAutoConfigurationSource(String packageName, ComponentModel model) throws MojoFailureException {
+        final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
+
+        int pos = model.getJavaType().lastIndexOf(".");
+        String name = model.getJavaType().substring(pos + 1);
+        name = name.replace("Component", "ComponentAutoConfiguration");
+        javaClass.setPackage(packageName).setName(name);
+
+        String doc = "Generated by camel-package-maven-plugin - do not edit this file!";
+        javaClass.getJavaDoc().setFullText(doc);
+
+        javaClass.addAnnotation(Configuration.class);
+
+        String configurationName = name.replace("ComponentAutoConfiguration", "ComponentConfiguration");
+        AnnotationSource<JavaClassSource> ann = javaClass.addAnnotation(EnableConfigurationProperties.class);
+        ann.setLiteralValue("value", configurationName + ".class");
+
+        // add method for auto configure
+
+        javaClass.addImport("java.util.HashMap");
+        javaClass.addImport("java.util.Map");
+        javaClass.addImport(model.getJavaType());
+        javaClass.addImport("org.apache.camel.CamelContext");
+        javaClass.addImport("org.apache.camel.util.IntrospectionSupport");
+
+        String body = createBody(model.getShortJavaType());
+
+        MethodSource<JavaClassSource> method = javaClass.addMethod()
+                .setName("configureComponent")
+                .setPublic()
+                .setBody(body)
+                .setReturnType(model.getShortJavaType())
+                .addThrows(Exception.class);
+
+        method.addParameter("CamelContext", "camelContext");
+        method.addParameter(configurationName, "configuration");
+
+        method.addAnnotation(Bean.class);
+        method.addAnnotation(ConditionalOnClass.class).setLiteralValue("value", "CamelContext.class");
+        method.addAnnotation(ConditionalOnMissingBean.class).setLiteralValue("value", model.getShortJavaType() + ".class");
+
+        sortImports(javaClass);
+
+        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
+        File target = new File(srcDir, fileName);
+
+        try {
+            InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt");
+            String header = loadText(is);
+            String code = sourceToString(javaClass);
+            code = header + code;
+            getLog().debug("Source code generated:\n" + code);
+
+            if (target.exists()) {
+                String existing = FileUtils.readFileToString(target);
+                if (!code.equals(existing)) {
+                    FileUtils.write(target, code, false);
+                    getLog().info("Updated existing file: " + target);
+                } else {
+                    getLog().info("No changes to existing file: " + target);
+                }
+            } else {
+                FileUtils.write(target, code);
+                getLog().info("Created file: " + target);
+            }
+        } catch (Exception e) {
+            throw new MojoFailureException("IOError with file " + target, e);
+        }
+    }
+
+    private void createSpringFactorySource(String packageName, ComponentModel model) throws MojoFailureException {
+        StringBuilder sb = new StringBuilder();
+        sb.append("org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\\n");
+
+        int pos = model.getJavaType().lastIndexOf(".");
+        String name = model.getJavaType().substring(pos + 1);
+        name = name.replace("Component", "ComponentAutoConfiguration");
+        String lineToAdd = packageName + "." + name + "\n";
+        sb.append(lineToAdd);
+
+        String fileName = "META-INF/spring.factories";
+        File target = new File(resourcesDir, fileName);
+
+        if (target.exists()) {
+            try {
+                // is the auto configuration already in the file
+                boolean found = false;
+                List<String> lines = FileUtils.readLines(target);
+                for (String line : lines) {
+                    if (line.contains(name)) {
+                        found = true;
+                        break;
+                    }
+                }
+
+                if (found) {
+                    getLog().info("No changes to existing file: " + target);
+                } else {
+                    // find last non empty line, so we can add our new line after that
+                    int lastLine = 0;
+                    for (int i = lines.size() - 1; i >= 0; i--) {
+                        String line = lines.get(i);
+                        if (!line.trim().isEmpty()) {
+                            // adjust existing line so its being continued
+                            line = line + ",\\";
+                            lines.set(i, line);
+                            lastLine = i;
+                            break;
+                        }
+                    }
+                    lines.add(lastLine + 1, lineToAdd);
+
+                    StringBuilder code = new StringBuilder();
+                    for (String line : lines) {
+                        code.append(line).append("\n");
+                    }
+
+                    // update
+                    FileUtils.write(target, code.toString(), false);
+                    getLog().info("Updated existing file: " + target);
+                }
+            } catch (Exception e) {
+                throw new MojoFailureException("IOError with file " + target, e);
+            }
+        } else {
+            // create new file
+            try {
+                InputStream is = getClass().getClassLoader().getResourceAsStream("license-header.txt");
+                String header = loadText(is);
+                String code = sb.toString();
+                // add empty new line after header
+                code = header + "\n" + code;
+                getLog().debug("Source code generated:\n" + code);
+
+                FileUtils.write(target, code);
+                getLog().info("Created file: " + target);
+            } catch (Exception e) {
+                throw new MojoFailureException("IOError with file " + target, e);
+            }
+        }
+    }
+
+    private static String createBody(String shortJavaType) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(shortJavaType).append(" component = new ").append(shortJavaType).append("();").append("\n");
+        sb.append("component.setCamelContext(camelContext);\n");
+        sb.append("\n");
+        sb.append("Map<String, Object> parameters = new HashMap<>();\n");
+        sb.append("IntrospectionSupport.getProperties(configuration, parameters, null);\n");
+        sb.append("\n");
+        sb.append("IntrospectionSupport.setProperties(camelContext, camelContext.getTypeConverter(), component, parameters);\n");
+        sb.append("\n");
+        sb.append("return component;");
+        return sb.toString();
+    }
+
+    private static void sortImports(JavaClassSource javaClass) {
+        // sort imports
+        List<Import> imports = javaClass.getImports();
+
+        // sort imports
+        List<String> names = new ArrayList<>();
+        for (Import imp : imports) {
+            names.add(imp.getQualifiedName());
+        }
+        // sort
+        Collections.sort(names, (s1, s2) -> {
+            // java comes first
+            if (s1.startsWith("java.")) {
+                s1 = "___" + s1;
+            }
+            if (s2.startsWith("java.")) {
+                s2 = "___" + s2;
+            }
+            // then javax comes next
+            if (s1.startsWith("javax.")) {
+                s1 = "__" + s1;
+            }
+            if (s2.startsWith("javax.")) {
+                s2 = "__" + s2;
+            }
+            // org.w3c is for some odd reason also before others
+            if (s1.startsWith("org.w3c.")) {
+                s1 = "_" + s1;
+            }
+            if (s2.startsWith("org.w3c.")) {
+                s2 = "_" + s2;
+            }
+            return s1.compareTo(s2);
+        });
+
+        // remove all imports first
+        for (String name : names) {
+            javaClass.removeImport(name);
+        }
+        // and add them back in correct order
+        for (String name : names) {
+            javaClass.addImport(name);
+        }
+    }
+
+    private static String sourceToString(JavaClassSource javaClass) {
+        String code = javaClass.toString();
+        // convert tabs to 4 spaces
+        code = code.replaceAll("\\t", "    ");
+        return code;
+    }
+
+    private static String loadComponentJson(Set<File> jsonFiles, String componentName) {
+        try {
+            for (File file : jsonFiles) {
+                if (file.getName().equals(componentName + ".json")) {
+                    String json = loadText(new FileInputStream(file));
+                    boolean isComponent = json.contains("\"kind\": \"component\"");
+                    if (isComponent) {
+                        return json;
+                    }
+                }
+            }
+        } catch (IOException e) {
+            // ignore
+        }
+        return null;
+    }
+
+    private static ComponentModel generateComponentModel(String componentName, String json) {
+        List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("component", json, false);
+
+        ComponentModel component = new ComponentModel();
+        component.setScheme(getSafeValue("scheme", rows));
+        component.setSyntax(getSafeValue("syntax", rows));
+        component.setAlternativeSyntax(getSafeValue("alternativeSyntax", rows));
+        component.setTitle(getSafeValue("title", rows));
+        component.setDescription(getSafeValue("description", rows));
+        component.setLabel(getSafeValue("label", rows));
+        component.setDeprecated(getSafeValue("deprecated", rows));
+        component.setConsumerOnly(getSafeValue("consumerOnly", rows));
+        component.setProducerOnly(getSafeValue("producerOnly", rows));
+        component.setJavaType(getSafeValue("javaType", rows));
+        component.setGroupId(getSafeValue("groupId", rows));
+        component.setArtifactId(getSafeValue("artifactId", rows));
+        component.setVersion(getSafeValue("version", rows));
+
+        rows = JSonSchemaHelper.parseJsonSchema("componentProperties", json, true);
+        for (Map<String, String> row : rows) {
+            ComponentOptionModel option = new ComponentOptionModel();
+            option.setName(getSafeValue("name", row));
+            option.setKind(getSafeValue("kind", row));
+            option.setType(getSafeValue("type", row));
+            option.setJavaType(getSafeValue("javaType", row));
+            option.setDeprecated(getSafeValue("deprecated", row));
+            option.setDescription(getSafeValue("description", row));
+            component.addComponentOption(option);
+        }
+
+        rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
+        for (Map<String, String> row : rows) {
+            EndpointOptionModel option = new EndpointOptionModel();
+            option.setName(getSafeValue("name", row));
+            option.setKind(getSafeValue("kind", row));
+            option.setGroup(getSafeValue("group", row));
+            option.setRequired(getSafeValue("required", row));
+            option.setType(getSafeValue("type", row));
+            option.setJavaType(getSafeValue("javaType", row));
+            option.setEnums(getSafeValue("enum", row));
+            option.setPrefix(getSafeValue("prefix", row));
+            option.setMultiValue(getSafeValue("multiValue", row));
+            option.setDeprecated(getSafeValue("deprecated", row));
+            option.setDefaultValue(getSafeValue("defaultValue", row));
+            option.setDescription(getSafeValue("description", row));
+            component.addEndpointOption(option);
+        }
+
+        return component;
+    }
+
+    private List<String> findComponentNames() {
+        List<String> componentNames = new ArrayList<String>();
+        for (Resource r : project.getBuild().getResources()) {
+            File f = new File(r.getDirectory());
+            if (!f.exists()) {
+                f = new File(project.getBasedir(), r.getDirectory());
+            }
+            f = new File(f, "META-INF/services/org/apache/camel/component");
+
+            if (f.exists() && f.isDirectory()) {
+                File[] files = f.listFiles();
+                if (files != null) {
+                    for (File file : files) {
+                        // skip directories as there may be a sub .resolver directory
+                        if (file.isDirectory()) {
+                            continue;
+                        }
+                        String name = file.getName();
+                        if (name.charAt(0) != '.') {
+                            componentNames.add(name);
+                        }
+                    }
+                }
+            }
+        }
+        return componentNames;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header-java.txt
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header-java.txt b/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header-java.txt
new file mode 100644
index 0000000..0f49ea9
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header-java.txt
@@ -0,0 +1,16 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header.txt
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header.txt b/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header.txt
new file mode 100644
index 0000000..12bdf0d
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/license-header.txt
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#


[05/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentConfiguration.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentConfiguration.java
new file mode 100644
index 0000000..90e022a
--- /dev/null
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentConfiguration.java
@@ -0,0 +1,100 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty.http.springboot;
+
+import org.apache.camel.component.netty.NettyConfiguration;
+import org.apache.camel.component.netty.http.NettyHttpBinding;
+import org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Netty HTTP server and client using the Netty 3.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.netty-http")
+public class NettyHttpComponentConfiguration {
+
+    /**
+     * To use a custom org.apache.camel.component.netty.http.NettyHttpBinding
+     * for binding to/from Netty and Camel Message API.
+     */
+    private NettyHttpBinding nettyHttpBinding;
+    /**
+     * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+     * headers.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * Refers to a
+     * org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration for
+     * configuring secure web resources.
+     */
+    private NettyHttpSecurityConfiguration securityConfiguration;
+    /**
+     * To use the NettyConfiguration as configuration when creating endpoints.
+     */
+    private NettyConfiguration configuration;
+    /**
+     * The core pool size for the ordered thread pool if its in use. The default
+     * value is 16.
+     */
+    private int maximumPoolSize;
+
+    public NettyHttpBinding getNettyHttpBinding() {
+        return nettyHttpBinding;
+    }
+
+    public void setNettyHttpBinding(NettyHttpBinding nettyHttpBinding) {
+        this.nettyHttpBinding = nettyHttpBinding;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public NettyHttpSecurityConfiguration getSecurityConfiguration() {
+        return securityConfiguration;
+    }
+
+    public void setSecurityConfiguration(
+            NettyHttpSecurityConfiguration securityConfiguration) {
+        this.securityConfiguration = securityConfiguration;
+    }
+
+    public NettyConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(NettyConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public int getMaximumPoolSize() {
+        return maximumPoolSize;
+    }
+
+    public void setMaximumPoolSize(int maximumPoolSize) {
+        this.maximumPoolSize = maximumPoolSize;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty-http/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/resources/META-INF/spring.factories b/components/camel-netty-http/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a2295b2
--- /dev/null
+++ b/components/camel-netty-http/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.netty.http.springboot.NettyHttpComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentAutoConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentAutoConfiguration.java
new file mode 100644
index 0000000..04c4633
--- /dev/null
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.netty.NettyComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(NettyComponentConfiguration.class)
+public class NettyComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(NettyComponent.class)
+    public NettyComponent configureComponent(CamelContext camelContext,
+            NettyComponentConfiguration configuration) throws Exception {
+        NettyComponent component = new NettyComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
new file mode 100644
index 0000000..f958387
--- /dev/null
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty.springboot;
+
+import org.apache.camel.component.netty.NettyConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Socket level networking using TCP or UDP with the Netty 3.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.netty")
+public class NettyComponentConfiguration {
+
+    /**
+     * To use the NettyConfiguration as configuration when creating endpoints.
+     */
+    private NettyConfiguration configuration;
+    /**
+     * The core pool size for the ordered thread pool if its in use. The default
+     * value is 16.
+     */
+    private int maximumPoolSize;
+
+    public NettyConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(NettyConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public int getMaximumPoolSize() {
+        return maximumPoolSize;
+    }
+
+    public void setMaximumPoolSize(int maximumPoolSize) {
+        this.maximumPoolSize = maximumPoolSize;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/resources/META-INF/spring.factories b/components/camel-netty/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7d37fe1
--- /dev/null
+++ b/components/camel-netty/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.netty.springboot.NettyComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentAutoConfiguration.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentAutoConfiguration.java
new file mode 100644
index 0000000..e954a36
--- /dev/null
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty4.http.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.netty4.http.NettyHttpComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(NettyHttpComponentConfiguration.class)
+public class NettyHttpComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(NettyHttpComponent.class)
+    public NettyHttpComponent configureComponent(CamelContext camelContext,
+            NettyHttpComponentConfiguration configuration) throws Exception {
+        NettyHttpComponent component = new NettyHttpComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentConfiguration.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentConfiguration.java
new file mode 100644
index 0000000..31c80d0
--- /dev/null
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/springboot/NettyHttpComponentConfiguration.java
@@ -0,0 +1,113 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty4.http.springboot;
+
+import io.netty.util.concurrent.EventExecutorGroup;
+import org.apache.camel.component.netty4.NettyConfiguration;
+import org.apache.camel.component.netty4.http.NettyHttpBinding;
+import org.apache.camel.component.netty4.http.NettyHttpSecurityConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Netty HTTP server and client using the Netty 4.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.netty4-http")
+public class NettyHttpComponentConfiguration {
+
+    /**
+     * To use a custom org.apache.camel.component.netty4.http.NettyHttpBinding
+     * for binding to/from Netty and Camel Message API.
+     */
+    private NettyHttpBinding nettyHttpBinding;
+    /**
+     * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+     * headers.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * Refers to a
+     * org.apache.camel.component.netty4.http.NettyHttpSecurityConfiguration for
+     * configuring secure web resources.
+     */
+    private NettyHttpSecurityConfiguration securityConfiguration;
+    /**
+     * The thread pool size for the EventExecutorGroup if its in use. The
+     * default value is 16.
+     */
+    private int maximumPoolSize;
+    /**
+     * To use the NettyConfiguration as configuration when creating endpoints.
+     */
+    private NettyConfiguration configuration;
+    /**
+     * To use the given EventExecutorGroup
+     */
+    private EventExecutorGroup executorService;
+
+    public NettyHttpBinding getNettyHttpBinding() {
+        return nettyHttpBinding;
+    }
+
+    public void setNettyHttpBinding(NettyHttpBinding nettyHttpBinding) {
+        this.nettyHttpBinding = nettyHttpBinding;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public NettyHttpSecurityConfiguration getSecurityConfiguration() {
+        return securityConfiguration;
+    }
+
+    public void setSecurityConfiguration(
+            NettyHttpSecurityConfiguration securityConfiguration) {
+        this.securityConfiguration = securityConfiguration;
+    }
+
+    public int getMaximumPoolSize() {
+        return maximumPoolSize;
+    }
+
+    public void setMaximumPoolSize(int maximumPoolSize) {
+        this.maximumPoolSize = maximumPoolSize;
+    }
+
+    public NettyConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(NettyConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public EventExecutorGroup getExecutorService() {
+        return executorService;
+    }
+
+    public void setExecutorService(EventExecutorGroup executorService) {
+        this.executorService = executorService;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4-http/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/resources/META-INF/spring.factories b/components/camel-netty4-http/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..912a3c3
--- /dev/null
+++ b/components/camel-netty4-http/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.netty4.http.springboot.NettyHttpComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentAutoConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentAutoConfiguration.java
new file mode 100644
index 0000000..eda99a2
--- /dev/null
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty4.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.netty4.NettyComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(NettyComponentConfiguration.class)
+public class NettyComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(NettyComponent.class)
+    public NettyComponent configureComponent(CamelContext camelContext,
+            NettyComponentConfiguration configuration) throws Exception {
+        NettyComponent component = new NettyComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
new file mode 100644
index 0000000..e29ea13
--- /dev/null
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty4.springboot;
+
+import io.netty.util.concurrent.EventExecutorGroup;
+import org.apache.camel.component.netty4.NettyConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Socket level networking using TCP or UDP with the Netty 4.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.netty4")
+public class NettyComponentConfiguration {
+
+    /**
+     * The thread pool size for the EventExecutorGroup if its in use. The
+     * default value is 16.
+     */
+    private int maximumPoolSize;
+    /**
+     * To use the NettyConfiguration as configuration when creating endpoints.
+     */
+    private NettyConfiguration configuration;
+    /**
+     * To use the given EventExecutorGroup
+     */
+    private EventExecutorGroup executorService;
+
+    public int getMaximumPoolSize() {
+        return maximumPoolSize;
+    }
+
+    public void setMaximumPoolSize(int maximumPoolSize) {
+        this.maximumPoolSize = maximumPoolSize;
+    }
+
+    public NettyConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(NettyConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public EventExecutorGroup getExecutorService() {
+        return executorService;
+    }
+
+    public void setExecutorService(EventExecutorGroup executorService) {
+        this.executorService = executorService;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty4/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/resources/META-INF/spring.factories b/components/camel-netty4/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..25df3f1
--- /dev/null
+++ b/components/camel-netty4/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.netty4.springboot.NettyComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentAutoConfiguration.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentAutoConfiguration.java
new file mode 100644
index 0000000..1685ac5
--- /dev/null
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.olingo2.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.olingo2.Olingo2Component;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(Olingo2ComponentConfiguration.class)
+public class Olingo2ComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(Olingo2Component.class)
+    public Olingo2Component configureComponent(CamelContext camelContext,
+            Olingo2ComponentConfiguration configuration) throws Exception {
+        Olingo2Component component = new Olingo2Component();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentConfiguration.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentConfiguration.java
new file mode 100644
index 0000000..037baa4
--- /dev/null
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.olingo2.springboot;
+
+import org.apache.camel.component.olingo2.Olingo2Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Communicates with OData 2.0 and 3.0 services using Apache Olingo.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.olingo2")
+public class Olingo2ComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private Olingo2Configuration configuration;
+
+    public Olingo2Configuration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(Olingo2Configuration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-olingo2/camel-olingo2-component/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/resources/META-INF/spring.factories b/components/camel-olingo2/camel-olingo2-component/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9a1c863
--- /dev/null
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.olingo2.springboot.Olingo2ComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentAutoConfiguration.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentAutoConfiguration.java
new file mode 100644
index 0000000..8152776
--- /dev/null
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.openshift.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.openshift.OpenShiftComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(OpenShiftComponentConfiguration.class)
+public class OpenShiftComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(OpenShiftComponent.class)
+    public OpenShiftComponent configureComponent(CamelContext camelContext,
+            OpenShiftComponentConfiguration configuration) throws Exception {
+        OpenShiftComponent component = new OpenShiftComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentConfiguration.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentConfiguration.java
new file mode 100644
index 0000000..e2dc6ed
--- /dev/null
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/springboot/OpenShiftComponentConfiguration.java
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.openshift.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To manage your Openshift 2.x applications.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.openshift")
+public class OpenShiftComponentConfiguration {
+
+    /**
+     * The username to login to openshift server.
+     */
+    private String username;
+    /**
+     * The password for login to openshift server.
+     */
+    private String password;
+    /**
+     * Domain name. If not specified then the default domain is used.
+     */
+    private String domain;
+    /**
+     * Url to the openshift server. If not specified then the default value from
+     * the local openshift configuration file /.openshift/express.conf is used.
+     * And if that fails as well then openshift.redhat.com is used.
+     */
+    private String server;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getServer() {
+        return server;
+    }
+
+    public void setServer(String server) {
+        this.server = server;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-openshift/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/resources/META-INF/spring.factories b/components/camel-openshift/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a555e2c
--- /dev/null
+++ b/components/camel-openshift/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.openshift.springboot.OpenShiftComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentAutoConfiguration.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentAutoConfiguration.java
new file mode 100644
index 0000000..165b843
--- /dev/null
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.paho.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.paho.PahoComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(PahoComponentConfiguration.class)
+public class PahoComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(PahoComponent.class)
+    public PahoComponent configureComponent(CamelContext camelContext,
+            PahoComponentConfiguration configuration) throws Exception {
+        PahoComponent component = new PahoComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentConfiguration.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentConfiguration.java
new file mode 100644
index 0000000..26d2cbb
--- /dev/null
+++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentConfiguration.java
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.paho.springboot;
+
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Component for communicating with MQTT M2M message brokers using Eclipse Paho
+ * MQTT Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.paho")
+public class PahoComponentConfiguration {
+
+    /**
+     * The URL of the MQTT broker.
+     */
+    private String brokerUrl;
+    /**
+     * MQTT client identifier.
+     */
+    private String clientId;
+    /**
+     * Client connection options
+     */
+    private MqttConnectOptions connectOptions;
+
+    public String getBrokerUrl() {
+        return brokerUrl;
+    }
+
+    public void setBrokerUrl(String brokerUrl) {
+        this.brokerUrl = brokerUrl;
+    }
+
+    public String getClientId() {
+        return clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public MqttConnectOptions getConnectOptions() {
+        return connectOptions;
+    }
+
+    public void setConnectOptions(MqttConnectOptions connectOptions) {
+        this.connectOptions = connectOptions;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paho/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-paho/src/main/resources/META-INF/spring.factories b/components/camel-paho/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..5901896
--- /dev/null
+++ b/components/camel-paho/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.paho.springboot.PahoComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentAutoConfiguration.java b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentAutoConfiguration.java
new file mode 100644
index 0000000..4a82268
--- /dev/null
+++ b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.paxlogging.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.paxlogging.PaxLoggingComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(PaxLoggingComponentConfiguration.class)
+public class PaxLoggingComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(PaxLoggingComponent.class)
+    public PaxLoggingComponent configureComponent(CamelContext camelContext,
+            PaxLoggingComponentConfiguration configuration) throws Exception {
+        PaxLoggingComponent component = new PaxLoggingComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentConfiguration.java b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentConfiguration.java
new file mode 100644
index 0000000..d26ef84
--- /dev/null
+++ b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/springboot/PaxLoggingComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.paxlogging.springboot;
+
+import org.osgi.framework.BundleContext;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The paxlogging component can be used in an OSGi environment to receive
+ * PaxLogging events and process them.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.paxlogging")
+public class PaxLoggingComponentConfiguration {
+
+    /**
+     * The OSGi BundleContext is automatic injected by Camel
+     */
+    private BundleContext bundleContext;
+
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+    public void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-paxlogging/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-paxlogging/src/main/resources/META-INF/spring.factories b/components/camel-paxlogging/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..68a4e38
--- /dev/null
+++ b/components/camel-paxlogging/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.paxlogging.springboot.PaxLoggingComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentAutoConfiguration.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentAutoConfiguration.java
new file mode 100644
index 0000000..fad69ec
--- /dev/null
+++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.quartz.QuartzComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(QuartzComponentConfiguration.class)
+public class QuartzComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(QuartzComponent.class)
+    public QuartzComponent configureComponent(CamelContext camelContext,
+            QuartzComponentConfiguration configuration) throws Exception {
+        QuartzComponent component = new QuartzComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentConfiguration.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentConfiguration.java
new file mode 100644
index 0000000..ad2828d
--- /dev/null
+++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentConfiguration.java
@@ -0,0 +1,119 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz.springboot;
+
+import java.util.Properties;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Provides a scheduled delivery of messages using the Quartz 1.x scheduler.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.quartz")
+public class QuartzComponentConfiguration {
+
+    /**
+     * To use the custom SchedulerFactory which is used to create the Scheduler.
+     */
+    private SchedulerFactory factory;
+    /**
+     * To use the custom configured Quartz scheduler instead of creating a new
+     * Scheduler.
+     */
+    private Scheduler scheduler;
+    /**
+     * Properties to configure the Quartz scheduler.
+     */
+    private Properties properties;
+    /**
+     * File name of the properties to load from the classpath
+     */
+    private String propertiesFile;
+    /**
+     * Seconds to wait before starting the quartz scheduler.
+     */
+    private int startDelayedSeconds;
+    /**
+     * Whether or not the scheduler should be auto started. This options is
+     * default true
+     */
+    private boolean autoStartScheduler;
+    /**
+     * Whether to enable Quartz JMX which allows to manage the Quartz scheduler
+     * from JMX. This options is default true
+     */
+    private boolean enableJmx;
+
+    public SchedulerFactory getFactory() {
+        return factory;
+    }
+
+    public void setFactory(SchedulerFactory factory) {
+        this.factory = factory;
+    }
+
+    public Scheduler getScheduler() {
+        return scheduler;
+    }
+
+    public void setScheduler(Scheduler scheduler) {
+        this.scheduler = scheduler;
+    }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+
+    public String getPropertiesFile() {
+        return propertiesFile;
+    }
+
+    public void setPropertiesFile(String propertiesFile) {
+        this.propertiesFile = propertiesFile;
+    }
+
+    public int getStartDelayedSeconds() {
+        return startDelayedSeconds;
+    }
+
+    public void setStartDelayedSeconds(int startDelayedSeconds) {
+        this.startDelayedSeconds = startDelayedSeconds;
+    }
+
+    public boolean isAutoStartScheduler() {
+        return autoStartScheduler;
+    }
+
+    public void setAutoStartScheduler(boolean autoStartScheduler) {
+        this.autoStartScheduler = autoStartScheduler;
+    }
+
+    public boolean isEnableJmx() {
+        return enableJmx;
+    }
+
+    public void setEnableJmx(boolean enableJmx) {
+        this.enableJmx = enableJmx;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/resources/META-INF/spring.factories b/components/camel-quartz/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..d33d8b8
--- /dev/null
+++ b/components/camel-quartz/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.quartz.springboot.QuartzComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentAutoConfiguration.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentAutoConfiguration.java
new file mode 100644
index 0000000..86a458e
--- /dev/null
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz2.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.quartz2.QuartzComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(QuartzComponentConfiguration.class)
+public class QuartzComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(QuartzComponent.class)
+    public QuartzComponent configureComponent(CamelContext camelContext,
+            QuartzComponentConfiguration configuration) throws Exception {
+        QuartzComponent component = new QuartzComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentConfiguration.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentConfiguration.java
new file mode 100644
index 0000000..bf1836b
--- /dev/null
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/springboot/QuartzComponentConfiguration.java
@@ -0,0 +1,149 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz2.springboot;
+
+import java.util.Properties;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Provides a scheduled delivery of messages using the Quartz 2.x scheduler.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.quartz2")
+public class QuartzComponentConfiguration {
+
+    /**
+     * Whether or not the scheduler should be auto started. This options is
+     * default true
+     */
+    private boolean autoStartScheduler;
+    /**
+     * Seconds to wait before starting the quartz scheduler.
+     */
+    private int startDelayedSeconds;
+    /**
+     * Whether to prefix the quartz job with the endpoint id. This option is
+     * default false.
+     */
+    private boolean prefixJobNameWithEndpointId;
+    /**
+     * Whether to enable Quartz JMX which allows to manage the Quartz scheduler
+     * from JMX. This options is default true
+     */
+    private boolean enableJmx;
+    /**
+     * Properties to configure the Quartz scheduler.
+     */
+    private Properties properties;
+    /**
+     * File name of the properties to load from the classpath
+     */
+    private String propertiesFile;
+    /**
+     * Whether to prefix the Quartz Scheduler instance name with the
+     * CamelContext name. This is enabled by default to let each CamelContext
+     * use its own Quartz scheduler instance by default. You can set this option
+     * to false to reuse Quartz scheduler instances between multiple
+     * CamelContext's.
+     */
+    private boolean prefixInstanceName;
+    /**
+     * To use the custom SchedulerFactory which is used to create the Scheduler.
+     */
+    private SchedulerFactory schedulerFactory;
+    /**
+     * To use the custom configured Quartz scheduler instead of creating a new
+     * Scheduler.
+     */
+    private Scheduler scheduler;
+
+    public boolean isAutoStartScheduler() {
+        return autoStartScheduler;
+    }
+
+    public void setAutoStartScheduler(boolean autoStartScheduler) {
+        this.autoStartScheduler = autoStartScheduler;
+    }
+
+    public int getStartDelayedSeconds() {
+        return startDelayedSeconds;
+    }
+
+    public void setStartDelayedSeconds(int startDelayedSeconds) {
+        this.startDelayedSeconds = startDelayedSeconds;
+    }
+
+    public boolean isPrefixJobNameWithEndpointId() {
+        return prefixJobNameWithEndpointId;
+    }
+
+    public void setPrefixJobNameWithEndpointId(
+            boolean prefixJobNameWithEndpointId) {
+        this.prefixJobNameWithEndpointId = prefixJobNameWithEndpointId;
+    }
+
+    public boolean isEnableJmx() {
+        return enableJmx;
+    }
+
+    public void setEnableJmx(boolean enableJmx) {
+        this.enableJmx = enableJmx;
+    }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+
+    public String getPropertiesFile() {
+        return propertiesFile;
+    }
+
+    public void setPropertiesFile(String propertiesFile) {
+        this.propertiesFile = propertiesFile;
+    }
+
+    public boolean isPrefixInstanceName() {
+        return prefixInstanceName;
+    }
+
+    public void setPrefixInstanceName(boolean prefixInstanceName) {
+        this.prefixInstanceName = prefixInstanceName;
+    }
+
+    public SchedulerFactory getSchedulerFactory() {
+        return schedulerFactory;
+    }
+
+    public void setSchedulerFactory(SchedulerFactory schedulerFactory) {
+        this.schedulerFactory = schedulerFactory;
+    }
+
+    public Scheduler getScheduler() {
+        return scheduler;
+    }
+
+    public void setScheduler(Scheduler scheduler) {
+        this.scheduler = scheduler;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quartz2/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/resources/META-INF/spring.factories b/components/camel-quartz2/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..c8a464a
--- /dev/null
+++ b/components/camel-quartz2/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.quartz2.springboot.QuartzComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentAutoConfiguration.java b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentAutoConfiguration.java
new file mode 100644
index 0000000..8fc62e5
--- /dev/null
+++ b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quickfixj.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.quickfixj.QuickfixjComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(QuickfixjComponentConfiguration.class)
+public class QuickfixjComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(QuickfixjComponent.class)
+    public QuickfixjComponent configureComponent(CamelContext camelContext,
+            QuickfixjComponentConfiguration configuration) throws Exception {
+        QuickfixjComponent component = new QuickfixjComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
new file mode 100644
index 0000000..e05070f
--- /dev/null
+++ b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quickfixj.springboot;
+
+import java.util.Map;
+import org.apache.camel.component.quickfixj.QuickfixjConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import quickfix.LogFactory;
+import quickfix.MessageFactory;
+import quickfix.MessageStoreFactory;
+
+/**
+ * The quickfix component allows to send Financial Interchange (FIX) messages to
+ * the QuickFix engine.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.quickfix")
+public class QuickfixjComponentConfiguration {
+
+    /**
+     * To use the given MessageFactory
+     */
+    private MessageFactory messageFactory;
+    /**
+     * To use the given LogFactory
+     */
+    private LogFactory logFactory;
+    /**
+     * To use the given MessageStoreFactory
+     */
+    private MessageStoreFactory messageStoreFactory;
+    /**
+     * To use the given map of pre configured QuickFix configurations mapped to
+     * the key
+     */
+    private Map<java.lang.String, org.apache.camel.component.quickfixj.QuickfixjConfiguration> configurations;
+    /**
+     * If set to true the engines will be created and started when needed (when
+     * first message is send)
+     */
+    private boolean lazyCreateEngines;
+
+    public MessageFactory getMessageFactory() {
+        return messageFactory;
+    }
+
+    public void setMessageFactory(MessageFactory messageFactory) {
+        this.messageFactory = messageFactory;
+    }
+
+    public LogFactory getLogFactory() {
+        return logFactory;
+    }
+
+    public void setLogFactory(LogFactory logFactory) {
+        this.logFactory = logFactory;
+    }
+
+    public MessageStoreFactory getMessageStoreFactory() {
+        return messageStoreFactory;
+    }
+
+    public void setMessageStoreFactory(MessageStoreFactory messageStoreFactory) {
+        this.messageStoreFactory = messageStoreFactory;
+    }
+
+    public Map<String, QuickfixjConfiguration> getConfigurations() {
+        return configurations;
+    }
+
+    public void setConfigurations(
+            Map<String, QuickfixjConfiguration> configurations) {
+        this.configurations = configurations;
+    }
+
+    public boolean isLazyCreateEngines() {
+        return lazyCreateEngines;
+    }
+
+    public void setLazyCreateEngines(boolean lazyCreateEngines) {
+        this.lazyCreateEngines = lazyCreateEngines;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-quickfix/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-quickfix/src/main/resources/META-INF/spring.factories b/components/camel-quickfix/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..c3f0a79
--- /dev/null
+++ b/components/camel-quickfix/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.quickfixj.springboot.QuickfixjComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentAutoConfiguration.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentAutoConfiguration.java
new file mode 100644
index 0000000..e80993d
--- /dev/null
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/springboot/RestletComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.restlet.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.restlet.RestletComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(RestletComponentConfiguration.class)
+public class RestletComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(RestletComponent.class)
+    public RestletComponent configureComponent(CamelContext camelContext,
+            RestletComponentConfiguration configuration) throws Exception {
+        RestletComponent component = new RestletComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file


[06/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentAutoConfiguration.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentAutoConfiguration.java
new file mode 100644
index 0000000..f67932f
--- /dev/null
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.kestrel.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.kestrel.KestrelComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(KestrelComponentConfiguration.class)
+public class KestrelComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(KestrelComponent.class)
+    public KestrelComponent configureComponent(CamelContext camelContext,
+            KestrelComponentConfiguration configuration) throws Exception {
+        KestrelComponent component = new KestrelComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentConfiguration.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentConfiguration.java
new file mode 100644
index 0000000..8c0e311
--- /dev/null
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/springboot/KestrelComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.kestrel.springboot;
+
+import org.apache.camel.component.kestrel.KestrelConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The kestrel component allows messages to be sent to (or consumed from)
+ * Kestrel brokers.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.kestrel")
+public class KestrelComponentConfiguration {
+
+    /**
+     * To use a shared configured configuration as base for creating new
+     * endpoints.
+     */
+    private KestrelConfiguration configuration;
+
+    public KestrelConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(KestrelConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-kestrel/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/resources/META-INF/spring.factories b/components/camel-kestrel/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..534bb4c
--- /dev/null
+++ b/components/camel-kestrel/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.kestrel.springboot.KestrelComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentAutoConfiguration.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentAutoConfiguration.java
new file mode 100644
index 0000000..6dfec1b
--- /dev/null
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.linkedin.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.linkedin.LinkedInComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(LinkedInComponentConfiguration.class)
+public class LinkedInComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(LinkedInComponent.class)
+    public LinkedInComponent configureComponent(CamelContext camelContext,
+            LinkedInComponentConfiguration configuration) throws Exception {
+        LinkedInComponent component = new LinkedInComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
new file mode 100644
index 0000000..0bd3be0
--- /dev/null
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.linkedin.springboot;
+
+import org.apache.camel.component.linkedin.LinkedInConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The linkedin component is uses for retrieving LinkedIn user profiles
+ * connections companies groups posts etc.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.linkedin")
+public class LinkedInComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private LinkedInConfiguration configuration;
+
+    public LinkedInConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(LinkedInConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/spring.factories b/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..fde340f
--- /dev/null
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.linkedin.springboot.LinkedInComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentAutoConfiguration.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentAutoConfiguration.java
new file mode 100644
index 0000000..9651996
--- /dev/null
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.lucene.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.lucene.LuceneComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(LuceneComponentConfiguration.class)
+public class LuceneComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(LuceneComponent.class)
+    public LuceneComponent configureComponent(CamelContext camelContext,
+            LuceneComponentConfiguration configuration) throws Exception {
+        LuceneComponent component = new LuceneComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentConfiguration.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentConfiguration.java
new file mode 100644
index 0000000..cd514f7
--- /dev/null
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.lucene.springboot;
+
+import org.apache.camel.component.lucene.LuceneConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To insert or query from Apache Lucene databases.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.lucene")
+public class LuceneComponentConfiguration {
+
+    /**
+     * To use a shared lucene configuration
+     */
+    private LuceneConfiguration config;
+
+    public LuceneConfiguration getConfig() {
+        return config;
+    }
+
+    public void setConfig(LuceneConfiguration config) {
+        this.config = config;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-lucene/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/resources/META-INF/spring.factories b/components/camel-lucene/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..bc2eef7
--- /dev/null
+++ b/components/camel-lucene/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.lucene.springboot.LuceneComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentAutoConfiguration.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentAutoConfiguration.java
new file mode 100644
index 0000000..e11f070
--- /dev/null
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mail.MailComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MailComponentConfiguration.class)
+public class MailComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MailComponent.class)
+    public MailComponent configureComponent(CamelContext camelContext,
+            MailComponentConfiguration configuration) throws Exception {
+        MailComponent component = new MailComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
new file mode 100644
index 0000000..7b332f1
--- /dev/null
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail.springboot;
+
+import org.apache.camel.component.mail.ContentTypeResolver;
+import org.apache.camel.component.mail.MailConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To send or receive emails using imap/pop3 or stmp protocols.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.smtps")
+public class MailComponentConfiguration {
+
+    /**
+     * Sets the Mail configuration
+     */
+    private MailConfiguration configuration;
+    /**
+     * Resolver to determine Content-Type for file attachments.
+     */
+    private ContentTypeResolver contentTypeResolver;
+
+    public MailConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(MailConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public ContentTypeResolver getContentTypeResolver() {
+        return contentTypeResolver;
+    }
+
+    public void setContentTypeResolver(ContentTypeResolver contentTypeResolver) {
+        this.contentTypeResolver = contentTypeResolver;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mail/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/resources/META-INF/spring.factories b/components/camel-mail/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9791dc1
--- /dev/null
+++ b/components/camel-mail/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mail.springboot.MailComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentAutoConfiguration.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentAutoConfiguration.java
new file mode 100644
index 0000000..ffa1d9a
--- /dev/null
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.metrics.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.metrics.MetricsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MetricsComponentConfiguration.class)
+public class MetricsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MetricsComponent.class)
+    public MetricsComponent configureComponent(CamelContext camelContext,
+            MetricsComponentConfiguration configuration) throws Exception {
+        MetricsComponent component = new MetricsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentConfiguration.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentConfiguration.java
new file mode 100644
index 0000000..b0f478e
--- /dev/null
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.metrics.springboot;
+
+import com.codahale.metrics.MetricRegistry;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To collect various metrics directly from Camel routes using the DropWizard
+ * metrics library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.metrics")
+public class MetricsComponentConfiguration {
+
+    /**
+     * To use a custom configured MetricRegistry.
+     */
+    private MetricRegistry metricRegistry;
+
+    public MetricRegistry getMetricRegistry() {
+        return metricRegistry;
+    }
+
+    public void setMetricRegistry(MetricRegistry metricRegistry) {
+        this.metricRegistry = metricRegistry;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-metrics/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-metrics/src/main/resources/META-INF/spring.factories b/components/camel-metrics/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..dd83a8b
--- /dev/null
+++ b/components/camel-metrics/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.metrics.springboot.MetricsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentAutoConfiguration.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentAutoConfiguration.java
new file mode 100644
index 0000000..43791ab
--- /dev/null
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mina.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mina.MinaComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MinaComponentConfiguration.class)
+public class MinaComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MinaComponent.class)
+    public MinaComponent configureComponent(CamelContext camelContext,
+            MinaComponentConfiguration configuration) throws Exception {
+        MinaComponent component = new MinaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentConfiguration.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentConfiguration.java
new file mode 100644
index 0000000..59c222e
--- /dev/null
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mina.springboot;
+
+import org.apache.camel.component.mina.MinaConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Socket level networking using TCP or UDP with the Apache Mina 1.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.mina")
+public class MinaComponentConfiguration {
+
+    /**
+     * To use the shared mina configuration.
+     */
+    private MinaConfiguration configuration;
+
+    public MinaConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(MinaConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/resources/META-INF/spring.factories b/components/camel-mina/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7d810bf
--- /dev/null
+++ b/components/camel-mina/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mina.springboot.MinaComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentAutoConfiguration.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentAutoConfiguration.java
new file mode 100644
index 0000000..2f3b391
--- /dev/null
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mina2.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mina2.Mina2Component;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(Mina2ComponentConfiguration.class)
+public class Mina2ComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(Mina2Component.class)
+    public Mina2Component configureComponent(CamelContext camelContext,
+            Mina2ComponentConfiguration configuration) throws Exception {
+        Mina2Component component = new Mina2Component();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentConfiguration.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentConfiguration.java
new file mode 100644
index 0000000..38dcc81
--- /dev/null
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/springboot/Mina2ComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mina2.springboot;
+
+import org.apache.camel.component.mina2.Mina2Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Socket level networking using TCP or UDP with the Apache Mina 2.x library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.mina2")
+public class Mina2ComponentConfiguration {
+
+    /**
+     * To use the shared mina configuration.
+     */
+    private Mina2Configuration configuration;
+
+    public Mina2Configuration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(Mina2Configuration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mina2/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/resources/META-INF/spring.factories b/components/camel-mina2/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..b398489
--- /dev/null
+++ b/components/camel-mina2/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mina2.springboot.Mina2ComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentAutoConfiguration.java b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentAutoConfiguration.java
new file mode 100644
index 0000000..107c44f
--- /dev/null
+++ b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mqtt.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mqtt.MQTTComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MQTTComponentConfiguration.class)
+public class MQTTComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MQTTComponent.class)
+    public MQTTComponent configureComponent(CamelContext camelContext,
+            MQTTComponentConfiguration configuration) throws Exception {
+        MQTTComponent component = new MQTTComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentConfiguration.java b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentConfiguration.java
new file mode 100644
index 0000000..82e5504
--- /dev/null
+++ b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/springboot/MQTTComponentConfiguration.java
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mqtt.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Component for communicating with MQTT M2M message brokers using FuseSource
+ * MQTT Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.mqtt")
+public class MQTTComponentConfiguration {
+
+    /**
+     * The URI of the MQTT broker to connect too - this component also supports
+     * SSL - e.g. ssl://127.0.0.1:8883
+     */
+    private String host;
+    /**
+     * Username to be used for authentication against the MQTT broker
+     */
+    private String userName;
+    /**
+     * Password to be used for authentication against the MQTT broker
+     */
+    private String password;
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mqtt/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mqtt/src/main/resources/META-INF/spring.factories b/components/camel-mqtt/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..6d3291e
--- /dev/null
+++ b/components/camel-mqtt/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mqtt.springboot.MQTTComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentAutoConfiguration.java b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentAutoConfiguration.java
new file mode 100644
index 0000000..87612df
--- /dev/null
+++ b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.validator.msv.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.validator.msv.MsvComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MsvComponentConfiguration.class)
+public class MsvComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MsvComponent.class)
+    public MsvComponent configureComponent(CamelContext camelContext,
+            MsvComponentConfiguration configuration) throws Exception {
+        MsvComponent component = new MsvComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentConfiguration.java b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentConfiguration.java
new file mode 100644
index 0000000..71454bd
--- /dev/null
+++ b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentConfiguration.java
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.validator.msv.springboot;
+
+import javax.xml.validation.SchemaFactory;
+import org.apache.camel.component.validator.ValidatorResourceResolverFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Validates the payload of a message using the MSV Library.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.msv")
+public class MsvComponentConfiguration {
+
+    /**
+     * To use the javax.xml.validation.SchemaFactory.
+     */
+    private SchemaFactory schemaFactory;
+    /**
+     * To use a custom LSResourceResolver which depends on a dynamic endpoint
+     * resource URI
+     */
+    private ValidatorResourceResolverFactory resourceResolverFactory;
+
+    public SchemaFactory getSchemaFactory() {
+        return schemaFactory;
+    }
+
+    public void setSchemaFactory(SchemaFactory schemaFactory) {
+        this.schemaFactory = schemaFactory;
+    }
+
+    public ValidatorResourceResolverFactory getResourceResolverFactory() {
+        return resourceResolverFactory;
+    }
+
+    public void setResourceResolverFactory(
+            ValidatorResourceResolverFactory resourceResolverFactory) {
+        this.resourceResolverFactory = resourceResolverFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-msv/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-msv/src/main/resources/META-INF/spring.factories b/components/camel-msv/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..67c3681
--- /dev/null
+++ b/components/camel-msv/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.validator.msv.springboot.MsvComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentAutoConfiguration.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentAutoConfiguration.java
new file mode 100644
index 0000000..ac09bd5
--- /dev/null
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mustache.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mustache.MustacheComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MustacheComponentConfiguration.class)
+public class MustacheComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MustacheComponent.class)
+    public MustacheComponent configureComponent(CamelContext camelContext,
+            MustacheComponentConfiguration configuration) throws Exception {
+        MustacheComponent component = new MustacheComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentConfiguration.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentConfiguration.java
new file mode 100644
index 0000000..2f789e3
--- /dev/null
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mustache.springboot;
+
+import com.github.mustachejava.MustacheFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Transforms the message using a Mustache template.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.mustache")
+public class MustacheComponentConfiguration {
+
+    /**
+     * To use a custom MustacheFactory
+     */
+    private MustacheFactory mustacheFactory;
+
+    public MustacheFactory getMustacheFactory() {
+        return mustacheFactory;
+    }
+
+    public void setMustacheFactory(MustacheFactory mustacheFactory) {
+        this.mustacheFactory = mustacheFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mustache/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mustache/src/main/resources/META-INF/spring.factories b/components/camel-mustache/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..0a3fb76
--- /dev/null
+++ b/components/camel-mustache/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mustache.springboot.MustacheComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentAutoConfiguration.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentAutoConfiguration.java
new file mode 100644
index 0000000..963773f
--- /dev/null
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mybatis.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mybatis.MyBatisComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(MyBatisComponentConfiguration.class)
+public class MyBatisComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MyBatisComponent.class)
+    public MyBatisComponent configureComponent(CamelContext camelContext,
+            MyBatisComponentConfiguration configuration) throws Exception {
+        MyBatisComponent component = new MyBatisComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
new file mode 100644
index 0000000..2c3fee8
--- /dev/null
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mybatis.springboot;
+
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Performs a query poll insert update or delete in a relational database using
+ * MyBatis.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.mybatis")
+public class MyBatisComponentConfiguration {
+
+    /**
+     * To use the SqlSessionFactory
+     */
+    private SqlSessionFactory sqlSessionFactory;
+    /**
+     * Location of MyBatis xml configuration file. The default value is:
+     * SqlMapConfig.xml loaded from the classpath
+     */
+    private String configurationUri;
+
+    public SqlSessionFactory getSqlSessionFactory() {
+        return sqlSessionFactory;
+    }
+
+    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
+        this.sqlSessionFactory = sqlSessionFactory;
+    }
+
+    public String getConfigurationUri() {
+        return configurationUri;
+    }
+
+    public void setConfigurationUri(String configurationUri) {
+        this.configurationUri = configurationUri;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-mybatis/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-mybatis/src/main/resources/META-INF/spring.factories b/components/camel-mybatis/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..6e83825
--- /dev/null
+++ b/components/camel-mybatis/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.mybatis.springboot.MyBatisComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentAutoConfiguration.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentAutoConfiguration.java
new file mode 100644
index 0000000..278f305
--- /dev/null
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.nagios.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.nagios.NagiosComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(NagiosComponentConfiguration.class)
+public class NagiosComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(NagiosComponent.class)
+    public NagiosComponent configureComponent(CamelContext camelContext,
+            NagiosComponentConfiguration configuration) throws Exception {
+        NagiosComponent component = new NagiosComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
new file mode 100644
index 0000000..afc8604
--- /dev/null
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.nagios.springboot;
+
+import org.apache.camel.component.nagios.NagiosConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To send passive checks to Nagios using JSendNSCA.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.nagios")
+public class NagiosComponentConfiguration {
+
+    /**
+     * To use a shared NagiosConfiguration
+     */
+    private NagiosConfiguration configuration;
+
+    public NagiosConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(NagiosConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-nagios/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/resources/META-INF/spring.factories b/components/camel-nagios/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..d336f1b
--- /dev/null
+++ b/components/camel-nagios/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.nagios.springboot.NagiosComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentAutoConfiguration.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentAutoConfiguration.java
new file mode 100644
index 0000000..50dffd2
--- /dev/null
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty.http.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.netty.http.NettyHttpComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(NettyHttpComponentConfiguration.class)
+public class NettyHttpComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(NettyHttpComponent.class)
+    public NettyHttpComponent configureComponent(CamelContext camelContext,
+            NettyHttpComponentConfiguration configuration) throws Exception {
+        NettyHttpComponent component = new NettyHttpComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file


[10/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-avro/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/resources/META-INF/spring.factories b/components/camel-avro/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a3ace3c
--- /dev/null
+++ b/components/camel-avro/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.avro.springboot.AvroComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
new file mode 100644
index 0000000..44db0da
--- /dev/null
+++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.beanstalk.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.beanstalk.BeanstalkComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(BeanstalkComponentConfiguration.class)
+public class BeanstalkComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(BeanstalkComponent.class)
+    public BeanstalkComponent configureComponent(CamelContext camelContext,
+            BeanstalkComponentConfiguration configuration) throws Exception {
+        BeanstalkComponent component = new BeanstalkComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
new file mode 100644
index 0000000..d0e4599
--- /dev/null
+++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.beanstalk.springboot;
+
+import org.apache.camel.component.beanstalk.ConnectionSettingsFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The beanstalk component is used for job retrieval and post-processing of
+ * Beanstalk jobs.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.beanstalk")
+public class BeanstalkComponentConfiguration {
+
+    /**
+     * Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory
+     * to use to make connections to Beanstalkd. Especially useful for unit
+     * testing without beanstalkd daemon (you can mock ConnectionSettings)
+     */
+    private ConnectionSettingsFactory connectionSettingsFactory;
+
+    public ConnectionSettingsFactory getConnectionSettingsFactory() {
+        return connectionSettingsFactory;
+    }
+
+    public void setConnectionSettingsFactory(
+            ConnectionSettingsFactory connectionSettingsFactory) {
+        this.connectionSettingsFactory = connectionSettingsFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-beanstalk/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-beanstalk/src/main/resources/META-INF/spring.factories b/components/camel-beanstalk/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9d05330
--- /dev/null
+++ b/components/camel-beanstalk/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.beanstalk.springboot.BeanstalkComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
new file mode 100644
index 0000000..6f7dcf5
--- /dev/null
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.box.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.box.BoxComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(BoxComponentConfiguration.class)
+public class BoxComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(BoxComponent.class)
+    public BoxComponent configureComponent(CamelContext camelContext,
+            BoxComponentConfiguration configuration) throws Exception {
+        BoxComponent component = new BoxComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
new file mode 100644
index 0000000..2b74214
--- /dev/null
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.box.springboot;
+
+import org.apache.camel.component.box.BoxConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For uploading downloading and managing files folders groups collaborations
+ * etc on box DOT com.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.box")
+public class BoxComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private BoxConfiguration configuration;
+
+    public BoxConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(BoxConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-box/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/resources/META-INF/spring.factories b/components/camel-box/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..1cecc33
--- /dev/null
+++ b/components/camel-box/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.box.springboot.BoxComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
new file mode 100644
index 0000000..2176d46
--- /dev/null
+++ b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.braintree.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.braintree.BraintreeComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(BraintreeComponentConfiguration.class)
+public class BraintreeComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(BraintreeComponent.class)
+    public BraintreeComponent configureComponent(CamelContext camelContext,
+            BraintreeComponentConfiguration configuration) throws Exception {
+        BraintreeComponent component = new BraintreeComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
new file mode 100644
index 0000000..60f2b7f
--- /dev/null
+++ b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.braintree.springboot;
+
+import org.apache.camel.component.braintree.BraintreeConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The braintree component is used for integrating with the Braintree Payment
+ * System.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.braintree")
+public class BraintreeComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private BraintreeConfiguration configuration;
+
+    public BraintreeConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(BraintreeConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-braintree/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/resources/META-INF/spring.factories b/components/camel-braintree/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..00066a8
--- /dev/null
+++ b/components/camel-braintree/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.braintree.springboot.BraintreeComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentAutoConfiguration.java b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentAutoConfiguration.java
new file mode 100644
index 0000000..cc996cc
--- /dev/null
+++ b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cache.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.cache.CacheComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(CacheComponentConfiguration.class)
+public class CacheComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(CacheComponent.class)
+    public CacheComponent configureComponent(CamelContext camelContext,
+            CacheComponentConfiguration configuration) throws Exception {
+        CacheComponent component = new CacheComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
new file mode 100644
index 0000000..cfb7abd
--- /dev/null
+++ b/components/camel-cache/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cache.springboot;
+
+import org.apache.camel.component.cache.CacheConfiguration;
+import org.apache.camel.component.cache.CacheManagerFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The cache component enables you to perform caching operations using EHCache
+ * as the Cache Implementation.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.cache")
+public class CacheComponentConfiguration {
+
+    /**
+     * To use the given CacheManagerFactory for creating the CacheManager. By
+     * default the DefaultCacheManagerFactory is used.
+     */
+    private CacheManagerFactory cacheManagerFactory;
+    /**
+     * Sets the Cache configuration
+     */
+    private CacheConfiguration configuration;
+    /**
+     * Sets the location of the ehcache.xml file to load from classpath or file
+     * system. By default the file is loaded from classpath:ehcache.xml
+     */
+    private String configurationFile;
+
+    public CacheManagerFactory getCacheManagerFactory() {
+        return cacheManagerFactory;
+    }
+
+    public void setCacheManagerFactory(CacheManagerFactory cacheManagerFactory) {
+        this.cacheManagerFactory = cacheManagerFactory;
+    }
+
+    public CacheConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(CacheConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public String getConfigurationFile() {
+        return configurationFile;
+    }
+
+    public void setConfigurationFile(String configurationFile) {
+        this.configurationFile = configurationFile;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cache/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/resources/META-INF/spring.factories b/components/camel-cache/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f9df793
--- /dev/null
+++ b/components/camel-cache/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.cache.springboot.CacheComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
new file mode 100644
index 0000000..3194fda
--- /dev/null
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cometd.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.cometd.CometdComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(CometdComponentConfiguration.class)
+public class CometdComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(CometdComponent.class)
+    public CometdComponent configureComponent(CamelContext camelContext,
+            CometdComponentConfiguration configuration) throws Exception {
+        CometdComponent component = new CometdComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
new file mode 100644
index 0000000..6d7c7d0
--- /dev/null
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
@@ -0,0 +1,108 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cometd.springboot;
+
+import java.util.List;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.cometd.bayeux.server.BayeuxServer.Extension;
+import org.cometd.bayeux.server.SecurityPolicy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The cometd component is a transport for working with the Jetty implementation
+ * of the cometd/bayeux protocol.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.cometds")
+public class CometdComponentConfiguration {
+
+    /**
+     * The password for the keystore when using SSL.
+     */
+    private String sslKeyPassword;
+    /**
+     * The password when using SSL.
+     */
+    private String sslPassword;
+    /**
+     * The path to the keystore.
+     */
+    private String sslKeystore;
+    /**
+     * To use a custom configured SecurityPolicy to control authorization
+     */
+    private SecurityPolicy securityPolicy;
+    /**
+     * To use a list of custom BayeuxServer.Extension that allows modifying
+     * incoming and outgoing requests.
+     */
+    private List<org.cometd.bayeux.server.BayeuxServer.Extension> extensions;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+
+    public String getSslKeyPassword() {
+        return sslKeyPassword;
+    }
+
+    public void setSslKeyPassword(String sslKeyPassword) {
+        this.sslKeyPassword = sslKeyPassword;
+    }
+
+    public String getSslPassword() {
+        return sslPassword;
+    }
+
+    public void setSslPassword(String sslPassword) {
+        this.sslPassword = sslPassword;
+    }
+
+    public String getSslKeystore() {
+        return sslKeystore;
+    }
+
+    public void setSslKeystore(String sslKeystore) {
+        this.sslKeystore = sslKeystore;
+    }
+
+    public SecurityPolicy getSecurityPolicy() {
+        return securityPolicy;
+    }
+
+    public void setSecurityPolicy(SecurityPolicy securityPolicy) {
+        this.securityPolicy = securityPolicy;
+    }
+
+    public List<Extension> getExtensions() {
+        return extensions;
+    }
+
+    public void setExtensions(List<Extension> extensions) {
+        this.extensions = extensions;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cometd/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/main/resources/META-INF/spring.factories b/components/camel-cometd/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..b2c7883
--- /dev/null
+++ b/components/camel-cometd/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.cometd.springboot.CometdComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
new file mode 100644
index 0000000..3ffd71c
--- /dev/null
+++ b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.crypto.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.crypto.DigitalSignatureComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DigitalSignatureComponentConfiguration.class)
+public class DigitalSignatureComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DigitalSignatureComponent.class)
+    public DigitalSignatureComponent configureComponent(
+            CamelContext camelContext,
+            DigitalSignatureComponentConfiguration configuration)
+            throws Exception {
+        DigitalSignatureComponent component = new DigitalSignatureComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
new file mode 100644
index 0000000..96b82a0
--- /dev/null
+++ b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.crypto.springboot;
+
+import org.apache.camel.component.crypto.DigitalSignatureConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The crypto component is used for signing and verifying exchanges using the
+ * Signature Service of the Java Cryptographic Extension (JCE).
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.crypto")
+public class DigitalSignatureComponentConfiguration {
+
+    /**
+     * To use the shared DigitalSignatureConfiguration as configuration
+     */
+    private DigitalSignatureConfiguration configuration;
+
+    public DigitalSignatureConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(DigitalSignatureConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-crypto/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/resources/META-INF/spring.factories b/components/camel-crypto/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7fd3d83
--- /dev/null
+++ b/components/camel-crypto/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.crypto.springboot.DigitalSignatureComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentAutoConfiguration.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentAutoConfiguration.java
new file mode 100644
index 0000000..3a9c541
--- /dev/null
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf.jaxrs.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.cxf.jaxrs.CxfRsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(CxfRsComponentConfiguration.class)
+public class CxfRsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(CxfRsComponent.class)
+    public CxfRsComponent configureComponent(CamelContext camelContext,
+            CxfRsComponentConfiguration configuration) throws Exception {
+        CxfRsComponent component = new CxfRsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
new file mode 100644
index 0000000..f517a0e
--- /dev/null
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf.jaxrs.springboot;
+
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The cxfrs component is used for JAX-RS REST services using Apache CXF.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.cxfrs")
+public class CxfRsComponentConfiguration {
+
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentAutoConfiguration.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentAutoConfiguration.java
new file mode 100644
index 0000000..c4b223f
--- /dev/null
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.cxf.CxfComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(CxfComponentConfiguration.class)
+public class CxfComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(CxfComponent.class)
+    public CxfComponent configureComponent(CamelContext camelContext,
+            CxfComponentConfiguration configuration) throws Exception {
+        CxfComponent component = new CxfComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
new file mode 100644
index 0000000..b98b695
--- /dev/null
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf.springboot;
+
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The cxf component is used for SOAP WebServices using Apache CXF.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.cxf")
+public class CxfComponentConfiguration {
+
+    /**
+     * This option controls whether the CXF component when running in PAYLOAD
+     * mode will DOM parse the incoming messages into DOM Elements or keep the
+     * payload as a javax.xml.transform.Source object that would allow streaming
+     * in some cases.
+     */
+    private Boolean allowStreaming;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public Boolean getAllowStreaming() {
+        return allowStreaming;
+    }
+
+    public void setAllowStreaming(Boolean allowStreaming) {
+        this.allowStreaming = allowStreaming;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-cxf/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/resources/META-INF/spring.factories b/components/camel-cxf/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..9ddb944
--- /dev/null
+++ b/components/camel-cxf/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.cxf.springboot.CxfComponentAutoConfiguration,\
+org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentAutoConfiguration
+

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentAutoConfiguration.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentAutoConfiguration.java
new file mode 100644
index 0000000..82a7266
--- /dev/null
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.disruptor.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.disruptor.DisruptorComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DisruptorComponentConfiguration.class)
+public class DisruptorComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DisruptorComponent.class)
+    public DisruptorComponent configureComponent(CamelContext camelContext,
+            DisruptorComponentConfiguration configuration) throws Exception {
+        DisruptorComponent component = new DisruptorComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
new file mode 100644
index 0000000..68dd695
--- /dev/null
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.disruptor.springboot;
+
+import org.apache.camel.component.disruptor.DisruptorProducerType;
+import org.apache.camel.component.disruptor.DisruptorWaitStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The disruptor component provides asynchronous SEDA behavior using LMAX
+ * Disruptor.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.disruptor")
+public class DisruptorComponentConfiguration {
+
+    /**
+     * To configure the default number of concurrent consumers
+     */
+    private int defaultConcurrentConsumers;
+    /**
+     * To configure the default value for multiple consumers
+     */
+    private boolean defaultMultipleConsumers;
+    /**
+     * To configure the default value for DisruptorProducerType The default
+     * value is Multi.
+     */
+    private DisruptorProducerType defaultProducerType;
+    /**
+     * To configure the default value for DisruptorWaitStrategy The default
+     * value is Blocking.
+     */
+    private DisruptorWaitStrategy defaultWaitStrategy;
+    /**
+     * To configure the default value for block when full The default value is
+     * true.
+     */
+    private boolean defaultBlockWhenFull;
+    /**
+     * To configure the ring buffer size
+     */
+    @Deprecated
+    private int queueSize;
+    /**
+     * To configure the ring buffer size
+     */
+    private int bufferSize;
+
+    public int getDefaultConcurrentConsumers() {
+        return defaultConcurrentConsumers;
+    }
+
+    public void setDefaultConcurrentConsumers(int defaultConcurrentConsumers) {
+        this.defaultConcurrentConsumers = defaultConcurrentConsumers;
+    }
+
+    public boolean isDefaultMultipleConsumers() {
+        return defaultMultipleConsumers;
+    }
+
+    public void setDefaultMultipleConsumers(boolean defaultMultipleConsumers) {
+        this.defaultMultipleConsumers = defaultMultipleConsumers;
+    }
+
+    public DisruptorProducerType getDefaultProducerType() {
+        return defaultProducerType;
+    }
+
+    public void setDefaultProducerType(DisruptorProducerType defaultProducerType) {
+        this.defaultProducerType = defaultProducerType;
+    }
+
+    public DisruptorWaitStrategy getDefaultWaitStrategy() {
+        return defaultWaitStrategy;
+    }
+
+    public void setDefaultWaitStrategy(DisruptorWaitStrategy defaultWaitStrategy) {
+        this.defaultWaitStrategy = defaultWaitStrategy;
+    }
+
+    public boolean isDefaultBlockWhenFull() {
+        return defaultBlockWhenFull;
+    }
+
+    public void setDefaultBlockWhenFull(boolean defaultBlockWhenFull) {
+        this.defaultBlockWhenFull = defaultBlockWhenFull;
+    }
+
+    public int getQueueSize() {
+        return queueSize;
+    }
+
+    public void setQueueSize(int queueSize) {
+        this.queueSize = queueSize;
+    }
+
+    public int getBufferSize() {
+        return bufferSize;
+    }
+
+    public void setBufferSize(int bufferSize) {
+        this.bufferSize = bufferSize;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentAutoConfiguration.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentAutoConfiguration.java
new file mode 100644
index 0000000..94574ee
--- /dev/null
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.disruptor.vm.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.disruptor.vm.DisruptorVmComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DisruptorVmComponentConfiguration.class)
+public class DisruptorVmComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DisruptorVmComponent.class)
+    public DisruptorVmComponent configureComponent(CamelContext camelContext,
+            DisruptorVmComponentConfiguration configuration) throws Exception {
+        DisruptorVmComponent component = new DisruptorVmComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
new file mode 100644
index 0000000..a194f49
--- /dev/null
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.disruptor.vm.springboot;
+
+import org.apache.camel.component.disruptor.DisruptorProducerType;
+import org.apache.camel.component.disruptor.DisruptorWaitStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The disruptor component provides asynchronous SEDA behavior using LMAX
+ * Disruptor.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.disruptor-vm")
+public class DisruptorVmComponentConfiguration {
+
+    /**
+     * To configure the default number of concurrent consumers
+     */
+    private int defaultConcurrentConsumers;
+    /**
+     * To configure the default value for multiple consumers
+     */
+    private boolean defaultMultipleConsumers;
+    /**
+     * To configure the default value for DisruptorProducerType The default
+     * value is Multi.
+     */
+    private DisruptorProducerType defaultProducerType;
+    /**
+     * To configure the default value for DisruptorWaitStrategy The default
+     * value is Blocking.
+     */
+    private DisruptorWaitStrategy defaultWaitStrategy;
+    /**
+     * To configure the default value for block when full The default value is
+     * true.
+     */
+    private boolean defaultBlockWhenFull;
+    /**
+     * To configure the ring buffer size
+     */
+    @Deprecated
+    private int queueSize;
+    /**
+     * To configure the ring buffer size
+     */
+    private int bufferSize;
+
+    public int getDefaultConcurrentConsumers() {
+        return defaultConcurrentConsumers;
+    }
+
+    public void setDefaultConcurrentConsumers(int defaultConcurrentConsumers) {
+        this.defaultConcurrentConsumers = defaultConcurrentConsumers;
+    }
+
+    public boolean isDefaultMultipleConsumers() {
+        return defaultMultipleConsumers;
+    }
+
+    public void setDefaultMultipleConsumers(boolean defaultMultipleConsumers) {
+        this.defaultMultipleConsumers = defaultMultipleConsumers;
+    }
+
+    public DisruptorProducerType getDefaultProducerType() {
+        return defaultProducerType;
+    }
+
+    public void setDefaultProducerType(DisruptorProducerType defaultProducerType) {
+        this.defaultProducerType = defaultProducerType;
+    }
+
+    public DisruptorWaitStrategy getDefaultWaitStrategy() {
+        return defaultWaitStrategy;
+    }
+
+    public void setDefaultWaitStrategy(DisruptorWaitStrategy defaultWaitStrategy) {
+        this.defaultWaitStrategy = defaultWaitStrategy;
+    }
+
+    public boolean isDefaultBlockWhenFull() {
+        return defaultBlockWhenFull;
+    }
+
+    public void setDefaultBlockWhenFull(boolean defaultBlockWhenFull) {
+        this.defaultBlockWhenFull = defaultBlockWhenFull;
+    }
+
+    public int getQueueSize() {
+        return queueSize;
+    }
+
+    public void setQueueSize(int queueSize) {
+        this.queueSize = queueSize;
+    }
+
+    public int getBufferSize() {
+        return bufferSize;
+    }
+
+    public void setBufferSize(int bufferSize) {
+        this.bufferSize = bufferSize;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-disruptor/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/resources/META-INF/spring.factories b/components/camel-disruptor/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7ab3ca3
--- /dev/null
+++ b/components/camel-disruptor/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.disruptor.springboot.DisruptorComponentAutoConfiguration,\
+org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentAutoConfiguration
+

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentAutoConfiguration.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentAutoConfiguration.java
new file mode 100644
index 0000000..07c50a5
--- /dev/null
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.docker.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.docker.DockerComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(DockerComponentConfiguration.class)
+public class DockerComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(DockerComponent.class)
+    public DockerComponent configureComponent(CamelContext camelContext,
+            DockerComponentConfiguration configuration) throws Exception {
+        DockerComponent component = new DockerComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
new file mode 100644
index 0000000..3a0d850
--- /dev/null
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.docker.springboot;
+
+import org.apache.camel.component.docker.DockerConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The docker component is used for managing Docker containers.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.docker")
+public class DockerComponentConfiguration {
+
+    /**
+     * To use the shared docker configuration
+     */
+    private DockerConfiguration configuration;
+
+    public DockerConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(DockerConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-docker/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/resources/META-INF/spring.factories b/components/camel-docker/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..04d76c0
--- /dev/null
+++ b/components/camel-docker/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.docker.springboot.DockerComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentAutoConfiguration.java b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentAutoConfiguration.java
new file mode 100644
index 0000000..d1bc421
--- /dev/null
+++ b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ejb.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ejb.EjbComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(EjbComponentConfiguration.class)
+public class EjbComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(EjbComponent.class)
+    public EjbComponent configureComponent(CamelContext camelContext,
+            EjbComponentConfiguration configuration) throws Exception {
+        EjbComponent component = new EjbComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentConfiguration.java b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentConfiguration.java
new file mode 100644
index 0000000..3ff10d9
--- /dev/null
+++ b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/springboot/EjbComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ejb.springboot;
+
+import java.util.Properties;
+import javax.naming.Context;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The ejb component is for invoking EJB Java beans from Camel.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ejb")
+public class EjbComponentConfiguration {
+
+    /**
+     * The Context to use for looking up the EJBs
+     */
+    private Context context;
+    /**
+     * Properties for creating javax.naming.Context if a context has not been
+     * configured.
+     */
+    private Properties properties;
+
+    public Context getContext() {
+        return context;
+    }
+
+    public void setContext(Context context) {
+        this.context = context;
+    }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+}
\ No newline at end of file


[09/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ejb/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ejb/src/main/resources/META-INF/spring.factories b/components/camel-ejb/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..807a34b
--- /dev/null
+++ b/components/camel-ejb/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ejb.springboot.EjbComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentAutoConfiguration.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentAutoConfiguration.java
new file mode 100644
index 0000000..0282a65
--- /dev/null
+++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.elasticsearch.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.elasticsearch.ElasticsearchComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ElasticsearchComponentConfiguration.class)
+public class ElasticsearchComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ElasticsearchComponent.class)
+    public ElasticsearchComponent configureComponent(CamelContext camelContext,
+            ElasticsearchComponentConfiguration configuration) throws Exception {
+        ElasticsearchComponent component = new ElasticsearchComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
new file mode 100644
index 0000000..c375745
--- /dev/null
+++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.elasticsearch.springboot;
+
+import org.elasticsearch.client.Client;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The elasticsearch component is used for interfacing with ElasticSearch
+ * server.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.elasticsearch")
+public class ElasticsearchComponentConfiguration {
+
+    /**
+     * To use an existing configured Elasticsearch client instead of creating a
+     * client per endpoint.
+     */
+    private Client client;
+
+    public Client getClient() {
+        return client;
+    }
+
+    public void setClient(Client client) {
+        this.client = client;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elasticsearch/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-elasticsearch/src/main/resources/META-INF/spring.factories b/components/camel-elasticsearch/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a952c37
--- /dev/null
+++ b/components/camel-elasticsearch/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentAutoConfiguration.java b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentAutoConfiguration.java
new file mode 100644
index 0000000..7a0c0f6
--- /dev/null
+++ b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.elsql.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.elsql.ElsqlComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ElsqlComponentConfiguration.class)
+public class ElsqlComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ElsqlComponent.class)
+    public ElsqlComponent configureComponent(CamelContext camelContext,
+            ElsqlComponentConfiguration configuration) throws Exception {
+        ElsqlComponent component = new ElsqlComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentConfiguration.java b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentConfiguration.java
new file mode 100644
index 0000000..c36b95e
--- /dev/null
+++ b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentConfiguration.java
@@ -0,0 +1,86 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.elsql.springboot;
+
+import javax.sql.DataSource;
+import com.opengamma.elsql.ElSqlConfig;
+import org.apache.camel.component.elsql.ElSqlDatabaseVendor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The elsql component is an extension to the existing SQL Component that uses
+ * ElSql to define the SQL queries.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.elsql")
+public class ElsqlComponentConfiguration {
+
+    /**
+     * To use a vendor specific com.opengamma.elsql.ElSqlConfig
+     */
+    private ElSqlDatabaseVendor databaseVendor;
+    /**
+     * Sets the DataSource to use to communicate with the database.
+     */
+    private DataSource dataSource;
+    /**
+     * To use a specific configured ElSqlConfig. It may be better to use the
+     * databaseVendor option instead.
+     */
+    private ElSqlConfig elSqlConfig;
+    /**
+     * The resource file which contains the elsql SQL statements to use. You can
+     * specify multiple resources separated by comma. The resources are loaded
+     * on the classpath by default you can prefix with file: to load from file
+     * system. Notice you can set this option on the component and then you do
+     * not have to configure this on the endpoint.
+     */
+    private String resourceUri;
+
+    public ElSqlDatabaseVendor getDatabaseVendor() {
+        return databaseVendor;
+    }
+
+    public void setDatabaseVendor(ElSqlDatabaseVendor databaseVendor) {
+        this.databaseVendor = databaseVendor;
+    }
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+    public void setDataSource(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
+
+    public ElSqlConfig getElSqlConfig() {
+        return elSqlConfig;
+    }
+
+    public void setElSqlConfig(ElSqlConfig elSqlConfig) {
+        this.elSqlConfig = elSqlConfig;
+    }
+
+    public String getResourceUri() {
+        return resourceUri;
+    }
+
+    public void setResourceUri(String resourceUri) {
+        this.resourceUri = resourceUri;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-elsql/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-elsql/src/main/resources/META-INF/spring.factories b/components/camel-elsql/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..3b79893
--- /dev/null
+++ b/components/camel-elsql/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.elsql.springboot.ElsqlComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentAutoConfiguration.java b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentAutoConfiguration.java
new file mode 100644
index 0000000..b0715e8
--- /dev/null
+++ b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.eventadmin.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.eventadmin.EventAdminComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(EventAdminComponentConfiguration.class)
+public class EventAdminComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(EventAdminComponent.class)
+    public EventAdminComponent configureComponent(CamelContext camelContext,
+            EventAdminComponentConfiguration configuration) throws Exception {
+        EventAdminComponent component = new EventAdminComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentConfiguration.java b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentConfiguration.java
new file mode 100644
index 0000000..245c8e5
--- /dev/null
+++ b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/springboot/EventAdminComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.eventadmin.springboot;
+
+import org.osgi.framework.BundleContext;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The eventadmin component can be used in an OSGi environment to receive OSGi
+ * EventAdmin events and process them.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.eventadmin")
+public class EventAdminComponentConfiguration {
+
+    /**
+     * The OSGi BundleContext is automatic injected by Camel
+     */
+    private BundleContext bundleContext;
+
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+    public void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-eventadmin/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-eventadmin/src/main/resources/META-INF/spring.factories b/components/camel-eventadmin/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..d6c2057
--- /dev/null
+++ b/components/camel-eventadmin/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.eventadmin.springboot.EventAdminComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentAutoConfiguration.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentAutoConfiguration.java
new file mode 100644
index 0000000..09bd2c5
--- /dev/null
+++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.facebook.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.facebook.FacebookComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(FacebookComponentConfiguration.class)
+public class FacebookComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(FacebookComponent.class)
+    public FacebookComponent configureComponent(CamelContext camelContext,
+            FacebookComponentConfiguration configuration) throws Exception {
+        FacebookComponent component = new FacebookComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentConfiguration.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentConfiguration.java
new file mode 100644
index 0000000..850b557
--- /dev/null
+++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.facebook.springboot;
+
+import org.apache.camel.component.facebook.config.FacebookConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The Facebook component provides access to all of the Facebook APIs accessible
+ * using Facebook4J.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.facebook")
+public class FacebookComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private FacebookConfiguration configuration;
+
+    public FacebookConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(FacebookConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-facebook/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/resources/META-INF/spring.factories b/components/camel-facebook/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..49cf4f2
--- /dev/null
+++ b/components/camel-facebook/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.facebook.springboot.FacebookComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentAutoConfiguration.java b/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentAutoConfiguration.java
new file mode 100644
index 0000000..27185ec
--- /dev/null
+++ b/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.flink.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.flink.FlinkComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(FlinkComponentConfiguration.class)
+public class FlinkComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(FlinkComponent.class)
+    public FlinkComponent configureComponent(CamelContext camelContext,
+            FlinkComponentConfiguration configuration) throws Exception {
+        FlinkComponent component = new FlinkComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentConfiguration.java b/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentConfiguration.java
new file mode 100644
index 0000000..6e25062
--- /dev/null
+++ b/components/camel-flink/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentConfiguration.java
@@ -0,0 +1,81 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.flink.springboot;
+
+import org.apache.camel.component.flink.DataSetCallback;
+import org.apache.camel.component.flink.DataStreamCallback;
+import org.apache.flink.api.java.DataSet;
+import org.apache.flink.streaming.api.datastream.DataStream;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The flink component can be used to send DataSet jobs to Apache Flink cluster.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.flink")
+public class FlinkComponentConfiguration {
+
+    /**
+     * DataSet to compute against.
+     */
+    private DataSet dataSet;
+    /**
+     * DataStream to compute against.
+     */
+    private DataStream dataStream;
+    /**
+     * Function performing action against a DataSet.
+     */
+    private DataSetCallback dataSetCallback;
+    /**
+     * Function performing action against a DataStream.
+     */
+    private DataStreamCallback dataStreamCallback;
+
+    public DataSet getDataSet() {
+        return dataSet;
+    }
+
+    public void setDataSet(DataSet dataSet) {
+        this.dataSet = dataSet;
+    }
+
+    public DataStream getDataStream() {
+        return dataStream;
+    }
+
+    public void setDataStream(DataStream dataStream) {
+        this.dataStream = dataStream;
+    }
+
+    public DataSetCallback getDataSetCallback() {
+        return dataSetCallback;
+    }
+
+    public void setDataSetCallback(DataSetCallback dataSetCallback) {
+        this.dataSetCallback = dataSetCallback;
+    }
+
+    public DataStreamCallback getDataStreamCallback() {
+        return dataStreamCallback;
+    }
+
+    public void setDataStreamCallback(DataStreamCallback dataStreamCallback) {
+        this.dataStreamCallback = dataStreamCallback;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-flink/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/resources/META-INF/spring.factories b/components/camel-flink/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..12d3fd7
--- /dev/null
+++ b/components/camel-flink/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.flink.springboot.FlinkComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentAutoConfiguration.java b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentAutoConfiguration.java
new file mode 100644
index 0000000..7370728
--- /dev/null
+++ b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.freemarker.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.freemarker.FreemarkerComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(FreemarkerComponentConfiguration.class)
+public class FreemarkerComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(FreemarkerComponent.class)
+    public FreemarkerComponent configureComponent(CamelContext camelContext,
+            FreemarkerComponentConfiguration configuration) throws Exception {
+        FreemarkerComponent component = new FreemarkerComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentConfiguration.java b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentConfiguration.java
new file mode 100644
index 0000000..a03cf42
--- /dev/null
+++ b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.freemarker.springboot;
+
+import freemarker.template.Configuration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Transforms the message using a FreeMarker template.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.freemarker")
+public class FreemarkerComponentConfiguration {
+
+    /**
+     * To use an existing freemarker.template.Configuration instance as the
+     * configuration.
+     */
+    private Configuration configuration;
+
+    public Configuration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(Configuration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-freemarker/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/resources/META-INF/spring.factories b/components/camel-freemarker/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..90978d0
--- /dev/null
+++ b/components/camel-freemarker/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.freemarker.springboot.FreemarkerComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentAutoConfiguration.java b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentAutoConfiguration.java
new file mode 100644
index 0000000..fdc4296
--- /dev/null
+++ b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ganglia.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ganglia.GangliaComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(GangliaComponentConfiguration.class)
+public class GangliaComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(GangliaComponent.class)
+    public GangliaComponent configureComponent(CamelContext camelContext,
+            GangliaComponentConfiguration configuration) throws Exception {
+        GangliaComponent component = new GangliaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
new file mode 100644
index 0000000..1744745
--- /dev/null
+++ b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ganglia.springboot;
+
+import org.apache.camel.component.ganglia.GangliaConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The ganglia component is used for sending metrics to the Ganglia monitoring
+ * system.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ganglia")
+public class GangliaComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private GangliaConfiguration configuration;
+
+    public GangliaConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(GangliaConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ganglia/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ganglia/src/main/resources/META-INF/spring.factories b/components/camel-ganglia/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..330482a
--- /dev/null
+++ b/components/camel-ganglia/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ganglia.springboot.GangliaComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
new file mode 100644
index 0000000..58ec0aa0
--- /dev/null
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.calendar.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.google.calendar.GoogleCalendarComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(GoogleCalendarComponentConfiguration.class)
+public class GoogleCalendarComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(GoogleCalendarComponent.class)
+    public GoogleCalendarComponent configureComponent(
+            CamelContext camelContext,
+            GoogleCalendarComponentConfiguration configuration)
+            throws Exception {
+        GoogleCalendarComponent component = new GoogleCalendarComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
new file mode 100644
index 0000000..ebc6f52
--- /dev/null
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.calendar.springboot;
+
+import org.apache.camel.component.google.calendar.GoogleCalendarClientFactory;
+import org.apache.camel.component.google.calendar.GoogleCalendarConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The google-calendar component provides access to Google Calendar.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.google-calendar")
+public class GoogleCalendarComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private GoogleCalendarConfiguration configuration;
+    /**
+     * To use the GoogleCalendarClientFactory as factory for creating the
+     * client. Will by default use BatchGoogleCalendarClientFactory
+     */
+    private GoogleCalendarClientFactory clientFactory;
+
+    public GoogleCalendarConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(GoogleCalendarConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public GoogleCalendarClientFactory getClientFactory() {
+        return clientFactory;
+    }
+
+    public void setClientFactory(GoogleCalendarClientFactory clientFactory) {
+        this.clientFactory = clientFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-calendar/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-google-calendar/src/main/resources/META-INF/spring.factories b/components/camel-google-calendar/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..dc04bbf
--- /dev/null
+++ b/components/camel-google-calendar/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
new file mode 100644
index 0000000..2f0eec7
--- /dev/null
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.drive.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.google.drive.GoogleDriveComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(GoogleDriveComponentConfiguration.class)
+public class GoogleDriveComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(GoogleDriveComponent.class)
+    public GoogleDriveComponent configureComponent(CamelContext camelContext,
+            GoogleDriveComponentConfiguration configuration) throws Exception {
+        GoogleDriveComponent component = new GoogleDriveComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
new file mode 100644
index 0000000..bad8424
--- /dev/null
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.drive.springboot;
+
+import org.apache.camel.component.google.drive.GoogleDriveClientFactory;
+import org.apache.camel.component.google.drive.GoogleDriveConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The google-drive component provides access to Google Drive file storage
+ * service.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.google-drive")
+public class GoogleDriveComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private GoogleDriveConfiguration configuration;
+    /**
+     * To use the GoogleCalendarClientFactory as factory for creating the
+     * client. Will by default use BatchGoogleDriveClientFactory
+     */
+    private GoogleDriveClientFactory clientFactory;
+
+    public GoogleDriveConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(GoogleDriveConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public GoogleDriveClientFactory getClientFactory() {
+        return clientFactory;
+    }
+
+    public void setClientFactory(GoogleDriveClientFactory clientFactory) {
+        this.clientFactory = clientFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-drive/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/resources/META-INF/spring.factories b/components/camel-google-drive/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..360b54c
--- /dev/null
+++ b/components/camel-google-drive/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.google.drive.springboot.GoogleDriveComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
new file mode 100644
index 0000000..3c1019f
--- /dev/null
+++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.mail.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.google.mail.GoogleMailComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(GoogleMailComponentConfiguration.class)
+public class GoogleMailComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(GoogleMailComponent.class)
+    public GoogleMailComponent configureComponent(CamelContext camelContext,
+            GoogleMailComponentConfiguration configuration) throws Exception {
+        GoogleMailComponent component = new GoogleMailComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
new file mode 100644
index 0000000..06918ec
--- /dev/null
+++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.google.mail.springboot;
+
+import org.apache.camel.component.google.mail.GoogleMailClientFactory;
+import org.apache.camel.component.google.mail.GoogleMailConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The google-mail component provides access to Google Mail.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.google-mail")
+public class GoogleMailComponentConfiguration {
+
+    /**
+     * To use the shared configuration
+     */
+    private GoogleMailConfiguration configuration;
+    /**
+     * To use the GoogleCalendarClientFactory as factory for creating the
+     * client. Will by default use BatchGoogleMailClientFactory
+     */
+    private GoogleMailClientFactory clientFactory;
+
+    public GoogleMailConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(GoogleMailConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public GoogleMailClientFactory getClientFactory() {
+        return clientFactory;
+    }
+
+    public void setClientFactory(GoogleMailClientFactory clientFactory) {
+        this.clientFactory = clientFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-google-mail/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-google-mail/src/main/resources/META-INF/spring.factories b/components/camel-google-mail/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..0640543
--- /dev/null
+++ b/components/camel-google-mail/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.google.mail.springboot.GoogleMailComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentAutoConfiguration.java b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentAutoConfiguration.java
new file mode 100644
index 0000000..4dabc56
--- /dev/null
+++ b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.guava.eventbus.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.guava.eventbus.GuavaEventBusComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(GuavaEventBusComponentConfiguration.class)
+public class GuavaEventBusComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(GuavaEventBusComponent.class)
+    public GuavaEventBusComponent configureComponent(CamelContext camelContext,
+            GuavaEventBusComponentConfiguration configuration) throws Exception {
+        GuavaEventBusComponent component = new GuavaEventBusComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentConfiguration.java b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentConfiguration.java
new file mode 100644
index 0000000..932a8b5
--- /dev/null
+++ b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentConfiguration.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.guava.eventbus.springboot;
+
+import com.google.common.eventbus.EventBus;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The guava-eventbus component provides integration bridge between Camel and
+ * Google Guava EventBus.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.guava-eventbus")
+public class GuavaEventBusComponentConfiguration {
+
+    /**
+     * To use the given Guava EventBus instance
+     */
+    private EventBus eventBus;
+    /**
+     * The interface with method(s) marked with the Subscribe annotation.
+     * Dynamic proxy will be created over the interface so it could be
+     * registered as the EventBus listener. Particularly useful when creating
+     * multi-event listeners and for handling DeadEvent properly. This option
+     * cannot be used together with eventClass option.
+     */
+    private Class listenerInterface;
+
+    public EventBus getEventBus() {
+        return eventBus;
+    }
+
+    public void setEventBus(EventBus eventBus) {
+        this.eventBus = eventBus;
+    }
+
+    public Class getListenerInterface() {
+        return listenerInterface;
+    }
+
+    public void setListenerInterface(Class listenerInterface) {
+        this.listenerInterface = listenerInterface;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-guava-eventbus/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-guava-eventbus/src/main/resources/META-INF/spring.factories b/components/camel-guava-eventbus/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..c3fab29
--- /dev/null
+++ b/components/camel-guava-eventbus/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentAutoConfiguration.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentAutoConfiguration.java
new file mode 100644
index 0000000..ce27150
--- /dev/null
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hazelcast.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.hazelcast.HazelcastComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(HazelcastComponentConfiguration.class)
+public class HazelcastComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(HazelcastComponent.class)
+    public HazelcastComponent configureComponent(CamelContext camelContext,
+            HazelcastComponentConfiguration configuration) throws Exception {
+        HazelcastComponent component = new HazelcastComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentConfiguration.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentConfiguration.java
new file mode 100644
index 0000000..2a418f7
--- /dev/null
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/springboot/HazelcastComponentConfiguration.java
@@ -0,0 +1,45 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hazelcast.springboot;
+
+import com.hazelcast.core.HazelcastInstance;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The hazelcast component allows you to work with the Hazelcast distributed
+ * data grid / cache.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.hazelcast")
+public class HazelcastComponentConfiguration {
+
+    /**
+     * The hazelcast instance reference which can be used for hazelcast
+     * endpoint. If you don't specify the instance reference camel use the
+     * default hazelcast instance from the camel-hazelcast instance.
+     */
+    private HazelcastInstance hazelcastInstance;
+
+    public HazelcastInstance getHazelcastInstance() {
+        return hazelcastInstance;
+    }
+
+    public void setHazelcastInstance(HazelcastInstance hazelcastInstance) {
+        this.hazelcastInstance = hazelcastInstance;
+    }
+}
\ No newline at end of file


[11/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
new file mode 100644
index 0000000..ad280d1
--- /dev/null
+++ b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.ws.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ahc.ws.WsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(WsComponentConfiguration.class)
+public class WsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(WsComponent.class)
+    public WsComponent configureComponent(CamelContext camelContext,
+            WsComponentConfiguration configuration) throws Exception {
+        WsComponent component = new WsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
new file mode 100644
index 0000000..617585e
--- /dev/null
+++ b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
@@ -0,0 +1,118 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.ws.springboot;
+
+import com.ning.http.client.AsyncHttpClient;
+import com.ning.http.client.AsyncHttpClientConfig;
+import org.apache.camel.component.ahc.AhcBinding;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To exchange data with external Websocket servers using Async Http Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ahc-wss")
+public class WsComponentConfiguration {
+
+    /**
+     * To use a custom AsyncHttpClient
+     */
+    private AsyncHttpClient client;
+    /**
+     * To use a custom AhcBinding which allows to control how to bind between
+     * AHC and Camel.
+     */
+    private AhcBinding binding;
+    /**
+     * To configure the AsyncHttpClient to use a custom
+     * com.ning.http.client.AsyncHttpClientConfig instance.
+     */
+    private AsyncHttpClientConfig clientConfig;
+    /**
+     * Reference to a org.apache.camel.util.jsse.SSLContextParameters in the
+     * Registry. Note that configuring this option will override any SSL/TLS
+     * configuration options provided through the clientConfig option at the
+     * endpoint or component level.
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public AsyncHttpClient getClient() {
+        return client;
+    }
+
+    public void setClient(AsyncHttpClient client) {
+        this.client = client;
+    }
+
+    public AhcBinding getBinding() {
+        return binding;
+    }
+
+    public void setBinding(AhcBinding binding) {
+        this.binding = binding;
+    }
+
+    public AsyncHttpClientConfig getClientConfig() {
+        return clientConfig;
+    }
+
+    public void setClientConfig(AsyncHttpClientConfig clientConfig) {
+        this.clientConfig = clientConfig;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc-ws/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ahc-ws/src/main/resources/META-INF/spring.factories b/components/camel-ahc-ws/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..0af731e
--- /dev/null
+++ b/components/camel-ahc-ws/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ahc.ws.springboot.WsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
index 58b1afd..6da5858 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
@@ -21,7 +21,6 @@ import java.util.Map;
 
 import com.ning.http.client.AsyncHttpClient;
 import com.ning.http.client.AsyncHttpClientConfig;
-
 import com.ning.http.client.Realm;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
@@ -29,7 +28,6 @@ import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
 import org.apache.camel.util.jsse.SSLContextParameters;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
new file mode 100644
index 0000000..ec10c2e
--- /dev/null
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ahc.AhcComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(AhcComponentConfiguration.class)
+public class AhcComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(AhcComponent.class)
+    public AhcComponent configureComponent(CamelContext camelContext,
+            AhcComponentConfiguration configuration) throws Exception {
+        AhcComponent component = new AhcComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
new file mode 100644
index 0000000..001ede5
--- /dev/null
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
@@ -0,0 +1,118 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.springboot;
+
+import com.ning.http.client.AsyncHttpClient;
+import com.ning.http.client.AsyncHttpClientConfig;
+import org.apache.camel.component.ahc.AhcBinding;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To call external HTTP services using Async Http Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ahc")
+public class AhcComponentConfiguration {
+
+    /**
+     * To use a custom AsyncHttpClient
+     */
+    private AsyncHttpClient client;
+    /**
+     * To use a custom AhcBinding which allows to control how to bind between
+     * AHC and Camel.
+     */
+    private AhcBinding binding;
+    /**
+     * To configure the AsyncHttpClient to use a custom
+     * com.ning.http.client.AsyncHttpClientConfig instance.
+     */
+    private AsyncHttpClientConfig clientConfig;
+    /**
+     * Reference to a org.apache.camel.util.jsse.SSLContextParameters in the
+     * Registry. Note that configuring this option will override any SSL/TLS
+     * configuration options provided through the clientConfig option at the
+     * endpoint or component level.
+     */
+    private SSLContextParameters sslContextParameters;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public AsyncHttpClient getClient() {
+        return client;
+    }
+
+    public void setClient(AsyncHttpClient client) {
+        this.client = client;
+    }
+
+    public AhcBinding getBinding() {
+        return binding;
+    }
+
+    public void setBinding(AhcBinding binding) {
+        this.binding = binding;
+    }
+
+    public AsyncHttpClientConfig getClientConfig() {
+        return clientConfig;
+    }
+
+    public void setClientConfig(AsyncHttpClientConfig clientConfig) {
+        this.clientConfig = clientConfig;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ahc/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/resources/META-INF/spring.factories b/components/camel-ahc/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f82d278
--- /dev/null
+++ b/components/camel-ahc/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ahc.springboot.AhcComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
new file mode 100644
index 0000000..0d3799f
--- /dev/null
+++ b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.amqp.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.amqp.AMQPComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(AMQPComponentConfiguration.class)
+public class AMQPComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(AMQPComponent.class)
+    public AMQPComponent configureComponent(CamelContext camelContext,
+            AMQPComponentConfiguration configuration) throws Exception {
+        AMQPComponent component = new AMQPComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
new file mode 100644
index 0000000..edabd69
--- /dev/null
+++ b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
@@ -0,0 +1,1122 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.amqp.springboot;
+
+import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.component.jms.DefaultTaskExecutorType;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsKeyFormatStrategy;
+import org.apache.camel.component.jms.MessageCreatedStrategy;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
+import org.apache.camel.component.jms.ReplyToType;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.jms.core.JmsOperations;
+import org.springframework.jms.support.converter.MessageConverter;
+import org.springframework.jms.support.destination.DestinationResolver;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.util.ErrorHandler;
+
+/**
+ * Messaging with AMQP protocol using Apache QPid Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.amqp")
+public class AMQPComponentConfiguration {
+
+    /**
+     * To use a shared JMS configuration
+     */
+    private JmsConfiguration configuration;
+    /**
+     * Specifies whether the consumer accept messages while it is stopping. You
+     * may consider enabling this option if you start and stop JMS routes at
+     * runtime while there are still messages enqued on the queue. If this
+     * option is false and you stop the JMS route then messages may be rejected
+     * and the JMS broker would have to attempt redeliveries which yet again may
+     * be rejected and eventually the message may be moved at a dead letter
+     * queue on the JMS broker. To avoid this its recommended to enable this
+     * option.
+     */
+    private boolean acceptMessagesWhileStopping;
+    /**
+     * Whether the DefaultMessageListenerContainer used in the reply managers
+     * for request-reply messaging allow the
+     * DefaultMessageListenerContainer.runningAllowed flag to quick stop in case
+     * JmsConfigurationisAcceptMessagesWhileStopping is enabled and
+     * org.apache.camel.CamelContext is currently being stopped. This quick stop
+     * ability is enabled by default in the regular JMS consumers but to enable
+     * for reply managers you must enable this flag.
+     */
+    private boolean allowReplyManagerQuickStop;
+    /**
+     * The JMS acknowledgement mode defined as an Integer. Allows you to set
+     * vendor-specific extensions to the acknowledgment mode. For the regular
+     * modes it is preferable to use the acknowledgementModeName instead.
+     */
+    private int acknowledgementMode;
+    /**
+     * Enables eager loading of JMS properties as soon as a message is loaded
+     * which generally is inefficient as the JMS properties may not be required
+     * but sometimes can catch early any issues with the underlying JMS provider
+     * and the use of JMS properties
+     */
+    private boolean eagerLoadingOfProperties;
+    /**
+     * The JMS acknowledgement name which is one of: SESSION_TRANSACTED
+     * CLIENT_ACKNOWLEDGE AUTO_ACKNOWLEDGE DUPS_OK_ACKNOWLEDGE
+     */
+    private String acknowledgementModeName;
+    /**
+     * Specifies whether the consumer container should auto-startup.
+     */
+    private boolean autoStartup;
+    /**
+     * Sets the cache level by ID for the underlying JMS resources. See
+     * cacheLevelName option for more details.
+     */
+    private int cacheLevel;
+    /**
+     * Sets the cache level by name for the underlying JMS resources. Possible
+     * values are: CACHE_AUTO CACHE_CONNECTION CACHE_CONSUMER CACHE_NONE and
+     * CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring
+     * documentation and Transactions Cache Levels for more information.
+     */
+    private String cacheLevelName;
+    /**
+     * Sets the cache level by name for the reply consumer when doing
+     * request/reply over JMS. This option only applies when using fixed reply
+     * queues (not temporary). Camel will by default use: CACHE_CONSUMER for
+     * exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared
+     * without replyToSelectorName. Some JMS brokers such as IBM WebSphere may
+     * require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If
+     * using temporary queues then CACHE_NONE is not allowed and you must use a
+     * higher value such as CACHE_CONSUMER or CACHE_SESSION.
+     */
+    private String replyToCacheLevelName;
+    /**
+     * Sets the JMS client ID to use. Note that this value if specified must be
+     * unique and can only be used by a single JMS connection instance. It is
+     * typically only required for durable topic subscriptions. If using Apache
+     * ActiveMQ you may prefer to use Virtual Topics instead.
+     */
+    private String clientId;
+    /**
+     * Specifies the default number of concurrent consumers when consuming from
+     * JMS (not for request/reply over JMS). See also the maxMessagesPerTask
+     * option to control dynamic scaling up/down of threads. When doing
+     * request/reply over JMS then the option replyToConcurrentConsumers is used
+     * to control number of concurrent consumers on the reply message listener.
+     */
+    private int concurrentConsumers;
+    /**
+     * Specifies the default number of concurrent consumers when doing
+     * request/reply over JMS. See also the maxMessagesPerTask option to control
+     * dynamic scaling up/down of threads.
+     */
+    private int replyToConcurrentConsumers;
+    /**
+     * Sets the default connection factory to be use
+     */
+    private ConnectionFactory connectionFactory;
+    /**
+     * Specifies whether persistent delivery is used by default.
+     */
+    private boolean deliveryPersistent;
+    /**
+     * Specifies the delivery mode to be used. Possible values are Possibles
+     * values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1
+     * and PERSISTENT = 2.
+     */
+    private Integer deliveryMode;
+    /**
+     * The durable subscriber name for specifying durable topic subscriptions.
+     * The clientId option must be configured as well.
+     */
+    private String durableSubscriptionName;
+    /**
+     * Specifies the JMS Exception Listener that is to be notified of any
+     * underlying JMS exceptions.
+     */
+    private ExceptionListener exceptionListener;
+    /**
+     * Specifies a org.springframework.util.ErrorHandler to be invoked in case
+     * of any uncaught exceptions thrown while processing a Message. By default
+     * these exceptions will be logged at the WARN level if no errorHandler has
+     * been configured. You can configure logging level and whether stack traces
+     * should be logged using errorHandlerLoggingLevel and
+     * errorHandlerLogStackTrace options. This makes it much easier to configure
+     * than having to code a custom errorHandler.
+     */
+    private ErrorHandler errorHandler;
+    /**
+     * Allows to configure the default errorHandler logging level for logging
+     * uncaught exceptions.
+     */
+    private LoggingLevel errorHandlerLoggingLevel;
+    /**
+     * Allows to control whether stacktraces should be logged or not by the
+     * default errorHandler.
+     */
+    private boolean errorHandlerLogStackTrace;
+    /**
+     * Set if the deliveryMode priority or timeToLive qualities of service
+     * should be used when sending messages. This option is based on Spring's
+     * JmsTemplate. The deliveryMode priority and timeToLive options are applied
+     * to the current endpoint. This contrasts with the preserveMessageQos
+     * option which operates at message granularity reading QoS properties
+     * exclusively from the Camel In message headers.
+     */
+    private boolean explicitQosEnabled;
+    /**
+     * Specifies whether the listener session should be exposed when consuming
+     * messages.
+     */
+    private boolean exposeListenerSession;
+    /**
+     * Specifies the limit for idle executions of a receive task not having
+     * received any message within its execution. If this limit is reached the
+     * task will shut down and leave receiving to other executing tasks (in the
+     * case of dynamic scheduling; see the maxConcurrentConsumers setting).
+     * There is additional doc available from Spring.
+     */
+    private int idleTaskExecutionLimit;
+    /**
+     * Specify the limit for the number of consumers that are allowed to be idle
+     * at any given time.
+     */
+    private int idleConsumerLimit;
+    /**
+     * Specifies the maximum number of concurrent consumers when consuming from
+     * JMS (not for request/reply over JMS). See also the maxMessagesPerTask
+     * option to control dynamic scaling up/down of threads. When doing
+     * request/reply over JMS then the option replyToMaxConcurrentConsumers is
+     * used to control number of concurrent consumers on the reply message
+     * listener.
+     */
+    private int maxConcurrentConsumers;
+    /**
+     * Specifies the maximum number of concurrent consumers when using
+     * request/reply over JMS. See also the maxMessagesPerTask option to control
+     * dynamic scaling up/down of threads.
+     */
+    private int replyToMaxConcurrentConsumers;
+    /**
+     * Specifies the maximum number of concurrent consumers for continue routing
+     * when timeout occurred when using request/reply over JMS.
+     */
+    private int replyOnTimeoutToMaxConcurrentConsumers;
+    /**
+     * The number of messages per task. -1 is unlimited. If you use a range for
+     * concurrent consumers (eg min max) then this option can be used to set a
+     * value to eg 100 to control how fast the consumers will shrink when less
+     * work is required.
+     */
+    private int maxMessagesPerTask;
+    /**
+     * To use a custom Spring
+     * org.springframework.jms.support.converter.MessageConverter so you can be
+     * in control how to map to/from a javax.jms.Message.
+     */
+    private MessageConverter messageConverter;
+    /**
+     * Specifies whether Camel should auto map the received JMS message to a
+     * suited payload type such as javax.jms.TextMessage to a String etc. See
+     * section about how mapping works below for more details.
+     */
+    private boolean mapJmsMessage;
+    /**
+     * When sending specifies whether message IDs should be added.
+     */
+    private boolean messageIdEnabled;
+    /**
+     * Specifies whether timestamps should be enabled by default on sending
+     * messages.
+     */
+    private boolean messageTimestampEnabled;
+    /**
+     * If true Camel will always make a JMS message copy of the message when it
+     * is passed to the producer for sending. Copying the message is needed in
+     * some situations such as when a replyToDestinationSelectorName is set
+     * (incidentally Camel will set the alwaysCopyMessage option to true if a
+     * replyToDestinationSelectorName is set)
+     */
+    private boolean alwaysCopyMessage;
+    /**
+     * Specifies whether JMSMessageID should always be used as JMSCorrelationID
+     * for InOut messages.
+     */
+    private boolean useMessageIDAsCorrelationID;
+    /**
+     * Values greater than 1 specify the message priority when sending (where 0
+     * is the lowest priority and 9 is the highest). The explicitQosEnabled
+     * option must also be enabled in order for this option to have any effect.
+     */
+    private int priority;
+    /**
+     * Specifies whether to inhibit the delivery of messages published by its
+     * own connection.
+     */
+    private boolean pubSubNoLocal;
+    /**
+     * The timeout for receiving messages (in milliseconds).
+     */
+    private long receiveTimeout;
+    /**
+     * Specifies the interval between recovery attempts i.e. when a connection
+     * is being refreshed in milliseconds. The default is 5000 ms that is 5
+     * seconds.
+     */
+    private long recoveryInterval;
+    /**
+     * Deprecated: Enabled by default if you specify a durableSubscriptionName
+     * and a clientId.
+     */
+    @Deprecated
+    private boolean subscriptionDurable;
+    /**
+     * Allows you to specify a custom task executor for consuming messages.
+     */
+    private TaskExecutor taskExecutor;
+    /**
+     * When sending messages specifies the time-to-live of the message (in
+     * milliseconds).
+     */
+    private long timeToLive;
+    /**
+     * Specifies whether to use transacted mode
+     */
+    private boolean transacted;
+    /**
+     * If true Camel will create a JmsTransactionManager if there is no
+     * transactionManager injected when option transacted=true.
+     */
+    private boolean lazyCreateTransactionManager;
+    /**
+     * The Spring transaction manager to use.
+     */
+    private PlatformTransactionManager transactionManager;
+    /**
+     * The name of the transaction to use.
+     */
+    private String transactionName;
+    /**
+     * The timeout value of the transaction (in seconds) if using transacted
+     * mode.
+     */
+    private int transactionTimeout;
+    /**
+     * Specifies whether to test the connection on startup. This ensures that
+     * when Camel starts that all the JMS consumers have a valid connection to
+     * the JMS broker. If a connection cannot be granted then Camel throws an
+     * exception on startup. This ensures that Camel is not started with failed
+     * connections. The JMS producers is tested as well.
+     */
+    private boolean testConnectionOnStartup;
+    /**
+     * Whether to startup the JmsConsumer message listener asynchronously when
+     * starting a route. For example if a JmsConsumer cannot get a connection to
+     * a remote JMS broker then it may block while retrying and/or failover.
+     * This will cause Camel to block while starting routes. By setting this
+     * option to true you will let routes startup while the JmsConsumer connects
+     * to the JMS broker using a dedicated thread in asynchronous mode. If this
+     * option is used then beware that if the connection could not be
+     * established then an exception is logged at WARN level and the consumer
+     * will not be able to receive messages; You can then restart the route to
+     * retry.
+     */
+    private boolean asyncStartListener;
+    /**
+     * Whether to stop the JmsConsumer message listener asynchronously when
+     * stopping a route.
+     */
+    private boolean asyncStopListener;
+    /**
+     * When using mapJmsMessage=false Camel will create a new JMS message to
+     * send to a new JMS destination if you touch the headers (get or set)
+     * during the route. Set this option to true to force Camel to send the
+     * original JMS message that was received.
+     */
+    private boolean forceSendOriginalMessage;
+    /**
+     * The timeout for waiting for a reply when using the InOut Exchange Pattern
+     * (in milliseconds). The default is 20 seconds. You can include the header
+     * CamelJmsRequestTimeout to override this endpoint configured timeout value
+     * and thus have per message individual timeout values. See also the
+     * requestTimeoutCheckerInterval option.
+     */
+    private long requestTimeout;
+    /**
+     * Configures how often Camel should check for timed out Exchanges when
+     * doing request/reply over JMS. By default Camel checks once per second.
+     * But if you must react faster when a timeout occurs then you can lower
+     * this interval to check more frequently. The timeout is determined by the
+     * option requestTimeout.
+     */
+    private long requestTimeoutCheckerInterval;
+    /**
+     * You can transfer the exchange over the wire instead of just the body and
+     * headers. The following fields are transferred: In body Out body Fault
+     * body In headers Out headers Fault headers exchange properties exchange
+     * exception. This requires that the objects are serializable. Camel will
+     * exclude any non-serializable objects and log it at WARN level. You must
+     * enable this option on both the producer and consumer side so Camel knows
+     * the payloads is an Exchange and not a regular payload.
+     */
+    private boolean transferExchange;
+    /**
+     * If enabled and you are using Request Reply messaging (InOut) and an
+     * Exchange failed on the consumer side then the caused Exception will be
+     * send back in response as a javax.jms.ObjectMessage. If the client is
+     * Camel the returned Exception is rethrown. This allows you to use Camel
+     * JMS as a bridge in your routing - for example using persistent queues to
+     * enable robust routing. Notice that if you also have transferExchange
+     * enabled this option takes precedence. The caught exception is required to
+     * be serializable. The original Exception on the consumer side can be
+     * wrapped in an outer exception such as
+     * org.apache.camel.RuntimeCamelException when returned to the producer.
+     */
+    private boolean transferException;
+    /**
+     * If enabled and you are using Request Reply messaging (InOut) and an
+     * Exchange failed with a SOAP fault (not exception) on the consumer side
+     * then the fault flag on link org.apache.camel.MessageisFault() will be
+     * send back in the response as a JMS header with the key link
+     * JmsConstantsJMS_TRANSFER_FAULT. If the client is Camel the returned fault
+     * flag will be set on the link org.apache.camel.MessagesetFault(boolean).
+     * You may want to enable this when using Camel components that support
+     * faults such as SOAP based such as cxf or spring-ws.
+     */
+    private boolean transferFault;
+    /**
+     * Allows you to use your own implementation of the
+     * org.springframework.jms.core.JmsOperations interface. Camel uses
+     * JmsTemplate as default. Can be used for testing purpose but not used much
+     * as stated in the spring API docs.
+     */
+    private JmsOperations jmsOperations;
+    /**
+     * A pluggable
+     * org.springframework.jms.support.destination.DestinationResolver that
+     * allows you to use your own resolver (for example to lookup the real
+     * destination in a JNDI registry).
+     */
+    private DestinationResolver destinationResolver;
+    /**
+     * Allows for explicitly specifying which kind of strategy to use for
+     * replyTo queues when doing request/reply over JMS. Possible values are:
+     * Temporary Shared or Exclusive. By default Camel will use temporary
+     * queues. However if replyTo has been configured then Shared is used by
+     * default. This option allows you to use exclusive queues instead of shared
+     * ones. See Camel JMS documentation for more details and especially the
+     * notes about the implications if running in a clustered environment and
+     * the fact that Shared reply queues has lower performance than its
+     * alternatives Temporary and Exclusive.
+     */
+    private ReplyToType replyToType;
+    /**
+     * Set to true if you want to send message using the QoS settings specified
+     * on the message instead of the QoS settings on the JMS endpoint. The
+     * following three headers are considered JMSPriority JMSDeliveryMode and
+     * JMSExpiration. You can provide all or only some of them. If not provided
+     * Camel will fall back to use the values from the endpoint instead. So when
+     * using this option the headers override the values from the endpoint. The
+     * explicitQosEnabled option by contrast will only use options set on the
+     * endpoint and not values from the message header.
+     */
+    private boolean preserveMessageQos;
+    /**
+     * Whether the JmsConsumer processes the Exchange asynchronously. If enabled
+     * then the JmsConsumer may pickup the next message from the JMS queue while
+     * the previous message is being processed asynchronously (by the
+     * Asynchronous Routing Engine). This means that messages may be processed
+     * not 100 strictly in order. If disabled (as default) then the Exchange is
+     * fully processed before the JmsConsumer will pickup the next message from
+     * the JMS queue. Note if transacted has been enabled then
+     * asyncConsumer=true does not run asynchronously as transaction must be
+     * executed synchronously (Camel 3.0 may support async transactions).
+     */
+    private boolean asyncConsumer;
+    /**
+     * Whether to allow sending messages with no body. If this option is false
+     * and the message body is null then an JMSException is thrown.
+     */
+    private boolean allowNullBody;
+    /**
+     * Only applicable when sending to JMS destination using InOnly (eg fire and
+     * forget). Enabling this option will enrich the Camel Exchange with the
+     * actual JMSMessageID that was used by the JMS client when the message was
+     * sent to the JMS destination.
+     */
+    private boolean includeSentJMSMessageID;
+    /**
+     * Whether to include all JMSXxxx properties when mapping from JMS to Camel
+     * Message. Setting this to true will include properties such as JMSXAppID
+     * and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy
+     * then this option does not apply.
+     */
+    private boolean includeAllJMSXProperties;
+    /**
+     * Specifies what default TaskExecutor type to use in the
+     * DefaultMessageListenerContainer for both consumer endpoints and the
+     * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync
+     * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's
+     * ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If
+     * not set it defaults to the previous behaviour which uses a cached thread
+     * pool for consumer endpoints and SimpleAsync for reply consumers. The use
+     * of ThreadPool is recommended to reduce thread trash in elastic
+     * configurations with dynamically increasing and decreasing concurrent
+     * consumers.
+     */
+    private DefaultTaskExecutorType defaultTaskExecutorType;
+    /**
+     * Pluggable strategy for encoding and decoding JMS keys so they can be
+     * compliant with the JMS specification. Camel provides two implementations
+     * out of the box: default and passthrough. The default strategy will safely
+     * marshal dots and hyphens (. and -). The passthrough strategy leaves the
+     * key as is. Can be used for JMS brokers which do not care whether JMS
+     * header keys contain illegal characters. You can provide your own
+     * implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy
+     * and refer to it using the notation.
+     */
+    private JmsKeyFormatStrategy jmsKeyFormatStrategy;
+    /**
+     * Sets the Spring ApplicationContext to use
+     */
+    private ApplicationContext applicationContext;
+    /**
+     * To use a custom QueueBrowseStrategy when browsing queues
+     */
+    private QueueBrowseStrategy queueBrowseStrategy;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+    /**
+     * To use the given MessageCreatedStrategy which are invoked when Camel
+     * creates new instances of javax.jms.Message objects when Camel is sending
+     * a JMS message.
+     */
+    private MessageCreatedStrategy messageCreatedStrategy;
+    /**
+     * Number of times to wait for provisional correlation id to be updated to
+     * the actual correlation id when doing request/reply over JMS and when the
+     * option useMessageIDAsCorrelationID is enabled.
+     */
+    private int waitForProvisionCorrelationToBeUpdatedCounter;
+    /**
+     * Interval in millis to sleep each time while waiting for provisional
+     * correlation id to be updated.
+     */
+    private long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+
+    public JmsConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(JmsConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public boolean isAcceptMessagesWhileStopping() {
+        return acceptMessagesWhileStopping;
+    }
+
+    public void setAcceptMessagesWhileStopping(
+            boolean acceptMessagesWhileStopping) {
+        this.acceptMessagesWhileStopping = acceptMessagesWhileStopping;
+    }
+
+    public boolean isAllowReplyManagerQuickStop() {
+        return allowReplyManagerQuickStop;
+    }
+
+    public void setAllowReplyManagerQuickStop(boolean allowReplyManagerQuickStop) {
+        this.allowReplyManagerQuickStop = allowReplyManagerQuickStop;
+    }
+
+    public int getAcknowledgementMode() {
+        return acknowledgementMode;
+    }
+
+    public void setAcknowledgementMode(int acknowledgementMode) {
+        this.acknowledgementMode = acknowledgementMode;
+    }
+
+    public boolean isEagerLoadingOfProperties() {
+        return eagerLoadingOfProperties;
+    }
+
+    public void setEagerLoadingOfProperties(boolean eagerLoadingOfProperties) {
+        this.eagerLoadingOfProperties = eagerLoadingOfProperties;
+    }
+
+    public String getAcknowledgementModeName() {
+        return acknowledgementModeName;
+    }
+
+    public void setAcknowledgementModeName(String acknowledgementModeName) {
+        this.acknowledgementModeName = acknowledgementModeName;
+    }
+
+    public boolean isAutoStartup() {
+        return autoStartup;
+    }
+
+    public void setAutoStartup(boolean autoStartup) {
+        this.autoStartup = autoStartup;
+    }
+
+    public int getCacheLevel() {
+        return cacheLevel;
+    }
+
+    public void setCacheLevel(int cacheLevel) {
+        this.cacheLevel = cacheLevel;
+    }
+
+    public String getCacheLevelName() {
+        return cacheLevelName;
+    }
+
+    public void setCacheLevelName(String cacheLevelName) {
+        this.cacheLevelName = cacheLevelName;
+    }
+
+    public String getReplyToCacheLevelName() {
+        return replyToCacheLevelName;
+    }
+
+    public void setReplyToCacheLevelName(String replyToCacheLevelName) {
+        this.replyToCacheLevelName = replyToCacheLevelName;
+    }
+
+    public String getClientId() {
+        return clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public int getConcurrentConsumers() {
+        return concurrentConsumers;
+    }
+
+    public void setConcurrentConsumers(int concurrentConsumers) {
+        this.concurrentConsumers = concurrentConsumers;
+    }
+
+    public int getReplyToConcurrentConsumers() {
+        return replyToConcurrentConsumers;
+    }
+
+    public void setReplyToConcurrentConsumers(int replyToConcurrentConsumers) {
+        this.replyToConcurrentConsumers = replyToConcurrentConsumers;
+    }
+
+    public ConnectionFactory getConnectionFactory() {
+        return connectionFactory;
+    }
+
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        this.connectionFactory = connectionFactory;
+    }
+
+    public boolean isDeliveryPersistent() {
+        return deliveryPersistent;
+    }
+
+    public void setDeliveryPersistent(boolean deliveryPersistent) {
+        this.deliveryPersistent = deliveryPersistent;
+    }
+
+    public Integer getDeliveryMode() {
+        return deliveryMode;
+    }
+
+    public void setDeliveryMode(Integer deliveryMode) {
+        this.deliveryMode = deliveryMode;
+    }
+
+    public String getDurableSubscriptionName() {
+        return durableSubscriptionName;
+    }
+
+    public void setDurableSubscriptionName(String durableSubscriptionName) {
+        this.durableSubscriptionName = durableSubscriptionName;
+    }
+
+    public ExceptionListener getExceptionListener() {
+        return exceptionListener;
+    }
+
+    public void setExceptionListener(ExceptionListener exceptionListener) {
+        this.exceptionListener = exceptionListener;
+    }
+
+    public ErrorHandler getErrorHandler() {
+        return errorHandler;
+    }
+
+    public void setErrorHandler(ErrorHandler errorHandler) {
+        this.errorHandler = errorHandler;
+    }
+
+    public LoggingLevel getErrorHandlerLoggingLevel() {
+        return errorHandlerLoggingLevel;
+    }
+
+    public void setErrorHandlerLoggingLevel(
+            LoggingLevel errorHandlerLoggingLevel) {
+        this.errorHandlerLoggingLevel = errorHandlerLoggingLevel;
+    }
+
+    public boolean isErrorHandlerLogStackTrace() {
+        return errorHandlerLogStackTrace;
+    }
+
+    public void setErrorHandlerLogStackTrace(boolean errorHandlerLogStackTrace) {
+        this.errorHandlerLogStackTrace = errorHandlerLogStackTrace;
+    }
+
+    public boolean isExplicitQosEnabled() {
+        return explicitQosEnabled;
+    }
+
+    public void setExplicitQosEnabled(boolean explicitQosEnabled) {
+        this.explicitQosEnabled = explicitQosEnabled;
+    }
+
+    public boolean isExposeListenerSession() {
+        return exposeListenerSession;
+    }
+
+    public void setExposeListenerSession(boolean exposeListenerSession) {
+        this.exposeListenerSession = exposeListenerSession;
+    }
+
+    public int getIdleTaskExecutionLimit() {
+        return idleTaskExecutionLimit;
+    }
+
+    public void setIdleTaskExecutionLimit(int idleTaskExecutionLimit) {
+        this.idleTaskExecutionLimit = idleTaskExecutionLimit;
+    }
+
+    public int getIdleConsumerLimit() {
+        return idleConsumerLimit;
+    }
+
+    public void setIdleConsumerLimit(int idleConsumerLimit) {
+        this.idleConsumerLimit = idleConsumerLimit;
+    }
+
+    public int getMaxConcurrentConsumers() {
+        return maxConcurrentConsumers;
+    }
+
+    public void setMaxConcurrentConsumers(int maxConcurrentConsumers) {
+        this.maxConcurrentConsumers = maxConcurrentConsumers;
+    }
+
+    public int getReplyToMaxConcurrentConsumers() {
+        return replyToMaxConcurrentConsumers;
+    }
+
+    public void setReplyToMaxConcurrentConsumers(
+            int replyToMaxConcurrentConsumers) {
+        this.replyToMaxConcurrentConsumers = replyToMaxConcurrentConsumers;
+    }
+
+    public int getReplyOnTimeoutToMaxConcurrentConsumers() {
+        return replyOnTimeoutToMaxConcurrentConsumers;
+    }
+
+    public void setReplyOnTimeoutToMaxConcurrentConsumers(
+            int replyOnTimeoutToMaxConcurrentConsumers) {
+        this.replyOnTimeoutToMaxConcurrentConsumers = replyOnTimeoutToMaxConcurrentConsumers;
+    }
+
+    public int getMaxMessagesPerTask() {
+        return maxMessagesPerTask;
+    }
+
+    public void setMaxMessagesPerTask(int maxMessagesPerTask) {
+        this.maxMessagesPerTask = maxMessagesPerTask;
+    }
+
+    public MessageConverter getMessageConverter() {
+        return messageConverter;
+    }
+
+    public void setMessageConverter(MessageConverter messageConverter) {
+        this.messageConverter = messageConverter;
+    }
+
+    public boolean isMapJmsMessage() {
+        return mapJmsMessage;
+    }
+
+    public void setMapJmsMessage(boolean mapJmsMessage) {
+        this.mapJmsMessage = mapJmsMessage;
+    }
+
+    public boolean isMessageIdEnabled() {
+        return messageIdEnabled;
+    }
+
+    public void setMessageIdEnabled(boolean messageIdEnabled) {
+        this.messageIdEnabled = messageIdEnabled;
+    }
+
+    public boolean isMessageTimestampEnabled() {
+        return messageTimestampEnabled;
+    }
+
+    public void setMessageTimestampEnabled(boolean messageTimestampEnabled) {
+        this.messageTimestampEnabled = messageTimestampEnabled;
+    }
+
+    public boolean isAlwaysCopyMessage() {
+        return alwaysCopyMessage;
+    }
+
+    public void setAlwaysCopyMessage(boolean alwaysCopyMessage) {
+        this.alwaysCopyMessage = alwaysCopyMessage;
+    }
+
+    public boolean isUseMessageIDAsCorrelationID() {
+        return useMessageIDAsCorrelationID;
+    }
+
+    public void setUseMessageIDAsCorrelationID(
+            boolean useMessageIDAsCorrelationID) {
+        this.useMessageIDAsCorrelationID = useMessageIDAsCorrelationID;
+    }
+
+    public int getPriority() {
+        return priority;
+    }
+
+    public void setPriority(int priority) {
+        this.priority = priority;
+    }
+
+    public boolean isPubSubNoLocal() {
+        return pubSubNoLocal;
+    }
+
+    public void setPubSubNoLocal(boolean pubSubNoLocal) {
+        this.pubSubNoLocal = pubSubNoLocal;
+    }
+
+    public long getReceiveTimeout() {
+        return receiveTimeout;
+    }
+
+    public void setReceiveTimeout(long receiveTimeout) {
+        this.receiveTimeout = receiveTimeout;
+    }
+
+    public long getRecoveryInterval() {
+        return recoveryInterval;
+    }
+
+    public void setRecoveryInterval(long recoveryInterval) {
+        this.recoveryInterval = recoveryInterval;
+    }
+
+    public boolean isSubscriptionDurable() {
+        return subscriptionDurable;
+    }
+
+    public void setSubscriptionDurable(boolean subscriptionDurable) {
+        this.subscriptionDurable = subscriptionDurable;
+    }
+
+    public TaskExecutor getTaskExecutor() {
+        return taskExecutor;
+    }
+
+    public void setTaskExecutor(TaskExecutor taskExecutor) {
+        this.taskExecutor = taskExecutor;
+    }
+
+    public long getTimeToLive() {
+        return timeToLive;
+    }
+
+    public void setTimeToLive(long timeToLive) {
+        this.timeToLive = timeToLive;
+    }
+
+    public boolean isTransacted() {
+        return transacted;
+    }
+
+    public void setTransacted(boolean transacted) {
+        this.transacted = transacted;
+    }
+
+    public boolean isLazyCreateTransactionManager() {
+        return lazyCreateTransactionManager;
+    }
+
+    public void setLazyCreateTransactionManager(
+            boolean lazyCreateTransactionManager) {
+        this.lazyCreateTransactionManager = lazyCreateTransactionManager;
+    }
+
+    public PlatformTransactionManager getTransactionManager() {
+        return transactionManager;
+    }
+
+    public void setTransactionManager(
+            PlatformTransactionManager transactionManager) {
+        this.transactionManager = transactionManager;
+    }
+
+    public String getTransactionName() {
+        return transactionName;
+    }
+
+    public void setTransactionName(String transactionName) {
+        this.transactionName = transactionName;
+    }
+
+    public int getTransactionTimeout() {
+        return transactionTimeout;
+    }
+
+    public void setTransactionTimeout(int transactionTimeout) {
+        this.transactionTimeout = transactionTimeout;
+    }
+
+    public boolean isTestConnectionOnStartup() {
+        return testConnectionOnStartup;
+    }
+
+    public void setTestConnectionOnStartup(boolean testConnectionOnStartup) {
+        this.testConnectionOnStartup = testConnectionOnStartup;
+    }
+
+    public boolean isAsyncStartListener() {
+        return asyncStartListener;
+    }
+
+    public void setAsyncStartListener(boolean asyncStartListener) {
+        this.asyncStartListener = asyncStartListener;
+    }
+
+    public boolean isAsyncStopListener() {
+        return asyncStopListener;
+    }
+
+    public void setAsyncStopListener(boolean asyncStopListener) {
+        this.asyncStopListener = asyncStopListener;
+    }
+
+    public boolean isForceSendOriginalMessage() {
+        return forceSendOriginalMessage;
+    }
+
+    public void setForceSendOriginalMessage(boolean forceSendOriginalMessage) {
+        this.forceSendOriginalMessage = forceSendOriginalMessage;
+    }
+
+    public long getRequestTimeout() {
+        return requestTimeout;
+    }
+
+    public void setRequestTimeout(long requestTimeout) {
+        this.requestTimeout = requestTimeout;
+    }
+
+    public long getRequestTimeoutCheckerInterval() {
+        return requestTimeoutCheckerInterval;
+    }
+
+    public void setRequestTimeoutCheckerInterval(
+            long requestTimeoutCheckerInterval) {
+        this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval;
+    }
+
+    public boolean isTransferExchange() {
+        return transferExchange;
+    }
+
+    public void setTransferExchange(boolean transferExchange) {
+        this.transferExchange = transferExchange;
+    }
+
+    public boolean isTransferException() {
+        return transferException;
+    }
+
+    public void setTransferException(boolean transferException) {
+        this.transferException = transferException;
+    }
+
+    public boolean isTransferFault() {
+        return transferFault;
+    }
+
+    public void setTransferFault(boolean transferFault) {
+        this.transferFault = transferFault;
+    }
+
+    public JmsOperations getJmsOperations() {
+        return jmsOperations;
+    }
+
+    public void setJmsOperations(JmsOperations jmsOperations) {
+        this.jmsOperations = jmsOperations;
+    }
+
+    public DestinationResolver getDestinationResolver() {
+        return destinationResolver;
+    }
+
+    public void setDestinationResolver(DestinationResolver destinationResolver) {
+        this.destinationResolver = destinationResolver;
+    }
+
+    public ReplyToType getReplyToType() {
+        return replyToType;
+    }
+
+    public void setReplyToType(ReplyToType replyToType) {
+        this.replyToType = replyToType;
+    }
+
+    public boolean isPreserveMessageQos() {
+        return preserveMessageQos;
+    }
+
+    public void setPreserveMessageQos(boolean preserveMessageQos) {
+        this.preserveMessageQos = preserveMessageQos;
+    }
+
+    public boolean isAsyncConsumer() {
+        return asyncConsumer;
+    }
+
+    public void setAsyncConsumer(boolean asyncConsumer) {
+        this.asyncConsumer = asyncConsumer;
+    }
+
+    public boolean isAllowNullBody() {
+        return allowNullBody;
+    }
+
+    public void setAllowNullBody(boolean allowNullBody) {
+        this.allowNullBody = allowNullBody;
+    }
+
+    public boolean isIncludeSentJMSMessageID() {
+        return includeSentJMSMessageID;
+    }
+
+    public void setIncludeSentJMSMessageID(boolean includeSentJMSMessageID) {
+        this.includeSentJMSMessageID = includeSentJMSMessageID;
+    }
+
+    public boolean isIncludeAllJMSXProperties() {
+        return includeAllJMSXProperties;
+    }
+
+    public void setIncludeAllJMSXProperties(boolean includeAllJMSXProperties) {
+        this.includeAllJMSXProperties = includeAllJMSXProperties;
+    }
+
+    public DefaultTaskExecutorType getDefaultTaskExecutorType() {
+        return defaultTaskExecutorType;
+    }
+
+    public void setDefaultTaskExecutorType(
+            DefaultTaskExecutorType defaultTaskExecutorType) {
+        this.defaultTaskExecutorType = defaultTaskExecutorType;
+    }
+
+    public JmsKeyFormatStrategy getJmsKeyFormatStrategy() {
+        return jmsKeyFormatStrategy;
+    }
+
+    public void setJmsKeyFormatStrategy(
+            JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+        this.jmsKeyFormatStrategy = jmsKeyFormatStrategy;
+    }
+
+    public ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    public void setApplicationContext(ApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+
+    public QueueBrowseStrategy getQueueBrowseStrategy() {
+        return queueBrowseStrategy;
+    }
+
+    public void setQueueBrowseStrategy(QueueBrowseStrategy queueBrowseStrategy) {
+        this.queueBrowseStrategy = queueBrowseStrategy;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+
+    public MessageCreatedStrategy getMessageCreatedStrategy() {
+        return messageCreatedStrategy;
+    }
+
+    public void setMessageCreatedStrategy(
+            MessageCreatedStrategy messageCreatedStrategy) {
+        this.messageCreatedStrategy = messageCreatedStrategy;
+    }
+
+    public int getWaitForProvisionCorrelationToBeUpdatedCounter() {
+        return waitForProvisionCorrelationToBeUpdatedCounter;
+    }
+
+    public void setWaitForProvisionCorrelationToBeUpdatedCounter(
+            int waitForProvisionCorrelationToBeUpdatedCounter) {
+        this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter;
+    }
+
+    public long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
+        return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+    }
+
+    public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+            long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+        this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-amqp/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-amqp/src/main/resources/META-INF/spring.factories b/components/camel-amqp/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..6e72322
--- /dev/null
+++ b/components/camel-amqp/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.amqp.springboot.AMQPComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java b/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
new file mode 100644
index 0000000..3ecd044
--- /dev/null
+++ b/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.apns.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.apns.ApnsComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(ApnsComponentConfiguration.class)
+public class ApnsComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(ApnsComponent.class)
+    public ApnsComponent configureComponent(CamelContext camelContext,
+            ApnsComponentConfiguration configuration) throws Exception {
+        ApnsComponent component = new ApnsComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java b/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
new file mode 100644
index 0000000..82f9fb9
--- /dev/null
+++ b/components/camel-apns/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.apns.springboot;
+
+import com.notnoop.apns.ApnsService;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * For sending notifications to Apple iOS devices.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.apns")
+public class ApnsComponentConfiguration {
+
+    /**
+     * To use a custom link ApnsService
+     */
+    private ApnsService apnsService;
+
+    public ApnsService getApnsService() {
+        return apnsService;
+    }
+
+    public void setApnsService(ApnsService apnsService) {
+        this.apnsService = apnsService;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-apns/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/resources/META-INF/spring.factories b/components/camel-apns/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..67aaf4e
--- /dev/null
+++ b/components/camel-apns/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.apns.springboot.ApnsComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
new file mode 100644
index 0000000..1244474
--- /dev/null
+++ b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atmosphere.websocket.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.atmosphere.websocket.WebsocketComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(WebsocketComponentConfiguration.class)
+public class WebsocketComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(WebsocketComponent.class)
+    public WebsocketComponent configureComponent(CamelContext camelContext,
+            WebsocketComponentConfiguration configuration) throws Exception {
+        WebsocketComponent component = new WebsocketComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
new file mode 100644
index 0000000..6896e65
--- /dev/null
+++ b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
@@ -0,0 +1,126 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atmosphere.websocket.springboot;
+
+import org.apache.camel.component.servlet.HttpRegistry;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * To exchange data with external Websocket clients using Atmosphere.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.atmosphere-websocket")
+public class WebsocketComponentConfiguration {
+
+    /**
+     * Default name of servlet to use. The default name is CamelServlet.
+     */
+    private String servletName;
+    /**
+     * To use a custom org.apache.camel.component.servlet.HttpRegistry.
+     */
+    private HttpRegistry httpRegistry;
+    /**
+     * Whether to automatic bind multipart/form-data as attachments on the Camel
+     * Exchange. This is turn off by default as this may require servet specific
+     * configuration to enable this when using Servlet's.
+     */
+    private boolean attachmentMultipartBinding;
+    /**
+     * To use a custom HttpBinding to control the mapping between Camel message
+     * and HttpClient.
+     */
+    private HttpBinding httpBinding;
+    /**
+     * To use the shared HttpConfiguration as base configuration.
+     */
+    private HttpConfiguration httpConfiguration;
+    /**
+     * Whether to allow java serialization when a request uses
+     * context-type=application/x-java-serialized-object This is by default
+     * turned off. If you enable this then be aware that Java will deserialize
+     * the incoming data from the request to Java and that can be a potential
+     * security risk.
+     */
+    private boolean allowJavaSerializedObject;
+    /**
+     * To use a custom HeaderFilterStrategy to filter header to and from Camel
+     * message.
+     */
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    public String getServletName() {
+        return servletName;
+    }
+
+    public void setServletName(String servletName) {
+        this.servletName = servletName;
+    }
+
+    public HttpRegistry getHttpRegistry() {
+        return httpRegistry;
+    }
+
+    public void setHttpRegistry(HttpRegistry httpRegistry) {
+        this.httpRegistry = httpRegistry;
+    }
+
+    public boolean isAttachmentMultipartBinding() {
+        return attachmentMultipartBinding;
+    }
+
+    public void setAttachmentMultipartBinding(boolean attachmentMultipartBinding) {
+        this.attachmentMultipartBinding = attachmentMultipartBinding;
+    }
+
+    public HttpBinding getHttpBinding() {
+        return httpBinding;
+    }
+
+    public void setHttpBinding(HttpBinding httpBinding) {
+        this.httpBinding = httpBinding;
+    }
+
+    public HttpConfiguration getHttpConfiguration() {
+        return httpConfiguration;
+    }
+
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
+        this.httpConfiguration = httpConfiguration;
+    }
+
+    public boolean isAllowJavaSerializedObject() {
+        return allowJavaSerializedObject;
+    }
+
+    public void setAllowJavaSerializedObject(boolean allowJavaSerializedObject) {
+        this.allowJavaSerializedObject = allowJavaSerializedObject;
+    }
+
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
+        this.headerFilterStrategy = headerFilterStrategy;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-atmosphere-websocket/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-atmosphere-websocket/src/main/resources/META-INF/spring.factories b/components/camel-atmosphere-websocket/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..6954476
--- /dev/null
+++ b/components/camel-atmosphere-websocket/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
new file mode 100644
index 0000000..5d5989b
--- /dev/null
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.avro.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.avro.AvroComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(AvroComponentConfiguration.class)
+public class AvroComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(AvroComponent.class)
+    public AvroComponent configureComponent(CamelContext camelContext,
+            AvroComponentConfiguration configuration) throws Exception {
+        AvroComponent component = new AvroComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
new file mode 100644
index 0000000..7d13a39
--- /dev/null
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.avro.springboot;
+
+import org.apache.camel.component.avro.AvroConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Working with Apache Avro for data serialization.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.avro")
+public class AvroComponentConfiguration {
+
+    /**
+     * To use a shared AvroConfiguration to configure options once
+     */
+    private AvroConfiguration configuration;
+
+    public AvroConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(AvroConfiguration configuration) {
+        this.configuration = configuration;
+    }
+}
\ No newline at end of file


[03/12] camel git commit: CAMEL-9419: Generate spring-boot auto configuration for all Camel components that has options that can be configured.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentAutoConfiguration.java b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentAutoConfiguration.java
new file mode 100644
index 0000000..ac2f43b
--- /dev/null
+++ b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.splunk.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.splunk.SplunkComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SplunkComponentConfiguration.class)
+public class SplunkComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SplunkComponent.class)
+    public SplunkComponent configureComponent(CamelContext camelContext,
+            SplunkComponentConfiguration configuration) throws Exception {
+        SplunkComponent component = new SplunkComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentConfiguration.java b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentConfiguration.java
new file mode 100644
index 0000000..2100393
--- /dev/null
+++ b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.splunk.springboot;
+
+import org.apache.camel.component.splunk.SplunkConfigurationFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The splunk component allows to publish or search for events in Splunk.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.splunk")
+public class SplunkComponentConfiguration {
+
+    /**
+     * To use the SplunkConfigurationFactory
+     */
+    private SplunkConfigurationFactory splunkConfigurationFactory;
+
+    public SplunkConfigurationFactory getSplunkConfigurationFactory() {
+        return splunkConfigurationFactory;
+    }
+
+    public void setSplunkConfigurationFactory(
+            SplunkConfigurationFactory splunkConfigurationFactory) {
+        this.splunkConfigurationFactory = splunkConfigurationFactory;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-splunk/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-splunk/src/main/resources/META-INF/spring.factories b/components/camel-splunk/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..f508243
--- /dev/null
+++ b/components/camel-splunk/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.splunk.springboot.SplunkComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentAutoConfiguration.java b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentAutoConfiguration.java
new file mode 100644
index 0000000..bd8d10d
--- /dev/null
+++ b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.batch.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.spring.batch.SpringBatchComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SpringBatchComponentConfiguration.class)
+public class SpringBatchComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SpringBatchComponent.class)
+    public SpringBatchComponent configureComponent(CamelContext camelContext,
+            SpringBatchComponentConfiguration configuration) throws Exception {
+        SpringBatchComponent component = new SpringBatchComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentConfiguration.java b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentConfiguration.java
new file mode 100644
index 0000000..a1d5b8e
--- /dev/null
+++ b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentConfiguration.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.batch.springboot;
+
+import org.springframework.batch.core.launch.JobLauncher;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The spring-batch component allows to send messages to Spring Batch for
+ * further processing.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.spring-batch")
+public class SpringBatchComponentConfiguration {
+
+    /**
+     * Explicitly specifies a JobLauncher to be used.
+     */
+    private JobLauncher jobLauncher;
+
+    public JobLauncher getJobLauncher() {
+        return jobLauncher;
+    }
+
+    public void setJobLauncher(JobLauncher jobLauncher) {
+        this.jobLauncher = jobLauncher;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring-batch/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-spring-batch/src/main/resources/META-INF/spring.factories b/components/camel-spring-batch/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..e3c5109
--- /dev/null
+++ b/components/camel-spring-batch/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.spring.batch.springboot.SpringBatchComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentAutoConfiguration.java b/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentAutoConfiguration.java
new file mode 100644
index 0000000..605a467
--- /dev/null
+++ b/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.event.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.event.EventComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(EventComponentConfiguration.class)
+public class EventComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(EventComponent.class)
+    public EventComponent configureComponent(CamelContext camelContext,
+            EventComponentConfiguration configuration) throws Exception {
+        EventComponent component = new EventComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentConfiguration.java b/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentConfiguration.java
new file mode 100644
index 0000000..a2cc856
--- /dev/null
+++ b/components/camel-spring/src/main/java/org/apache/camel/component/event/springboot/EventComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.event.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+
+/**
+ * The spring-event component allows to listen for Spring Application Events.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.spring-event")
+public class EventComponentConfiguration {
+
+    /**
+     * The Spring ApplicationContext
+     */
+    private ApplicationContext applicationContext;
+
+    public ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    public void setApplicationContext(ApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-spring/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/main/resources/META-INF/spring.factories b/components/camel-spring/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..3b58cd1
--- /dev/null
+++ b/components/camel-spring/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.event.springboot.EventComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentAutoConfiguration.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentAutoConfiguration.java
new file mode 100644
index 0000000..72e4166
--- /dev/null
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sql.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.sql.SqlComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SqlComponentConfiguration.class)
+public class SqlComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SqlComponent.class)
+    public SqlComponent configureComponent(CamelContext camelContext,
+            SqlComponentConfiguration configuration) throws Exception {
+        SqlComponent component = new SqlComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentConfiguration.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentConfiguration.java
new file mode 100644
index 0000000..f8d5ea6
--- /dev/null
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentConfiguration.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sql.springboot;
+
+import javax.sql.DataSource;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The sql component can be used to perform SQL query to a database.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.sql")
+public class SqlComponentConfiguration {
+
+    /**
+     * Sets the DataSource to use to communicate with the database.
+     */
+    private DataSource dataSource;
+    /**
+     * Sets whether to use placeholder and replace all placeholder characters
+     * with sign in the SQL queries. This option is default true
+     */
+    private boolean usePlaceholder;
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+    public void setDataSource(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
+
+    public boolean isUsePlaceholder() {
+        return usePlaceholder;
+    }
+
+    public void setUsePlaceholder(boolean usePlaceholder) {
+        this.usePlaceholder = usePlaceholder;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentAutoConfiguration.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentAutoConfiguration.java
new file mode 100644
index 0000000..e3fd0eb
--- /dev/null
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sql.stored.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.sql.stored.SqlStoredComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SqlStoredComponentConfiguration.class)
+public class SqlStoredComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SqlStoredComponent.class)
+    public SqlStoredComponent configureComponent(CamelContext camelContext,
+            SqlStoredComponentConfiguration configuration) throws Exception {
+        SqlStoredComponent component = new SqlStoredComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentConfiguration.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentConfiguration.java
new file mode 100644
index 0000000..22dc8f7
--- /dev/null
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sql.stored.springboot;
+
+import javax.sql.DataSource;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Camel SQL support
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.sql-stored")
+public class SqlStoredComponentConfiguration {
+
+    /**
+     * Sets the DataSource to use to communicate with the database.
+     */
+    private DataSource dataSource;
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+    public void setDataSource(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-sql/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/resources/META-INF/spring.factories b/components/camel-sql/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..1412326
--- /dev/null
+++ b/components/camel-sql/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.sql.springboot.SqlComponentAutoConfiguration,\
+org.apache.camel.component.sql.stored.springboot.SqlStoredComponentAutoConfiguration
+

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentAutoConfiguration.java b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentAutoConfiguration.java
new file mode 100644
index 0000000..2db11d3
--- /dev/null
+++ b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ssh.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.ssh.SshComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(SshComponentConfiguration.class)
+public class SshComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(SshComponent.class)
+    public SshComponent configureComponent(CamelContext camelContext,
+            SshComponentConfiguration configuration) throws Exception {
+        SshComponent component = new SshComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
new file mode 100644
index 0000000..36fca04
--- /dev/null
+++ b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
@@ -0,0 +1,175 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ssh.springboot;
+
+import org.apache.camel.component.ssh.SshConfiguration;
+import org.apache.sshd.common.KeyPairProvider;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The ssh component enables access to SSH servers such that you can send an SSH
+ * command and process the response.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.ssh")
+public class SshComponentConfiguration {
+
+    /**
+     * To use the shared SSH configuration
+     */
+    private SshConfiguration configuration;
+    /**
+     * Sets the hostname of the remote SSH server.
+     */
+    private String host;
+    /**
+     * Sets the port number for the remote SSH server.
+     */
+    private int port;
+    /**
+     * Sets the username to use in logging into the remote SSH server.
+     */
+    private String username;
+    /**
+     * Sets the password to use in connecting to remote SSH server. Requires
+     * keyPairProvider to be set to null.
+     */
+    private String password;
+    /**
+     * Sets the command string to send to the remote SSH server during every
+     * poll cycle. Only works with camel-ssh component being used as a consumer
+     * i.e. from(ssh://...). You may need to end your command with a newline and
+     * that must be URL encoded 0A
+     */
+    private String pollCommand;
+    /**
+     * Sets the KeyPairProvider reference to use when connecting using
+     * Certificates to the remote SSH Server.
+     */
+    private KeyPairProvider keyPairProvider;
+    /**
+     * Sets the key type to pass to the KeyPairProvider as part of
+     * authentication. KeyPairProvider.loadKey(...) will be passed this value.
+     * Defaults to ssh-rsa.
+     */
+    private String keyType;
+    /**
+     * Sets the timeout in milliseconds to wait in establishing the remote SSH
+     * server connection. Defaults to 30000 milliseconds.
+     */
+    private long timeout;
+    /**
+     * Sets the resource path of the certificate to use for Authentication.
+     */
+    @Deprecated
+    private String certFilename;
+    /**
+     * Sets the resource path of the certificate to use for Authentication. Will
+     * use ResourceHelperKeyPairProvider to resolve file based certificate and
+     * depends on keyType setting.
+     */
+    private String certResource;
+
+    public SshConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(SshConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getPollCommand() {
+        return pollCommand;
+    }
+
+    public void setPollCommand(String pollCommand) {
+        this.pollCommand = pollCommand;
+    }
+
+    public KeyPairProvider getKeyPairProvider() {
+        return keyPairProvider;
+    }
+
+    public void setKeyPairProvider(KeyPairProvider keyPairProvider) {
+        this.keyPairProvider = keyPairProvider;
+    }
+
+    public String getKeyType() {
+        return keyType;
+    }
+
+    public void setKeyType(String keyType) {
+        this.keyType = keyType;
+    }
+
+    public long getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(long timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getCertFilename() {
+        return certFilename;
+    }
+
+    public void setCertFilename(String certFilename) {
+        this.certFilename = certFilename;
+    }
+
+    public String getCertResource() {
+        return certResource;
+    }
+
+    public void setCertResource(String certResource) {
+        this.certResource = certResource;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-ssh/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-ssh/src/main/resources/META-INF/spring.factories b/components/camel-ssh/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..67aa6d0
--- /dev/null
+++ b/components/camel-ssh/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.ssh.springboot.SshComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
index 8a87a87..c74becc 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
@@ -23,7 +23,30 @@ import org.apache.camel.impl.UriEndpointComponent;
 
 public class StompComponent extends UriEndpointComponent {
 
-    private StompConfiguration configuration = new StompConfiguration();
+    /**
+     * To use the shared stomp configuration
+     */
+    private StompConfiguration configuration;
+
+    /**
+     * The URI of the Stomp broker to connect to
+     */
+    private String brokerUrl;
+
+    /**
+     * The username
+     */
+    private String login;
+
+    /**
+     * The password
+     */
+    private String passcode;
+
+    /**
+     * The virtual host
+     */
+    private String host;
 
     public StompComponent() {
         super(StompEndpoint.class);
@@ -43,6 +66,13 @@ public class StompComponent extends UriEndpointComponent {
         return endpoint;
     }
 
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+
+        configuration.setBrokerURL(brokerUrl);
+    }
+
     public StompConfiguration getConfiguration() {
         return configuration;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentAutoConfiguration.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentAutoConfiguration.java
new file mode 100644
index 0000000..10f73e2
--- /dev/null
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.stomp.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.stomp.StompComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(StompComponentConfiguration.class)
+public class StompComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(StompComponent.class)
+    public StompComponent configureComponent(CamelContext camelContext,
+            StompComponentConfiguration configuration) throws Exception {
+        StompComponent component = new StompComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentConfiguration.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentConfiguration.java
new file mode 100644
index 0000000..f664a2d
--- /dev/null
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentConfiguration.java
@@ -0,0 +1,91 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.stomp.springboot;
+
+import org.apache.camel.component.stomp.StompConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The stomp component is used for communicating with Stomp compliant message
+ * brokers.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.stomp")
+public class StompComponentConfiguration {
+
+    /**
+     * To use the shared stomp configuration
+     */
+    private StompConfiguration configuration;
+    /**
+     * The URI of the Stomp broker to connect to
+     */
+    private String brokerURL;
+    /**
+     * The username
+     */
+    private String login;
+    /**
+     * The password
+     */
+    private String passcode;
+    /**
+     * The virtual host
+     */
+    private String host;
+
+    public StompConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(StompConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public String getBrokerURL() {
+        return brokerURL;
+    }
+
+    public void setBrokerURL(String brokerURL) {
+        this.brokerURL = brokerURL;
+    }
+
+    public String getLogin() {
+        return login;
+    }
+
+    public void setLogin(String login) {
+        this.login = login;
+    }
+
+    public String getPasscode() {
+        return passcode;
+    }
+
+    public void setPasscode(String passcode) {
+        this.passcode = passcode;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-stomp/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/resources/META-INF/spring.factories b/components/camel-stomp/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..1f38a87
--- /dev/null
+++ b/components/camel-stomp/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.stomp.springboot.StompComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentAutoConfiguration.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentAutoConfiguration.java
new file mode 100644
index 0000000..33e46ff
--- /dev/null
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.twitter.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.twitter.TwitterComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(TwitterComponentConfiguration.class)
+public class TwitterComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(TwitterComponent.class)
+    public TwitterComponent configureComponent(CamelContext camelContext,
+            TwitterComponentConfiguration configuration) throws Exception {
+        TwitterComponent component = new TwitterComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentConfiguration.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentConfiguration.java
new file mode 100644
index 0000000..8ce5105
--- /dev/null
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/springboot/TwitterComponentConfiguration.java
@@ -0,0 +1,126 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.twitter.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * This component integrates with Twitter to send tweets or search for tweets
+ * and more.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.twitter")
+public class TwitterComponentConfiguration {
+
+    /**
+     * The access token
+     */
+    private String accessToken;
+    /**
+     * The access token secret
+     */
+    private String accessTokenSecret;
+    /**
+     * The consumer key
+     */
+    private String consumerKey;
+    /**
+     * The consumer secret
+     */
+    private String consumerSecret;
+    /**
+     * The http proxy host which can be used for the camel-twitter.
+     */
+    private String httpProxyHost;
+    /**
+     * The http proxy user which can be used for the camel-twitter.
+     */
+    private String httpProxyUser;
+    /**
+     * The http proxy password which can be used for the camel-twitter.
+     */
+    private String httpProxyPassword;
+    /**
+     * The http proxy port which can be used for the camel-twitter.
+     */
+    private int httpProxyPort;
+
+    public String getAccessToken() {
+        return accessToken;
+    }
+
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
+    }
+
+    public String getAccessTokenSecret() {
+        return accessTokenSecret;
+    }
+
+    public void setAccessTokenSecret(String accessTokenSecret) {
+        this.accessTokenSecret = accessTokenSecret;
+    }
+
+    public String getConsumerKey() {
+        return consumerKey;
+    }
+
+    public void setConsumerKey(String consumerKey) {
+        this.consumerKey = consumerKey;
+    }
+
+    public String getConsumerSecret() {
+        return consumerSecret;
+    }
+
+    public void setConsumerSecret(String consumerSecret) {
+        this.consumerSecret = consumerSecret;
+    }
+
+    public String getHttpProxyHost() {
+        return httpProxyHost;
+    }
+
+    public void setHttpProxyHost(String httpProxyHost) {
+        this.httpProxyHost = httpProxyHost;
+    }
+
+    public String getHttpProxyUser() {
+        return httpProxyUser;
+    }
+
+    public void setHttpProxyUser(String httpProxyUser) {
+        this.httpProxyUser = httpProxyUser;
+    }
+
+    public String getHttpProxyPassword() {
+        return httpProxyPassword;
+    }
+
+    public void setHttpProxyPassword(String httpProxyPassword) {
+        this.httpProxyPassword = httpProxyPassword;
+    }
+
+    public int getHttpProxyPort() {
+        return httpProxyPort;
+    }
+
+    public void setHttpProxyPort(int httpProxyPort) {
+        this.httpProxyPort = httpProxyPort;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-twitter/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/resources/META-INF/spring.factories b/components/camel-twitter/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..8694c3b
--- /dev/null
+++ b/components/camel-twitter/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.twitter.springboot.TwitterComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentAutoConfiguration.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentAutoConfiguration.java
new file mode 100644
index 0000000..68b4ac5
--- /dev/null
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.undertow.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.undertow.UndertowComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(UndertowComponentConfiguration.class)
+public class UndertowComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(UndertowComponent.class)
+    public UndertowComponent configureComponent(CamelContext camelContext,
+            UndertowComponentConfiguration configuration) throws Exception {
+        UndertowComponent component = new UndertowComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentConfiguration.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentConfiguration.java
new file mode 100644
index 0000000..4bece05
--- /dev/null
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentConfiguration.java
@@ -0,0 +1,58 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.undertow.springboot;
+
+import org.apache.camel.component.undertow.UndertowHttpBinding;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The undertow component provides HTTP-based endpoints for consuming and
+ * producing HTTP requests.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.undertow")
+public class UndertowComponentConfiguration {
+
+    /**
+     * To use a custom HttpBinding to control the mapping between Camel message
+     * and HttpClient.
+     */
+    private UndertowHttpBinding undertowHttpBinding;
+    /**
+     * To configure security using SSLContextParameters
+     */
+    private SSLContextParameters sslContextParameters;
+
+    public UndertowHttpBinding getUndertowHttpBinding() {
+        return undertowHttpBinding;
+    }
+
+    public void setUndertowHttpBinding(UndertowHttpBinding undertowHttpBinding) {
+        this.undertowHttpBinding = undertowHttpBinding;
+    }
+
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-undertow/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/resources/META-INF/spring.factories b/components/camel-undertow/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..effa0bf
--- /dev/null
+++ b/components/camel-undertow/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.undertow.springboot.UndertowComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentAutoConfiguration.java b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentAutoConfiguration.java
new file mode 100644
index 0000000..0221cf4
--- /dev/null
+++ b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.velocity.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.velocity.VelocityComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(VelocityComponentConfiguration.class)
+public class VelocityComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(VelocityComponent.class)
+    public VelocityComponent configureComponent(CamelContext camelContext,
+            VelocityComponentConfiguration configuration) throws Exception {
+        VelocityComponent component = new VelocityComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentConfiguration.java b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentConfiguration.java
new file mode 100644
index 0000000..70776ac
--- /dev/null
+++ b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentConfiguration.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.velocity.springboot;
+
+import org.apache.velocity.app.VelocityEngine;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Transforms the message using a Velocity template.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.velocity")
+public class VelocityComponentConfiguration {
+
+    /**
+     * To use the VelocityEngine otherwise a new engine is created
+     */
+    private VelocityEngine velocityEngine;
+
+    public VelocityEngine getVelocityEngine() {
+        return velocityEngine;
+    }
+
+    public void setVelocityEngine(VelocityEngine velocityEngine) {
+        this.velocityEngine = velocityEngine;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-velocity/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-velocity/src/main/resources/META-INF/spring.factories b/components/camel-velocity/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..aca4338
--- /dev/null
+++ b/components/camel-velocity/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.velocity.springboot.VelocityComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentAutoConfiguration.java b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentAutoConfiguration.java
new file mode 100644
index 0000000..b8bf9e1
--- /dev/null
+++ b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.vertx.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.vertx.VertxComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(VertxComponentConfiguration.class)
+public class VertxComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(VertxComponent.class)
+    public VertxComponent configureComponent(CamelContext camelContext,
+            VertxComponentConfiguration configuration) throws Exception {
+        VertxComponent component = new VertxComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
new file mode 100644
index 0000000..1cd228b
--- /dev/null
+++ b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
@@ -0,0 +1,107 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.vertx.springboot;
+
+import io.vertx.core.Vertx;
+import io.vertx.core.VertxOptions;
+import io.vertx.core.spi.VertxFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The vertx component is used for sending and receive messages from a vertx
+ * event bus.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.vertx")
+public class VertxComponentConfiguration {
+
+    /**
+     * To use a custom VertxFactory implementation
+     */
+    private VertxFactory vertxFactory;
+    /**
+     * Hostname for creating an embedded clustered EventBus
+     */
+    private String host;
+    /**
+     * Port for creating an embedded clustered EventBus
+     */
+    private int port;
+    /**
+     * Options to use for creating vertx
+     */
+    private VertxOptions vertxOptions;
+    /**
+     * To use the given vertx EventBus instead of creating a new embedded
+     * EventBus
+     */
+    private Vertx vertx;
+    /**
+     * Timeout in seconds to wait for clustered Vertx EventBus to be ready. The
+     * default value is 60.
+     */
+    private int timeout;
+
+    public VertxFactory getVertxFactory() {
+        return vertxFactory;
+    }
+
+    public void setVertxFactory(VertxFactory vertxFactory) {
+        this.vertxFactory = vertxFactory;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    public VertxOptions getVertxOptions() {
+        return vertxOptions;
+    }
+
+    public void setVertxOptions(VertxOptions vertxOptions) {
+        this.vertxOptions = vertxOptions;
+    }
+
+    public Vertx getVertx() {
+        return vertx;
+    }
+
+    public void setVertx(Vertx vertx) {
+        this.vertx = vertx;
+    }
+
+    public int getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(int timeout) {
+        this.timeout = timeout;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-vertx/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/components/camel-vertx/src/main/resources/META-INF/spring.factories b/components/camel-vertx/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..2b84e83
--- /dev/null
+++ b/components/camel-vertx/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.vertx.springboot.VertxComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/75251730/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentAutoConfiguration.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentAutoConfiguration.java
new file mode 100644
index 0000000..a127ede
--- /dev/null
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentAutoConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.websocket.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.websocket.WebsocketComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@EnableConfigurationProperties(WebsocketComponentConfiguration.class)
+public class WebsocketComponentAutoConfiguration {
+
+    @Bean
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(WebsocketComponent.class)
+    public WebsocketComponent configureComponent(CamelContext camelContext,
+            WebsocketComponentConfiguration configuration) throws Exception {
+        WebsocketComponent component = new WebsocketComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null);
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+}
\ No newline at end of file