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 09:34:10 UTC

[21/34] camel git commit: Experiment with generating spring-boot auto configuration for the Camel components.

http://git-wip-us.apache.org/repos/asf/camel/blob/3ad3f004/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..1a10e7d
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import java.util.Properties;
+import org.quartz.SchedulerFactory;
+import org.quartz.Scheduler;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..f6db84e
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.quickfixj.QuickfixjComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..b5c7ac6
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import quickfix.MessageFactory;
+import quickfix.LogFactory;
+import quickfix.MessageStoreFactory;
+import java.util.Map;
+import org.apache.camel.component.quickfixj.QuickfixjConfiguration;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..5f67f3c
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.restlet.RestletComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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

http://git-wip-us.apache.org/repos/asf/camel/blob/3ad3f004/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..7628dc5
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import java.util.List;
+import org.apache.camel.spi.HeaderFilterStrategy;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..b225f6e
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.salesforce.SalesforceComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..a0dc59e
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import org.apache.camel.component.salesforce.SalesforceLoginConfig;
+import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
+import java.util.Map;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import java.util.Set;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..e7a36ea
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.xquery.XQueryComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..64a4a68
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import net.sf.saxon.lib.ModuleURIResolver;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..6b00043
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.servlet.ServletComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..acb56fb
--- /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.springframework.boot.context.properties.ConfigurationProperties;
+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;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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..b90c08d
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.sjms.batch.SjmsBatchComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..2fc9821
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import javax.jms.ConnectionFactory;
+
+/**
+ * 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/3ad3f004/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..ac6d50a
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.sjms.SjmsComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..af45c48
--- /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 org.springframework.boot.context.properties.ConfigurationProperties;
+import javax.jms.ConnectionFactory;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.component.sjms.jms.ConnectionResource;
+import org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy;
+import org.apache.camel.component.sjms.TransactionCommitStrategy;
+import org.apache.camel.component.sjms.jms.DestinationCreationStrategy;
+import org.apache.camel.component.sjms.taskmanager.TimedTaskManager;
+import org.apache.camel.component.sjms.jms.MessageCreatedStrategy;
+
+/**
+ * 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/3ad3f004/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..a65a16e
--- /dev/null
+++ b/components/camel-sjms/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.sjms.batch.springboot.SjmsBatchComponentAutoConfiguration

http://git-wip-us.apache.org/repos/asf/camel/blob/3ad3f004/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..5a95d5a
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.slack.SlackComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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/3ad3f004/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/3ad3f004/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..79890c3
--- /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 org.springframework.context.annotation.Configuration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.component.smpp.SmppComponent;
+import org.apache.camel.CamelContext;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+
+/**
+ * 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/3ad3f004/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..5042b30
--- /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.springframework.boot.context.properties.ConfigurationProperties;
+import org.apache.camel.component.smpp.SmppConfiguration;
+
+/**
+ * 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