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 10:51:30 UTC

camel git commit: Experiment with generating spring-boot auto configuration for the Camel components.

Repository: camel
Updated Branches:
  refs/heads/boot-generate 4b7844732 -> f1402a7eb


Experiment with generating spring-boot auto configuration for the Camel components.


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

Branch: refs/heads/boot-generate
Commit: f1402a7ebcd3287add59614aed13734078b6dc32
Parents: 4b78447
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jun 8 12:50:18 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jun 8 12:50:18 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 +++
 22 files changed, 1374 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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/f1402a7e/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
+
+
+
+
+
+
+
+