This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-2.x by this push:
     new 11d1b8a  CAMEL-13770: Configuring Camel components with spring-boot 
should support Map/Set/List types as we did previously.
11d1b8a is described below

commit 11d1b8a131929d98189d4418587a7b633d84b0b5
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Jul 24 18:15:55 2019 +0200

    CAMEL-13770: Configuring Camel components with spring-boot should support 
Map/Set/List types as we did previously.
---
 camel-core/readme.adoc                             | 82 +---------------------
 .../src/main/docs/ehcache-component.adoc           |  2 +-
 .../src/main/docs/fhirJson-dataformat.adoc         |  6 +-
 .../src/main/docs/fhirXml-dataformat.adoc          |  6 +-
 .../camel-ftp/src/main/docs/ftp-component.adoc     |  2 +-
 .../camel-ftp/src/main/docs/ftps-component.adoc    |  2 +-
 .../camel-ftp/src/main/docs/sftp-component.adoc    |  2 +-
 .../main/docs/google-sheets-stream-component.adoc  |  2 +-
 .../src/main/docs/jetty-component.adoc             |  8 +--
 .../src/main/docs/milo-server-component.adoc       |  2 +-
 .../src/main/docs/quickfix-component.adoc          |  2 +-
 .../src/main/docs/rabbitmq-component.adoc          |  4 +-
 .../src/main/docs/salesforce-component.adoc        |  8 +--
 .../src/main/docs/xquery-component.adoc            |  2 +-
 .../camel-saxon/src/main/docs/xquery-language.adoc |  2 +-
 .../src/main/docs/websocket-component.adoc         |  2 +-
 .../src/main/docs/xstream-dataformat.adoc          |  6 +-
 .../springboot/XsltComponentConfiguration.java     | 10 +--
 .../springboot/EhcacheComponentConfiguration.java  | 11 ++-
 .../FhirJsonDataFormatConfiguration.java           | 27 ++++---
 .../springboot/FhirXmlDataFormatConfiguration.java | 27 ++++---
 .../JettyHttpComponentConfiguration9.java          | 41 ++++++-----
 .../MiloServerComponentConfiguration.java          | 11 ++-
 .../QuickfixjComponentConfiguration.java           | 13 ++--
 .../springboot/RabbitMQComponentConfiguration.java | 19 +++--
 .../SalesforceComponentConfiguration.java          | 39 +++++-----
 .../springboot/SalesforceComponentTest.java        | 52 ++++++++++++++
 .../springboot/XQueryComponentConfiguration.java   | 11 +--
 .../WebsocketComponentConfiguration.java           | 12 ++--
 .../springboot/XStreamDataFormatConfiguration.java | 28 ++++----
 .../packaging/SpringBootAutoConfigurationMojo.java | 12 ++++
 31 files changed, 217 insertions(+), 236 deletions(-)

diff --git a/camel-core/readme.adoc b/camel-core/readme.adoc
index 601cc9a..d189ec2 100644
--- a/camel-core/readme.adoc
+++ b/camel-core/readme.adoc
@@ -6,90 +6,18 @@ Components
 
 
 // components: START
-Number of Components: 26 in 1 JAR artifacts (1 deprecated)
+Number of Components: 2 in 1 JAR artifacts (1 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
 | Component | Available From | Description
 
-| link:src/main/docs/bean-component.adoc[Bean] (camel-core) +
-`bean:beanName` | 1.0 | The bean component is for invoking Java beans from 
Camel.
-
 | link:src/main/docs/binding-component.adoc[Binding] (camel-core) +
 `binding:bindingName:delegateUri` | 2.11 | *deprecated* The binding component 
is used for as a of wrapping an Endpoint in a contract with a data format.
 
-| link:src/main/docs/browse-component.adoc[Browse] (camel-core) +
-`browse:name` | 1.3 | The browse component is used for viewing the messages 
received on endpoints that supports BrowsableEndpoint.
-
-| link:src/main/docs/class-component.adoc[Class] (camel-core) +
-`class:beanName` | 2.4 | The Class Component is for invoking Java Classes 
(Java beans) from Camel.
-
-| link:src/main/docs/controlbus-component.adoc[Control Bus] (camel-core) +
-`controlbus:command:language` | 2.11 | The controlbus component provides easy 
management of Camel applications based on the Control Bus EIP pattern.
-
-| link:src/main/docs/dataformat-component.adoc[Data Format] (camel-core) +
-`dataformat:name:operation` | 2.12 | The dataformat component is used for 
working with Data Formats as if it was a regular Component supporting Endpoints 
and URIs.
-
-| link:src/main/docs/dataset-component.adoc[Dataset] (camel-core) +
-`dataset:name` | 1.3 | The dataset component provides a mechanism to easily 
perform load & soak testing of your system.
-
-| link:src/main/docs/direct-component.adoc[Direct] (camel-core) +
-`direct:name` | 1.0 | The direct component provides direct, synchronous call 
to another endpoint from the same CamelContext.
-
-| link:src/main/docs/direct-vm-component.adoc[Direct VM] (camel-core) +
-`direct-vm:name` | 2.10 | The direct-vm component provides direct, synchronous 
call to another endpoint from any CamelContext in the same JVM.
-
-| link:src/main/docs/file-component.adoc[File] (camel-core) +
-`file:directoryName` | 1.0 | The file component is used for reading or writing 
files.
-
-| link:src/main/docs/language-component.adoc[Language] (camel-core) +
-`language:languageName:resourceUri` | 2.5 | The language component allows you 
to send a message to an endpoint which executes a script by any of the 
supported Languages in Camel.
-
-| link:src/main/docs/log-component.adoc[Log] (camel-core) +
-`log:loggerName` | 1.1 | The log component logs message exchanges to the 
underlying logging mechanism.
-
-| link:src/main/docs/mock-component.adoc[Mock] (camel-core) +
-`mock:name` | 1.0 | The mock component is used for testing routes and 
mediation rules using mocks.
-
-| link:src/main/docs/properties-component.adoc[Properties] (camel-core) +
-`properties:key` | 2.3 | The properties component is used for using property 
placeholders in endpoint uris.
-
-| link:src/main/docs/ref-component.adoc[Ref] (camel-core) +
-`ref:name` | 1.2 | The ref component is used for lookup of existing endpoints 
bound in the Registry.
-
-| link:src/main/docs/rest-component.adoc[REST] (camel-core) +
-`rest:method:path:uriTemplate` | 2.14 | The rest component is used for either 
hosting REST services (consumer) or calling external REST services (producer).
-
-| link:src/main/docs/rest-api-component.adoc[REST API] (camel-core) +
-`rest-api:path/contextIdPattern` | 2.16 | The rest-api component is used for 
providing Swagger API of the REST services which has been defined using the 
rest-dsl in Camel.
-
-| link:src/main/docs/saga-component.adoc[Saga] (camel-core) +
-`saga:action` | 2.21 | The saga component provides access to advanced options 
for managing the flow in the Saga EIP.
-
-| link:src/main/docs/scheduler-component.adoc[Scheduler] (camel-core) +
-`scheduler:name` | 2.15 | The scheduler component is used for generating 
message exchanges when a scheduler fires.
-
-| link:src/main/docs/seda-component.adoc[SEDA] (camel-core) +
-`seda:name` | 1.1 | The seda component provides asynchronous call to another 
endpoint from any CamelContext in the same JVM.
-
-| link:src/main/docs/stub-component.adoc[Stub] (camel-core) +
-`stub:name` | 2.10 | The stub component provides a simple way to stub out any 
physical endpoints while in development or testing.
-
 | link:src/main/docs/test-component.adoc[Test] (camel-core) +
 `test:name` | 1.3 | The test component extends the mock component by on 
startup to pull messages from another endpoint to set the expected message 
bodies.
 
-| link:src/main/docs/timer-component.adoc[Timer] (camel-core) +
-`timer:timerName` | 1.0 | The timer component is used for generating message 
exchanges when a timer fires.
-
-| link:src/main/docs/validator-component.adoc[Validator] (camel-core) +
-`validator:resourceUri` | 1.1 | Validates the payload of a message using XML 
Schema and JAXP Validation.
-
-| link:src/main/docs/vm-component.adoc[VM] (camel-core) +
-`vm:name` | 1.1 | The vm component provides asynchronous call to another 
endpoint from the same CamelContext.
-
-| link:src/main/docs/xslt-component.adoc[XSLT] (camel-core) +
-`xslt:resourceUri` | 1.3 | Transforms the message using a XSLT template.
-
 |===
 // components: END
 
@@ -106,7 +34,7 @@ Data Formats
 
 
 // dataformats: START
-Number of Data Formats: 4 in 39 JAR artifacts (5 deprecated)
+Number of Data Formats: 4 in 43 JAR artifacts (5 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -136,14 +64,12 @@ Expression Languages
 
 
 // languages: START
-Number of Languages: 10 in 1 JAR artifacts (0 deprecated)
+Number of Languages: 8 in 1 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
 | Language | Available From | Description
 
-| link:src/main/docs/bean-language.adoc[Bean method] (camel-core) | 1.3 | To 
use a Java bean (aka method call) in Camel expressions or predicates.
-
 | link:src/main/docs/constant-language.adoc[Constant] (camel-core) | 1.5 | To 
use a constant value in Camel expressions or predicates.
 
 | link:src/main/docs/exchangeProperty-language.adoc[ExchangeProperty] 
(camel-core) | 2.0 | To use a Camel Exchange property in expressions or 
predicates.
@@ -159,8 +85,6 @@ Number of Languages: 10 in 1 JAR artifacts (0 deprecated)
 | link:src/main/docs/tokenize-language.adoc[Tokenize] (camel-core) | 2.0 | To 
use Camel message body or header with a tokenizer in Camel expressions or 
predicates.
 
 | link:src/main/docs/xtokenize-language.adoc[XML Tokenize] (camel-core) | 2.14 
| To use Camel message body or header with a XML tokenizer in Camel expressions 
or predicates.
-
-| link:src/main/docs/xpath-language.adoc[XPath] (camel-core) | 1.1 | To use 
XPath (XML) in Camel expressions or predicates.
 |===
 // languages: END
 
diff --git a/components/camel-ehcache/src/main/docs/ehcache-component.adoc 
b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
index c53faad..562019e 100644
--- a/components/camel-ehcache/src/main/docs/ehcache-component.adoc
+++ b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
@@ -116,7 +116,7 @@ The component supports 25 options, which are listed below.
 | *camel.component.ehcache.cache-configuration-uri* | URI pointing to the 
Ehcache XML configuration file's location |  | String
 | *camel.component.ehcache.cache-manager* | The cache manager. The option is a 
org.ehcache.CacheManager type. |  | String
 | *camel.component.ehcache.cache-manager-configuration* | The cache manager 
configuration. The option is a org.ehcache.config.Configuration type. |  | 
String
-| *camel.component.ehcache.caches-configurations* | A map of caches 
configurations to be used to create caches. The option is a 
java.util.Map<java.lang.String,org.ehcache.config.CacheConfiguration<?, ?>> 
type. |  | String
+| *camel.component.ehcache.caches-configurations* | A map of caches 
configurations to be used to create caches. |  | Map
 | *camel.component.ehcache.configuration.action* | To configure the default 
cache action. If an action is set in the message header, then the operation 
from the header takes precedence. |  | String
 | *camel.component.ehcache.configuration.cache-manager* | The cache manager |  
| CacheManager
 | *camel.component.ehcache.configuration.cache-manager-configuration* | The 
cache manager configuration |  | Configuration
diff --git 
a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
 
b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
index 936ed2c..1f60931 100644
--- 
a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
+++ 
b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
@@ -47,12 +47,12 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.dataformat.fhirjson.content-type-header* | Whether the data format 
should set the Content-Type header with the type from the data format if the 
data format is capable of doing so. For example application/xml for data 
formats marshalling to XML, or application/json for data formats marshalling to 
JSon etc. | false | Boolean
-| *camel.dataformat.fhirjson.dont-encode-elements* | If provided, specifies 
the elements which should NOT be encoded. Valid values for this field would 
include: Patient - Don't encode patient and all its children Patient.name - 
Don't encode the patient's name Patient.name.family - Don't encode the 
patient's family name .text - Don't encode the text element on any resource 
(only the very first position may contain a wildcard) DSTU2 note: Note that 
values including meta, such as Patient.me [...]
+| *camel.dataformat.fhirjson.dont-encode-elements* | If provided, specifies 
the elements which should NOT be encoded. Valid values for this field would 
include: Patient - Don't encode patient and all its children Patient.name - 
Don't encode the patient's name Patient.name.family - Don't encode the 
patient's family name .text - Don't encode the text element on any resource 
(only the very first position may contain a wildcard) DSTU2 note: Note that 
values including meta, such as Patient.me [...]
 | *camel.dataformat.fhirjson.dont-strip-versions-from-references-at-paths* | 
If supplied value(s), any resource references at the specified paths will have 
their resource versions encoded instead of being automatically stripped during 
the encoding process. This setting has no effect on the parsing process. This 
method provides a finer-grained level of control than 
setStripVersionsFromReferences(Boolean) and any paths specified by this method 
will be encoded even if setStripVersionsFromRe [...]
 | *camel.dataformat.fhirjson.enabled* | Whether to enable auto configuration 
of the fhirJson data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.fhirjson.encode-elements* | If provided, specifies the 
elements which should be encoded, to the exclusion of all others. Valid values 
for this field would include: Patient - Encode patient and all its children 
Patient.name - Encode only the patient's name Patient.name.family - Encode only 
the patient's family name .text - Encode the text element on any resource (only 
the very first position may contain a wildcard) .(mandatory) - This is a 
special case which causes any [...]
+| *camel.dataformat.fhirjson.encode-elements* | If provided, specifies the 
elements which should be encoded, to the exclusion of all others. Valid values 
for this field would include: Patient - Encode patient and all its children 
Patient.name - Encode only the patient's name Patient.name.family - Encode only 
the patient's family name .text - Encode the text element on any resource (only 
the very first position may contain a wildcard) .(mandatory) - This is a 
special case which causes any [...]
 | *camel.dataformat.fhirjson.encode-elements-applies-to-child-resources-only* 
| If set to true (default is false), the values supplied to 
setEncodeElements(Set) will not be applied to the root resource (typically a 
Bundle), but will be applied to any sub-resources contained within it (i.e. 
search result resources in that bundle) | false | Boolean
-| *camel.dataformat.fhirjson.encode-elements-applies-to-resource-types* | If 
provided, tells the parse which resource types to apply link 
#setEncodeElements(Set) encode elements to. Any resource types not specified 
here will be encoded completely, with no elements excluded. The option is a 
java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirjson.encode-elements-applies-to-resource-types* | If 
provided, tells the parse which resource types to apply link 
#setEncodeElements(Set) encode elements to. Any resource types not specified 
here will be encoded completely, with no elements excluded. |  | Set
 | *camel.dataformat.fhirjson.fhir-version* | The version of FHIR to use. 
Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4 | DSTU3 | String
 | *camel.dataformat.fhirjson.omit-resource-id* | If set to true (default is 
false) the ID of any resources being encoded will not be included in the 
output. Note that this does not apply to contained resources, only to root 
resources. In other words, if this is set to true, contained resources will 
still have local IDs but the outer/containing ID will not have an ID. | false | 
Boolean
 | *camel.dataformat.fhirjson.override-resource-id-with-bundle-entry-full-url* 
| If set to true (which is the default), the Bundle.entry.fullUrl will override 
the Bundle.entry.resource's resource id if the fullUrl is defined. This 
behavior happens when parsing the source data into a Bundle object. Set this to 
false if this is not the desired behavior (e.g. the client code wishes to 
perform additional validation checks between the fullUrl and the resource id). 
| false | Boolean
diff --git 
a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
 
b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
index f8f8ca2..50500e8 100644
--- 
a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
+++ 
b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
@@ -46,12 +46,12 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.dataformat.fhirxml.content-type-header* | Whether the data format 
should set the Content-Type header with the type from the data format if the 
data format is capable of doing so. For example application/xml for data 
formats marshalling to XML, or application/json for data formats marshalling to 
JSon etc. | false | Boolean
-| *camel.dataformat.fhirxml.dont-encode-elements* | If provided, specifies the 
elements which should NOT be encoded. Valid values for this field would 
include: Patient - Don't encode patient and all its children Patient.name - 
Don't encode the patient's name Patient.name.family - Don't encode the 
patient's family name .text - Don't encode the text element on any resource 
(only the very first position may contain a wildcard) DSTU2 note: Note that 
values including meta, such as Patient.met [...]
+| *camel.dataformat.fhirxml.dont-encode-elements* | If provided, specifies the 
elements which should NOT be encoded. Valid values for this field would 
include: Patient - Don't encode patient and all its children Patient.name - 
Don't encode the patient's name Patient.name.family - Don't encode the 
patient's family name .text - Don't encode the text element on any resource 
(only the very first position may contain a wildcard) DSTU2 note: Note that 
values including meta, such as Patient.met [...]
 | *camel.dataformat.fhirxml.dont-strip-versions-from-references-at-paths* | If 
supplied value(s), any resource references at the specified paths will have 
their resource versions encoded instead of being automatically stripped during 
the encoding process. This setting has no effect on the parsing process. This 
method provides a finer-grained level of control than 
setStripVersionsFromReferences(Boolean) and any paths specified by this method 
will be encoded even if setStripVersionsFromRef [...]
 | *camel.dataformat.fhirxml.enabled* | Whether to enable auto configuration of 
the fhirXml data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.fhirxml.encode-elements* | If provided, specifies the 
elements which should be encoded, to the exclusion of all others. Valid values 
for this field would include: Patient - Encode patient and all its children 
Patient.name - Encode only the patient's name Patient.name.family - Encode only 
the patient's family name .text - Encode the text element on any resource (only 
the very first position may contain a wildcard) .(mandatory) - This is a 
special case which causes any  [...]
+| *camel.dataformat.fhirxml.encode-elements* | If provided, specifies the 
elements which should be encoded, to the exclusion of all others. Valid values 
for this field would include: Patient - Encode patient and all its children 
Patient.name - Encode only the patient's name Patient.name.family - Encode only 
the patient's family name .text - Encode the text element on any resource (only 
the very first position may contain a wildcard) .(mandatory) - This is a 
special case which causes any  [...]
 | *camel.dataformat.fhirxml.encode-elements-applies-to-child-resources-only* | 
If set to true (default is false), the values supplied to 
setEncodeElements(Set) will not be applied to the root resource (typically a 
Bundle), but will be applied to any sub-resources contained within it (i.e. 
search result resources in that bundle) | false | Boolean
-| *camel.dataformat.fhirxml.encode-elements-applies-to-resource-types* | If 
provided, tells the parse which resource types to apply link 
#setEncodeElements(Set) encode elements to. Any resource types not specified 
here will be encoded completely, with no elements excluded. The option is a 
java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirxml.encode-elements-applies-to-resource-types* | If 
provided, tells the parse which resource types to apply link 
#setEncodeElements(Set) encode elements to. Any resource types not specified 
here will be encoded completely, with no elements excluded. |  | Set
 | *camel.dataformat.fhirxml.fhir-version* | The version of FHIR to use. 
Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4 | DSTU3 | String
 | *camel.dataformat.fhirxml.omit-resource-id* | If set to true (default is 
false) the ID of any resources being encoded will not be included in the 
output. Note that this does not apply to contained resources, only to root 
resources. In other words, if this is set to true, contained resources will 
still have local IDs but the outer/containing ID will not have an ID. | false | 
Boolean
 | *camel.dataformat.fhirxml.override-resource-id-with-bundle-entry-full-url* | 
If set to true (which is the default), the Bundle.entry.fullUrl will override 
the Bundle.entry.resource's resource id if the fullUrl is defined. This 
behavior happens when parsing the source data into a Bundle object. Set this to 
false if this is not the desired behavior (e.g. the client code wishes to 
perform additional validation checks between the fullUrl and the resource id). 
| false | Boolean
diff --git a/components/camel-ftp/src/main/docs/ftp-component.adoc 
b/components/camel-ftp/src/main/docs/ftp-component.adoc
index b002b51..d9a974e 100644
--- a/components/camel-ftp/src/main/docs/ftp-component.adoc
+++ b/components/camel-ftp/src/main/docs/ftp-component.adoc
@@ -187,7 +187,7 @@ with the following path and query parameters:
 | *minDepth* (filter) | The minimum depth to start processing when recursively 
processing a directory. Using minDepth=1 means the base directory. Using 
minDepth=2 means the first sub directory. |  | int
 | *move* (filter) | Expression (such as Simple Language) used to dynamically 
set the filename when moving it after processing. To move files into a .done 
subdirectory just enter .done. |  | String
 | *exclusiveReadLockStrategy* (lock) | Pluggable read-lock as a 
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 
implementation. |  | GenericFileExclusive ReadLockStrategy
-| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
+| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
 | *readLockCheckInterval* (lock) | Interval in millis for the read-lock, if 
supported by the read lock. This interval is used for sleeping between attempts 
to acquire the read lock. For example when using the changed read lock, you can 
set a higher interval period to cater for slow writes. The default of 1 sec. 
may be too fast if the producer is very slow writing the file. Notice: For FTP 
the default readLockCheckInterval is 5000. The readLockTimeout value must be 
higher than readLockChe [...]
 | *readLockDeleteOrphanLock Files* (lock) | Whether or not read lock with 
marker files should upon startup delete any orphan read lock files, which may 
have been left on the file system, if Camel was not properly shutdown (such as 
a JVM crash). If turning this option to false then any orphaned lock file will 
cause Camel to not attempt to pickup that file, this could also be due another 
node is concurrently reading files from the same shared directory. | true | 
boolean
 | *readLockLoggingLevel* (lock) | Logging level used when a read lock could 
not be acquired. By default a DEBUG is logged. You can change this level, for 
example to OFF to not have any logging. This option is only applicable for 
readLock of types: changed, fileLock, idempotent, idempotent-changed, 
idempotent-rename, rename. | DEBUG | LoggingLevel
diff --git a/components/camel-ftp/src/main/docs/ftps-component.adoc 
b/components/camel-ftp/src/main/docs/ftps-component.adoc
index cc93937..e0e1958 100644
--- a/components/camel-ftp/src/main/docs/ftps-component.adoc
+++ b/components/camel-ftp/src/main/docs/ftps-component.adoc
@@ -147,7 +147,7 @@ with the following path and query parameters:
 | *minDepth* (filter) | The minimum depth to start processing when recursively 
processing a directory. Using minDepth=1 means the base directory. Using 
minDepth=2 means the first sub directory. |  | int
 | *move* (filter) | Expression (such as Simple Language) used to dynamically 
set the filename when moving it after processing. To move files into a .done 
subdirectory just enter .done. |  | String
 | *exclusiveReadLockStrategy* (lock) | Pluggable read-lock as a 
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 
implementation. |  | GenericFileExclusive ReadLockStrategy
-| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
+| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
 | *readLockCheckInterval* (lock) | Interval in millis for the read-lock, if 
supported by the read lock. This interval is used for sleeping between attempts 
to acquire the read lock. For example when using the changed read lock, you can 
set a higher interval period to cater for slow writes. The default of 1 sec. 
may be too fast if the producer is very slow writing the file. Notice: For FTP 
the default readLockCheckInterval is 5000. The readLockTimeout value must be 
higher than readLockChe [...]
 | *readLockDeleteOrphanLock Files* (lock) | Whether or not read lock with 
marker files should upon startup delete any orphan read lock files, which may 
have been left on the file system, if Camel was not properly shutdown (such as 
a JVM crash). If turning this option to false then any orphaned lock file will 
cause Camel to not attempt to pickup that file, this could also be due another 
node is concurrently reading files from the same shared directory. | true | 
boolean
 | *readLockIdempotentRelease Async* (lock) | Whether the delayed release task 
should be synchronous or asynchronous. See more details at the 
readLockIdempotentReleaseDelay option. | false | boolean
diff --git a/components/camel-ftp/src/main/docs/sftp-component.adoc 
b/components/camel-ftp/src/main/docs/sftp-component.adoc
index 559b8c4..db80fa5 100644
--- a/components/camel-ftp/src/main/docs/sftp-component.adoc
+++ b/components/camel-ftp/src/main/docs/sftp-component.adoc
@@ -131,7 +131,7 @@ with the following path and query parameters:
 | *minDepth* (filter) | The minimum depth to start processing when recursively 
processing a directory. Using minDepth=1 means the base directory. Using 
minDepth=2 means the first sub directory. |  | int
 | *move* (filter) | Expression (such as Simple Language) used to dynamically 
set the filename when moving it after processing. To move files into a .done 
subdirectory just enter .done. |  | String
 | *exclusiveReadLockStrategy* (lock) | Pluggable read-lock as a 
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 
implementation. |  | GenericFileExclusive ReadLockStrategy
-| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
+| *readLock* (lock) | Used by consumer, to only poll the files if it has 
exclusive read-lock on the file (i.e. the file is not in-progress or being 
written). Camel will wait until the file lock is granted. This option provides 
the build in strategies: none - No read lock is in use markerFile - Camel 
creates a marker file (fileName.camelLock) and then holds a lock on it. This 
option is not available for the FTP component changed - Changed is using file 
length/modification timestamp to det [...]
 | *readLockCheckInterval* (lock) | Interval in millis for the read-lock, if 
supported by the read lock. This interval is used for sleeping between attempts 
to acquire the read lock. For example when using the changed read lock, you can 
set a higher interval period to cater for slow writes. The default of 1 sec. 
may be too fast if the producer is very slow writing the file. Notice: For FTP 
the default readLockCheckInterval is 5000. The readLockTimeout value must be 
higher than readLockChe [...]
 | *readLockDeleteOrphanLock Files* (lock) | Whether or not read lock with 
marker files should upon startup delete any orphan read lock files, which may 
have been left on the file system, if Camel was not properly shutdown (such as 
a JVM crash). If turning this option to false then any orphaned lock file will 
cause Camel to not attempt to pickup that file, this could also be due another 
node is concurrently reading files from the same shared directory. | true | 
boolean
 | *readLockIdempotentRelease Async* (lock) | Whether the delayed release task 
should be synchronous or asynchronous. See more details at the 
readLockIdempotentReleaseDelay option. | false | boolean
diff --git 
a/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
 
b/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
index 9112d6d..e3aed90 100644
--- 
a/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
+++ 
b/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
@@ -137,7 +137,7 @@ The component supports 17 options, which are listed below.
 | *camel.component.google-sheets-stream.configuration.client-secret* | Client 
secret of the sheets application |  | String
 | *camel.component.google-sheets-stream.configuration.include-grid-data* | 
True if grid data should be returned. | false | Boolean
 | *camel.component.google-sheets-stream.configuration.major-dimension* | 
Specifies the major dimension that results should use.. | ROWS | String
-| *camel.component.google-sheets-stream.configuration.max-results* | Specify 
the maximum number of returned results. This will limit the number of rows in a 
returned value range data set or the number of returned value ranges in a batch 
request. | 10 | Integer
+| *camel.component.google-sheets-stream.configuration.max-results* | Specify 
the maximum number of returned results. This will limit the number of rows in a 
returned value range data set or the number of returned value ranges in a batch 
request. | 0 | Integer
 | *camel.component.google-sheets-stream.configuration.range* | Specifies the 
range of rows and columns in a sheet to get data from. |  | String
 | *camel.component.google-sheets-stream.configuration.refresh-token* | OAuth 2 
refresh token. Using this, the Google Calendar component can obtain a new 
accessToken whenever the current one expires - a necessity if the application 
is long-lived. |  | String
 | *camel.component.google-sheets-stream.configuration.scopes* | Specifies the 
level of permissions you want a sheets application to have to a user account. 
See https://developers.google.com/identity/protocols/googlescopes for more 
info. |  | List
diff --git a/components/camel-jetty9/src/main/docs/jetty-component.adoc 
b/components/camel-jetty9/src/main/docs/jetty-component.adoc
index e0e9cb5..2308f1d 100644
--- a/components/camel-jetty9/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty9/src/main/docs/jetty-component.adoc
@@ -219,13 +219,13 @@ The component supports 34 options, which are listed below.
 | *camel.component.jetty.response-buffer-size* | Allows to configure a custom 
value of the response buffer size on the Jetty connectors. |  | Integer
 | *camel.component.jetty.response-header-size* | Allows to configure a custom 
value of the response header size on the Jetty connectors. |  | Integer
 | *camel.component.jetty.send-server-version* | If the option is true, jetty 
will send the server header with the jetty version information to the client 
which sends the request. NOTE please make sure there is no any other 
camel-jetty endpoint is share the same port, otherwise this option may not work 
as expected. | true | Boolean
-| *camel.component.jetty.socket-connector-properties* | A map which contains 
general HTTP connector properties. Uses the same principle as 
sslSocketConnectorProperties. The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
-| *camel.component.jetty.socket-connectors* | A map which contains per port 
number specific HTTP connectors. Uses the same principle as 
sslSocketConnectors. The option is a 
java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector> type. |  | 
String
+| *camel.component.jetty.socket-connector-properties* | A map which contains 
general HTTP connector properties. Uses the same principle as 
sslSocketConnectorProperties. |  | Map
+| *camel.component.jetty.socket-connectors* | A map which contains per port 
number specific HTTP connectors. Uses the same principle as 
sslSocketConnectors. |  | Map
 | *camel.component.jetty.ssl-context-parameters* | To configure security using 
SSLContextParameters. The option is a 
org.apache.camel.util.jsse.SSLContextParameters type. |  | String
 | *camel.component.jetty.ssl-key-password* | The key password, which is used 
to access the certificate's key entry in the keystore (this is the same 
password that is supplied to the keystore command's -keypass option). |  | 
String
 | *camel.component.jetty.ssl-password* | The ssl password, which is required 
to access the keystore file (this is the same password that is supplied to the 
keystore command's -storepass option). |  | String
-| *camel.component.jetty.ssl-socket-connector-properties* | A map which 
contains general SSL connector properties. The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
-| *camel.component.jetty.ssl-socket-connectors* | A map which contains per 
port number specific SSL connectors. The option is a 
java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector> type. |  | 
String
+| *camel.component.jetty.ssl-socket-connector-properties* | A map which 
contains general SSL connector properties. |  | Map
+| *camel.component.jetty.ssl-socket-connectors* | A map which contains per 
port number specific SSL connectors. |  | Map
 | *camel.component.jetty.thread-pool* | To use a custom thread pool for the 
server. This option should only be used in special circumstances. The option is 
a org.eclipse.jetty.util.thread.ThreadPool type. |  | String
 | *camel.component.jetty.use-continuation* | Whether or not to use Jetty 
continuations for the Jetty Server. | true | Boolean
 | *camel.component.jetty.use-global-ssl-context-parameters* | Enable usage of 
global SSL context parameters | false | Boolean
diff --git a/components/camel-milo/src/main/docs/milo-server-component.adoc 
b/components/camel-milo/src/main/docs/milo-server-component.adoc
index 5cf8e27..1d18370 100644
--- a/components/camel-milo/src/main/docs/milo-server-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-server-component.adoc
@@ -131,7 +131,7 @@ The component supports 21 options, which are listed below.
 | *camel.component.milo-server.namespace-uri* | The URI of the namespace, 
defaults to urn:org:apache:camel |  | String
 | *camel.component.milo-server.product-uri* | The product URI |  | String
 | *camel.component.milo-server.resolve-property-placeholders* | Whether the 
component should resolve property placeholders on itself when starting. Only 
properties which are of String type can use property placeholders. | true | 
Boolean
-| *camel.component.milo-server.security-policies* | Security policies. The 
option is a 
java.util.Set<org.eclipse.milo.opcua.stack.core.security.SecurityPolicy> type. 
|  | String
+| *camel.component.milo-server.security-policies* | Security policies |  | Set
 | *camel.component.milo-server.security-policies-by-id* | Security policies by 
URI or name |  | Collection
 | *camel.component.milo-server.server-certificate* | Server certificate. The 
option is a org.apache.camel.component.milo.KeyStoreLoader.Result type. |  | 
String
 | *camel.component.milo-server.server-name* | Server name |  | String
diff --git a/components/camel-quickfix/src/main/docs/quickfix-component.adoc 
b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
index a094d9b..bf8cb77 100644
--- a/components/camel-quickfix/src/main/docs/quickfix-component.adoc
+++ b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
@@ -136,7 +136,7 @@ The component supports 7 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.quickfix.configurations* | To use the given map of pre 
configured QuickFix configurations mapped to the key. The option is a 
java.util.Map<java.lang.String,org.apache.camel.component 
.quickfixj.QuickfixjConfiguration> type. |  | String
+| *camel.component.quickfix.configurations* | To use the given map of pre 
configured QuickFix configurations mapped to the key |  | Map
 | *camel.component.quickfix.enabled* | Enable quickfix component | true | 
Boolean
 | *camel.component.quickfix.lazy-create-engines* | If set to true, the engines 
will be created and started when needed (when first message is send) | false | 
Boolean
 | *camel.component.quickfix.log-factory* | To use the given LogFactory. The 
option is a quickfix.LogFactory type. |  | String
diff --git a/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc 
b/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc
index a529c1d..ddcf0d3 100644
--- a/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc
+++ b/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc
@@ -210,14 +210,14 @@ The component supports 51 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.rabbitmq.addresses* | If this option is set, camel-rabbitmq 
will try to create connection based on the setting of option addresses. The 
addresses value is a string which looks like server1:12345, server2:12345 |  | 
String
 | *camel.component.rabbitmq.allow-null-headers* | Allow pass null values to 
header | false | Boolean
-| *camel.component.rabbitmq.args* | Specify arguments for configuring the 
different RabbitMQ concepts, a different prefix is required for each: Exchange: 
arg.exchange. Queue: arg.queue. Binding: arg.binding. For example to declare a 
queue with message ttl argument: 
http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000. The 
option is a java.util.Map<java.lang.String,java.lang.Object> type. |  | String
+| *camel.component.rabbitmq.args* | Specify arguments for configuring the 
different RabbitMQ concepts, a different prefix is required for each: Exchange: 
arg.exchange. Queue: arg.queue. Binding: arg.binding. For example to declare a 
queue with message ttl argument: 
http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000 |  | Map
 | *camel.component.rabbitmq.auto-ack* | If messages should be auto 
acknowledged | true | Boolean
 | *camel.component.rabbitmq.auto-delete* | If it is true, the exchange will be 
deleted when it is no longer in use | true | Boolean
 | *camel.component.rabbitmq.auto-detect-connection-factory* | Whether to 
auto-detect looking up RabbitMQ connection factory from the registry. When 
enabled and a single instance of the connection factory is found then it will 
be used. An explicit connection factory can be configured on the component or 
endpoint level which takes precedence. | true | Boolean
 | *camel.component.rabbitmq.automatic-recovery-enabled* | Enables connection 
automatic recovery (uses connection implementation that performs automatic 
recovery when connection shutdown is not initiated by the application) |  | 
Boolean
 | *camel.component.rabbitmq.channel-pool-max-size* | Get maximum number of 
opened channel in pool | 10 | Integer
 | *camel.component.rabbitmq.channel-pool-max-wait* | Set the maximum number of 
milliseconds to wait for a channel from the pool | 1000 | Long
-| *camel.component.rabbitmq.client-properties* | Connection client properties 
(client info used in negotiating with the server). The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
+| *camel.component.rabbitmq.client-properties* | Connection client properties 
(client info used in negotiating with the server) |  | Map
 | *camel.component.rabbitmq.connection-factory* | To use a custom RabbitMQ 
connection factory. When this option is set, all connection options 
(connectionTimeout, requestedChannelMax...) set on URI are not used. The option 
is a com.rabbitmq.client.ConnectionFactory type. |  | String
 | *camel.component.rabbitmq.connection-timeout* | Connection timeout | 60000 | 
Integer
 | *camel.component.rabbitmq.dead-letter-exchange* | The name of the dead 
letter exchange |  | String
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
 
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index c02afac..1612ca2 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -778,11 +778,11 @@ The component supports 85 options, which are listed below.
 | *camel.component.salesforce.config.serialize-nulls* | Should the NULL values 
of given DTO be serialized with empty (NULL) values. This affects only JSON 
data format. | false | Boolean
 | *camel.component.salesforce.config.update-topic* | Whether to update an 
existing Push Topic when using the Streaming API, defaults to false | false | 
Boolean
 | *camel.component.salesforce.enabled* | Enable salesforce component | true | 
Boolean
-| *camel.component.salesforce.http-client-properties* | Used to set any 
properties that can be configured on the underlying HTTP client. Have a look at 
properties of SalesforceHttpClient and the Jetty HttpClient for all available 
options. The option is a java.util.Map<java.lang.String,java.lang.Object> type. 
|  | String
+| *camel.component.salesforce.http-client-properties* | Used to set any 
properties that can be configured on the underlying HTTP client. Have a look at 
properties of SalesforceHttpClient and the Jetty HttpClient for all available 
options. |  | Map
 | *camel.component.salesforce.http-proxy-auth-uri* | Used in authentication 
against the HTTP proxy server, needs to match the URI of the proxy server in 
order for the httpProxyUsername and httpProxyPassword to be used for 
authentication. |  | String
-| *camel.component.salesforce.http-proxy-excluded-addresses* | A list of 
addresses for which HTTP proxy server should not be used. The option is a 
java.util.Set<java.lang.String> type. |  | String
+| *camel.component.salesforce.http-proxy-excluded-addresses* | A list of 
addresses for which HTTP proxy server should not be used. |  | Set
 | *camel.component.salesforce.http-proxy-host* | Hostname of the HTTP proxy 
server to use. |  | String
-| *camel.component.salesforce.http-proxy-included-addresses* | A list of 
addresses for which HTTP proxy server should be used. The option is a 
java.util.Set<java.lang.String> type. |  | String
+| *camel.component.salesforce.http-proxy-included-addresses* | A list of 
addresses for which HTTP proxy server should be used. |  | Set
 | *camel.component.salesforce.http-proxy-password* | Password to use to 
authenticate against the HTTP proxy server. |  | String
 | *camel.component.salesforce.http-proxy-port* | Port number of the HTTP proxy 
server to use. |  | Integer
 | *camel.component.salesforce.http-proxy-realm* | Realm of the proxy server, 
used in preemptive Basic/Digest authentication methods against the HTTP proxy 
server. |  | String
@@ -804,7 +804,7 @@ The component supports 85 options, which are listed below.
 | *camel.component.salesforce.login-config.type* |  |  | AuthenticationType
 | *camel.component.salesforce.login-config.user-name* | Salesforce account 
user name |  | String
 | *camel.component.salesforce.login-url* | URL of the Salesforce instance used 
for authentication, by default set to https://login.salesforce.com | 
https://login.salesforce.com | String
-| *camel.component.salesforce.long-polling-transport-properties* | Used to set 
any properties that can be configured on the LongPollingTransport used by the 
BayeuxClient (CometD) used by the streaming api. The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
+| *camel.component.salesforce.long-polling-transport-properties* | Used to set 
any properties that can be configured on the LongPollingTransport used by the 
BayeuxClient (CometD) used by the streaming api |  | Map
 | *camel.component.salesforce.packages* | In what packages are the generated 
DTO classes. Typically the classes would be generated using 
camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the 
benefit of using short SObject names in parameters/header values. |  | String[]
 | *camel.component.salesforce.password* | Password used in OAuth flow to gain 
access to access token. It's easy to get started with password OAuth flow, but 
in general one should avoid it as it is deemed less secure than other flows. 
Make sure that you append security token to the end of the password if using 
one. |  | String
 | *camel.component.salesforce.refresh-token* | Refresh token already obtained 
in the refresh token OAuth flow. One needs to setup a web application and 
configure a callback URL to receive the refresh token, or configure using the 
builtin callback at https://login.salesforce.com/services/oauth2/success or 
https://test.salesforce.com/services/oauth2/success and then retrive the 
refresh_token from the URL at the end of the flow. Note that in development 
organizations Salesforce allows hosti [...]
diff --git a/components/camel-saxon/src/main/docs/xquery-component.adoc 
b/components/camel-saxon/src/main/docs/xquery-component.adoc
index 0a84594..38a7d7a 100644
--- a/components/camel-saxon/src/main/docs/xquery-component.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-component.adoc
@@ -103,7 +103,7 @@ The component supports 8 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.xquery.configuration* | To use a custom Saxon 
configuration. The option is a net.sf.saxon.Configuration type. |  | String
-| *camel.component.xquery.configuration-properties* | To set custom Saxon 
configuration properties. The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
+| *camel.component.xquery.configuration-properties* | To set custom Saxon 
configuration properties |  | Map
 | *camel.component.xquery.enabled* | Enable xquery component | true | Boolean
 | *camel.component.xquery.module-u-r-i-resolver* | To use the custom 
ModuleURIResolver. The option is a net.sf.saxon.lib.ModuleURIResolver type. |  
| String
 | *camel.component.xquery.resolve-property-placeholders* | Whether the 
component should resolve property placeholders on itself when starting. Only 
properties which are of String type can use property placeholders. | true | 
Boolean
diff --git a/components/camel-saxon/src/main/docs/xquery-language.adoc 
b/components/camel-saxon/src/main/docs/xquery-language.adoc
index f1f7e3c..2a269ff 100644
--- a/components/camel-saxon/src/main/docs/xquery-language.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-language.adoc
@@ -38,7 +38,7 @@ The component supports 8 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.xquery.configuration* | To use a custom Saxon 
configuration. The option is a net.sf.saxon.Configuration type. |  | String
-| *camel.component.xquery.configuration-properties* | To set custom Saxon 
configuration properties. The option is a 
java.util.Map<java.lang.String,java.lang.Object> type. |  | String
+| *camel.component.xquery.configuration-properties* | To set custom Saxon 
configuration properties |  | Map
 | *camel.component.xquery.enabled* | Enable xquery component | true | Boolean
 | *camel.component.xquery.module-u-r-i-resolver* | To use the custom 
ModuleURIResolver. The option is a net.sf.saxon.lib.ModuleURIResolver type. |  
| String
 | *camel.component.xquery.resolve-property-placeholders* | Whether the 
component should resolve property placeholders on itself when starting. Only 
properties which are of String type can use property placeholders. | true | 
Boolean
diff --git a/components/camel-websocket/src/main/docs/websocket-component.adoc 
b/components/camel-websocket/src/main/docs/websocket-component.adoc
index a45904e..08e51d7 100644
--- a/components/camel-websocket/src/main/docs/websocket-component.adoc
+++ b/components/camel-websocket/src/main/docs/websocket-component.adoc
@@ -131,7 +131,7 @@ The component supports 15 options, which are listed below.
 | *camel.component.websocket.min-threads* | To set a value for minimum number 
of threads in server thread pool. MaxThreads/minThreads or threadPool fields 
are required due to switch to Jetty9. The default values for minThreads is 1. | 
 | Integer
 | *camel.component.websocket.port* | The port number. The default value is 
9292 | 9292 | Integer
 | *camel.component.websocket.resolve-property-placeholders* | Whether the 
component should resolve property placeholders on itself when starting. Only 
properties which are of String type can use property placeholders. | true | 
Boolean
-| *camel.component.websocket.socket-factory* | To configure a map which 
contains custom WebSocketFactory for sub protocols. The key in the map is the 
sub protocol. The default key is reserved for the default implementation. The 
option is a java.util.Map<java 
.lang.String,org.apache.camel.component.websocket.WebSocketFactory> type. |  | 
String
+| *camel.component.websocket.socket-factory* | To configure a map which 
contains custom WebSocketFactory for sub protocols. The key in the map is the 
sub protocol. The default key is reserved for the default implementation. |  | 
Map
 | *camel.component.websocket.ssl-context-parameters* | To configure security 
using SSLContextParameters. The option is a 
org.apache.camel.util.jsse.SSLContextParameters type. |  | String
 | *camel.component.websocket.ssl-key-password* | The password for the keystore 
when using SSL. |  | String
 | *camel.component.websocket.ssl-keystore* | The path to the keystore. |  | 
String
diff --git a/components/camel-xstream/src/main/docs/xstream-dataformat.adoc 
b/components/camel-xstream/src/main/docs/xstream-dataformat.adoc
index b57692a..5f0d418 100644
--- a/components/camel-xstream/src/main/docs/xstream-dataformat.adoc
+++ b/components/camel-xstream/src/main/docs/xstream-dataformat.adoc
@@ -76,16 +76,16 @@ The component supports 31 options, which are listed below.
 | *camel.dataformat.json-xstream.unmarshal-type-name* | Class name of the java 
type to use when unarmshalling |  | String
 | *camel.dataformat.json-xstream.use-default-object-mapper* | Whether to 
lookup and use default Jackson ObjectMapper from the registry. | true | Boolean
 | *camel.dataformat.json-xstream.use-list* | To unarmshal to a List of Map or 
a List of Pojo. | false | Boolean
-| *camel.dataformat.xstream.aliases* | Alias a Class to a shorter name to be 
used in XML elements. The option is a 
java.util.Map<java.lang.String,java.lang.String> type. |  | String
+| *camel.dataformat.xstream.aliases* | Alias a Class to a shorter name to be 
used in XML elements. |  | Map
 | *camel.dataformat.xstream.content-type-header* | Whether the data format 
should set the Content-Type header with the type from the data format if the 
data format is capable of doing so. For example application/xml for data 
formats marshalling to XML, or application/json for data formats marshalling to 
JSon etc. | false | Boolean
 | *camel.dataformat.xstream.converters* | List of class names for using custom 
XStream converters. The classes must be of type 
com.thoughtworks.xstream.converters.Converter |  | List
 | *camel.dataformat.xstream.driver* | To use a custom XStream driver. The 
instance must be of type com.thoughtworks.xstream.io.HierarchicalStreamDriver | 
 | String
 | *camel.dataformat.xstream.driver-ref* | To refer to a custom XStream driver 
to lookup in the registry. The instance must be of type 
com.thoughtworks.xstream.io.HierarchicalStreamDriver |  | String
 | *camel.dataformat.xstream.enabled* | Enable xstream dataformat | true | 
Boolean
 | *camel.dataformat.xstream.encoding* | Sets the encoding to use |  | String
-| *camel.dataformat.xstream.implicit-collections* | Adds a default implicit 
collection which is used for any unmapped XML tag. The option is a 
java.util.Map<java.lang.String,java.lang.String[]> type. |  | String
+| *camel.dataformat.xstream.implicit-collections* | Adds a default implicit 
collection which is used for any unmapped XML tag. |  | Map
 | *camel.dataformat.xstream.mode* | Mode for dealing with duplicate references 
The possible values are: NO_REFERENCES ID_REFERENCES XPATH_RELATIVE_REFERENCES 
XPATH_ABSOLUTE_REFERENCES SINGLE_NODE_XPATH_RELATIVE_REFERENCES 
SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES |  | String
-| *camel.dataformat.xstream.omit-fields* | Prevents a field from being 
serialized. To omit a field you must always provide the declaring type and not 
necessarily the type that is converted. The option is a 
java.util.Map<java.lang.String,java.lang.String[]> type. |  | String
+| *camel.dataformat.xstream.omit-fields* | Prevents a field from being 
serialized. To omit a field you must always provide the declaring type and not 
necessarily the type that is converted. |  | Map
 | *camel.dataformat.xstream.permissions* | Adds permissions that controls 
which Java packages and classes XStream is allowed to use during unmarshal from 
xml/json to Java beans. A permission must be configured either here or globally 
using a JVM system property. The permission can be specified in a syntax where 
a plus sign is allow, and minus sign is deny. Wildcards is supported by using . 
as prefix. For example to allow com.foo and all subpackages then specfy 
com.foo.. Multiple permissi [...]
 |===
 // spring-boot-auto-configure options: END
diff --git 
a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
index fabb30d..7676de4 100644
--- 
a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.xslt.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.transform.TransformerFactory;
@@ -82,10 +83,9 @@ public class XsltComponentConfiguration
      */
     private String saxonConfiguration;
     /**
-     * To set custom Saxon configuration properties. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * To set custom Saxon configuration properties
      */
-    private String saxonConfigurationProperties;
+    private Map<String, Object> saxonConfigurationProperties;
     /**
      * Whether the component should resolve property placeholders on itself 
when
      * starting. Only properties which are of String type can use property
@@ -149,12 +149,12 @@ public class XsltComponentConfiguration
         this.saxonConfiguration = saxonConfiguration;
     }
 
-    public String getSaxonConfigurationProperties() {
+    public Map<String, Object> getSaxonConfigurationProperties() {
         return saxonConfigurationProperties;
     }
 
     public void setSaxonConfigurationProperties(
-            String saxonConfigurationProperties) {
+            Map<String, Object> saxonConfigurationProperties) {
         this.saxonConfigurationProperties = saxonConfigurationProperties;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
index 95d8861..51a7d47 100644
--- 
a/platforms/spring-boot/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
@@ -65,11 +65,9 @@ public class EhcacheComponentConfiguration
      */
     private String cacheConfiguration;
     /**
-     * A map of caches configurations to be used to create caches. The option 
is
-     * a 
java.util.Map<java.lang.String,org.ehcache.config.CacheConfiguration<?,
-     * ?>> type.
+     * A map of caches configurations to be used to create caches.
      */
-    private String cachesConfigurations;
+    private Map<String, CacheConfiguration<?, ?>> cachesConfigurations;
     /**
      * URI pointing to the Ehcache XML configuration file's location
      */
@@ -114,11 +112,12 @@ public class EhcacheComponentConfiguration
         this.cacheConfiguration = cacheConfiguration;
     }
 
-    public String getCachesConfigurations() {
+    public Map<String, CacheConfiguration<?, ?>> getCachesConfigurations() {
         return cachesConfigurations;
     }
 
-    public void setCachesConfigurations(String cachesConfigurations) {
+    public void setCachesConfigurations(
+            Map<String, CacheConfiguration<?, ?>> cachesConfigurations) {
         this.cachesConfigurations = cachesConfigurations;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirJsonDataFormatConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirJsonDataFormatConfiguration.java
index 41717ce..ed1507b 100644
--- 
a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirJsonDataFormatConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirJsonDataFormatConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.fhir.springboot;
 
 import java.util.List;
+import java.util.Set;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -66,10 +67,9 @@ public class FhirJsonDataFormatConfiguration
     /**
      * If provided, tells the parse which resource types to apply link
      * #setEncodeElements(Set) encode elements to. Any resource types not
-     * specified here will be encoded completely, with no elements excluded. 
The
-     * option is a java.util.Set<java.lang.String> type.
+     * specified here will be encoded completely, with no elements excluded.
      */
-    private String encodeElementsAppliesToResourceTypes;
+    private Set<String> encodeElementsAppliesToResourceTypes;
     /**
      * If set to true (default is false), the values supplied to
      * setEncodeElements(Set) will not be applied to the root resource
@@ -84,10 +84,9 @@ public class FhirJsonDataFormatConfiguration
      * the patient's name Patient.name.family - Encode only the patient's 
family
      * name .text - Encode the text element on any resource (only the very 
first
      * position may contain a wildcard) .(mandatory) - This is a special case
-     * which causes any mandatory fields (min 0) to be encoded. The option is a
-     * java.util.Set<java.lang.String> type.
+     * which causes any mandatory fields (min 0) to be encoded
      */
-    private String encodeElements;
+    private Set<String> encodeElements;
     /**
      * If provided, specifies the elements which should NOT be encoded. Valid
      * values for this field would include: Patient - Don't encode patient and
@@ -97,9 +96,9 @@ public class FhirJsonDataFormatConfiguration
      * position may contain a wildcard) DSTU2 note: Note that values including
      * meta, such as Patient.meta will work for DSTU2 parsers, but values with
      * subelements on meta such as Patient.meta.lastUpdated will only work in
-     * DSTU3 mode. The option is a java.util.Set<java.lang.String> type.
+     * DSTU3 mode.
      */
-    private String dontEncodeElements;
+    private Set<String> dontEncodeElements;
     /**
      * If set to true (which is the default), resource references containing a
      * version will have the version removed when the resource is encoded. This
@@ -182,12 +181,12 @@ public class FhirJsonDataFormatConfiguration
         this.omitResourceId = omitResourceId;
     }
 
-    public String getEncodeElementsAppliesToResourceTypes() {
+    public Set<String> getEncodeElementsAppliesToResourceTypes() {
         return encodeElementsAppliesToResourceTypes;
     }
 
     public void setEncodeElementsAppliesToResourceTypes(
-            String encodeElementsAppliesToResourceTypes) {
+            Set<String> encodeElementsAppliesToResourceTypes) {
         this.encodeElementsAppliesToResourceTypes = 
encodeElementsAppliesToResourceTypes;
     }
 
@@ -200,19 +199,19 @@ public class FhirJsonDataFormatConfiguration
         this.encodeElementsAppliesToChildResourcesOnly = 
encodeElementsAppliesToChildResourcesOnly;
     }
 
-    public String getEncodeElements() {
+    public Set<String> getEncodeElements() {
         return encodeElements;
     }
 
-    public void setEncodeElements(String encodeElements) {
+    public void setEncodeElements(Set<String> encodeElements) {
         this.encodeElements = encodeElements;
     }
 
-    public String getDontEncodeElements() {
+    public Set<String> getDontEncodeElements() {
         return dontEncodeElements;
     }
 
-    public void setDontEncodeElements(String dontEncodeElements) {
+    public void setDontEncodeElements(Set<String> dontEncodeElements) {
         this.dontEncodeElements = dontEncodeElements;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirXmlDataFormatConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirXmlDataFormatConfiguration.java
index 0ff123f..1698647 100644
--- 
a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirXmlDataFormatConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirXmlDataFormatConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.fhir.springboot;
 
 import java.util.List;
+import java.util.Set;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -66,10 +67,9 @@ public class FhirXmlDataFormatConfiguration
     /**
      * If provided, tells the parse which resource types to apply link
      * #setEncodeElements(Set) encode elements to. Any resource types not
-     * specified here will be encoded completely, with no elements excluded. 
The
-     * option is a java.util.Set<java.lang.String> type.
+     * specified here will be encoded completely, with no elements excluded.
      */
-    private String encodeElementsAppliesToResourceTypes;
+    private Set<String> encodeElementsAppliesToResourceTypes;
     /**
      * If set to true (default is false), the values supplied to
      * setEncodeElements(Set) will not be applied to the root resource
@@ -84,10 +84,9 @@ public class FhirXmlDataFormatConfiguration
      * the patient's name Patient.name.family - Encode only the patient's 
family
      * name .text - Encode the text element on any resource (only the very 
first
      * position may contain a wildcard) .(mandatory) - This is a special case
-     * which causes any mandatory fields (min 0) to be encoded. The option is a
-     * java.util.Set<java.lang.String> type.
+     * which causes any mandatory fields (min 0) to be encoded
      */
-    private String encodeElements;
+    private Set<String> encodeElements;
     /**
      * If provided, specifies the elements which should NOT be encoded. Valid
      * values for this field would include: Patient - Don't encode patient and
@@ -97,9 +96,9 @@ public class FhirXmlDataFormatConfiguration
      * position may contain a wildcard) DSTU2 note: Note that values including
      * meta, such as Patient.meta will work for DSTU2 parsers, but values with
      * subelements on meta such as Patient.meta.lastUpdated will only work in
-     * DSTU3 mode. The option is a java.util.Set<java.lang.String> type.
+     * DSTU3 mode.
      */
-    private String dontEncodeElements;
+    private Set<String> dontEncodeElements;
     /**
      * If set to true (which is the default), resource references containing a
      * version will have the version removed when the resource is encoded. This
@@ -182,12 +181,12 @@ public class FhirXmlDataFormatConfiguration
         this.omitResourceId = omitResourceId;
     }
 
-    public String getEncodeElementsAppliesToResourceTypes() {
+    public Set<String> getEncodeElementsAppliesToResourceTypes() {
         return encodeElementsAppliesToResourceTypes;
     }
 
     public void setEncodeElementsAppliesToResourceTypes(
-            String encodeElementsAppliesToResourceTypes) {
+            Set<String> encodeElementsAppliesToResourceTypes) {
         this.encodeElementsAppliesToResourceTypes = 
encodeElementsAppliesToResourceTypes;
     }
 
@@ -200,19 +199,19 @@ public class FhirXmlDataFormatConfiguration
         this.encodeElementsAppliesToChildResourcesOnly = 
encodeElementsAppliesToChildResourcesOnly;
     }
 
-    public String getEncodeElements() {
+    public Set<String> getEncodeElements() {
         return encodeElements;
     }
 
-    public void setEncodeElements(String encodeElements) {
+    public void setEncodeElements(Set<String> encodeElements) {
         this.encodeElements = encodeElements;
     }
 
-    public String getDontEncodeElements() {
+    public Set<String> getDontEncodeElements() {
         return dontEncodeElements;
     }
 
-    public void setDontEncodeElements(String dontEncodeElements) {
+    public void setDontEncodeElements(Set<String> dontEncodeElements) {
         this.dontEncodeElements = dontEncodeElements;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-jetty9-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
 
b/platforms/spring-boot/components-starter/camel-jetty9-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
index 2a09d69..2b6c7fb 100644
--- 
a/platforms/spring-boot/components-starter/camel-jetty9-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
+++ 
b/platforms/spring-boot/components-starter/camel-jetty9-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
@@ -16,8 +16,10 @@
  */
 package org.apache.camel.component.jetty9.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.eclipse.jetty.server.Connector;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -60,17 +62,14 @@ public class JettyHttpComponentConfiguration9
      */
     private String errorHandler;
     /**
-     * A map which contains per port number specific SSL connectors. The option
-     * is a java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector>
-     * type.
+     * A map which contains per port number specific SSL connectors.
      */
-    private String sslSocketConnectors;
+    private Map<Integer, Connector> sslSocketConnectors;
     /**
      * A map which contains per port number specific HTTP connectors. Uses the
-     * same principle as sslSocketConnectors. The option is a
-     * java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector> 
type.
+     * same principle as sslSocketConnectors.
      */
-    private String socketConnectors;
+    private Map<Integer, Connector> socketConnectors;
     /**
      * To set a value for minimum number of threads in HttpClient thread pool.
      * Notice that both a min and max size must be configured.
@@ -125,16 +124,14 @@ public class JettyHttpComponentConfiguration9
      */
     private String mbContainer;
     /**
-     * A map which contains general SSL connector properties. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * A map which contains general SSL connector properties.
      */
-    private String sslSocketConnectorProperties;
+    private Map<String, Object> sslSocketConnectorProperties;
     /**
      * A map which contains general HTTP connector properties. Uses the same
-     * principle as sslSocketConnectorProperties. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * principle as sslSocketConnectorProperties.
      */
-    private String socketConnectorProperties;
+    private Map<String, Object> socketConnectorProperties;
     /**
      * Allows to set a timeout in millis when using Jetty as consumer (server).
      * By default Jetty uses 30000. You can use a value of = 0 to never expire.
@@ -248,19 +245,20 @@ public class JettyHttpComponentConfiguration9
         this.errorHandler = errorHandler;
     }
 
-    public String getSslSocketConnectors() {
+    public Map<Integer, Connector> getSslSocketConnectors() {
         return sslSocketConnectors;
     }
 
-    public void setSslSocketConnectors(String sslSocketConnectors) {
+    public void setSslSocketConnectors(
+            Map<Integer, Connector> sslSocketConnectors) {
         this.sslSocketConnectors = sslSocketConnectors;
     }
 
-    public String getSocketConnectors() {
+    public Map<Integer, Connector> getSocketConnectors() {
         return socketConnectors;
     }
 
-    public void setSocketConnectors(String socketConnectors) {
+    public void setSocketConnectors(Map<Integer, Connector> socketConnectors) {
         this.socketConnectors = socketConnectors;
     }
 
@@ -344,20 +342,21 @@ public class JettyHttpComponentConfiguration9
         this.mbContainer = mbContainer;
     }
 
-    public String getSslSocketConnectorProperties() {
+    public Map<String, Object> getSslSocketConnectorProperties() {
         return sslSocketConnectorProperties;
     }
 
     public void setSslSocketConnectorProperties(
-            String sslSocketConnectorProperties) {
+            Map<String, Object> sslSocketConnectorProperties) {
         this.sslSocketConnectorProperties = sslSocketConnectorProperties;
     }
 
-    public String getSocketConnectorProperties() {
+    public Map<String, Object> getSocketConnectorProperties() {
         return socketConnectorProperties;
     }
 
-    public void setSocketConnectorProperties(String socketConnectorProperties) 
{
+    public void setSocketConnectorProperties(
+            Map<String, Object> socketConnectorProperties) {
         this.socketConnectorProperties = socketConnectorProperties;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
index d2b87da..fcc741b 100644
--- 
a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.milo.server.springboot;
 
 import java.io.File;
 import java.util.Collection;
+import java.util.Set;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
@@ -72,11 +73,9 @@ public class MiloServerComponentConfiguration
      */
     private String hostname;
     /**
-     * Security policies. The option is a
-     * java.util.Set<org.eclipse.milo.opcua.stack.core.security.SecurityPolicy>
-     * type.
+     * Security policies
      */
-    private String securityPolicies;
+    private Set<SecurityPolicy> securityPolicies;
     /**
      * Security policies by URI or name
      */
@@ -195,11 +194,11 @@ public class MiloServerComponentConfiguration
         this.hostname = hostname;
     }
 
-    public String getSecurityPolicies() {
+    public Set<SecurityPolicy> getSecurityPolicies() {
         return securityPolicies;
     }
 
-    public void setSecurityPolicies(String securityPolicies) {
+    public void setSecurityPolicies(Set<SecurityPolicy> securityPolicies) {
         this.securityPolicies = securityPolicies;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-quickfix-starter/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-quickfix-starter/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
index 0685046..fb4884a 100644
--- 
a/platforms/spring-boot/components-starter/camel-quickfix-starter/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-quickfix-starter/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConfiguration.java
@@ -16,7 +16,9 @@
  */
 package org.apache.camel.component.quickfixj.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.quickfixj.QuickfixjConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -53,11 +55,9 @@ public class QuickfixjComponentConfiguration
     private String messageStoreFactory;
     /**
      * To use the given map of pre configured QuickFix configurations mapped to
-     * the key. The option is a
-     * java.util.Map<java.lang.String,org.apache.camel.component
-     * .quickfixj.QuickfixjConfiguration> type.
+     * the key
      */
-    private String configurations;
+    private Map<String, QuickfixjConfiguration> configurations;
     /**
      * If set to true, the engines will be created and started when needed 
(when
      * first message is send)
@@ -94,11 +94,12 @@ public class QuickfixjComponentConfiguration
         this.messageStoreFactory = messageStoreFactory;
     }
 
-    public String getConfigurations() {
+    public Map<String, QuickfixjConfiguration> getConfigurations() {
         return configurations;
     }
 
-    public void setConfigurations(String configurations) {
+    public void setConfigurations(
+            Map<String, QuickfixjConfiguration> configurations) {
         this.configurations = configurations;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-rabbitmq-starter/src/main/java/org/apache/camel/component/rabbitmq/springboot/RabbitMQComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-rabbitmq-starter/src/main/java/org/apache/camel/component/rabbitmq/springboot/RabbitMQComponentConfiguration.java
index d9da3f6..d57f127 100644
--- 
a/platforms/spring-boot/components-starter/camel-rabbitmq-starter/src/main/java/org/apache/camel/component/rabbitmq/springboot/RabbitMQComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-rabbitmq-starter/src/main/java/org/apache/camel/component/rabbitmq/springboot/RabbitMQComponentConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.rabbitmq.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -199,16 +200,14 @@ public class RabbitMQComponentConfiguration
      * different prefix is required for each: Exchange: arg.exchange. Queue:
      * arg.queue. Binding: arg.binding. For example to declare a queue with
      * message ttl argument:
-     * http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000.
-     * The option is a java.util.Map<java.lang.String,java.lang.Object> type.
+     * http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000
      */
-    private String args;
+    private Map<String, Object> args;
     /**
      * Connection client properties (client info used in negotiating with the
-     * server). The option is a 
java.util.Map<java.lang.String,java.lang.Object>
-     * type.
+     * server)
      */
-    private String clientProperties;
+    private Map<String, Object> clientProperties;
     /**
      * Enables SSL on connection, accepted value are true, TLS and 'SSLv3
      */
@@ -535,19 +534,19 @@ public class RabbitMQComponentConfiguration
         this.immediate = immediate;
     }
 
-    public String getArgs() {
+    public Map<String, Object> getArgs() {
         return args;
     }
 
-    public void setArgs(String args) {
+    public void setArgs(Map<String, Object> args) {
         this.args = args;
     }
 
-    public String getClientProperties() {
+    public Map<String, Object> getClientProperties() {
         return clientProperties;
     }
 
-    public void setClientProperties(String clientProperties) {
+    public void setClientProperties(Map<String, Object> clientProperties) {
         this.clientProperties = clientProperties;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
index 24a69eb..ba7c6df 100644
--- 
a/platforms/spring-boot/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.salesforce.springboot;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import javax.annotation.Generated;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.AuthenticationType;
@@ -132,17 +133,15 @@ public class SalesforceComponentConfiguration
     /**
      * Used to set any properties that can be configured on the underlying HTTP
      * client. Have a look at properties of SalesforceHttpClient and the Jetty
-     * HttpClient for all available options. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * HttpClient for all available options.
      */
-    private String httpClientProperties;
+    private Map<String, Object> httpClientProperties;
     /**
      * Used to set any properties that can be configured on the
      * LongPollingTransport used by the BayeuxClient (CometD) used by the
-     * streaming api. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * streaming api
      */
-    private String longPollingTransportProperties;
+    private Map<String, Object> longPollingTransportProperties;
     /**
      * SSL parameters to use, see SSLContextParameters class for all available
      * options. The option is a org.apache.camel.util.jsse.SSLContextParameters
@@ -178,15 +177,13 @@ public class SalesforceComponentConfiguration
      */
     private Boolean isHttpProxySecure = true;
     /**
-     * A list of addresses for which HTTP proxy server should be used. The
-     * option is a java.util.Set<java.lang.String> type.
+     * A list of addresses for which HTTP proxy server should be used.
      */
-    private String httpProxyIncludedAddresses;
+    private Set<String> httpProxyIncludedAddresses;
     /**
-     * A list of addresses for which HTTP proxy server should not be used. The
-     * option is a java.util.Set<java.lang.String> type.
+     * A list of addresses for which HTTP proxy server should not be used.
      */
-    private String httpProxyExcludedAddresses;
+    private Set<String> httpProxyExcludedAddresses;
     /**
      * Used in authentication against the HTTP proxy server, needs to match the
      * URI of the proxy server in order for the httpProxyUsername and
@@ -314,20 +311,20 @@ public class SalesforceComponentConfiguration
         this.config = config;
     }
 
-    public String getHttpClientProperties() {
+    public Map<String, Object> getHttpClientProperties() {
         return httpClientProperties;
     }
 
-    public void setHttpClientProperties(String httpClientProperties) {
+    public void setHttpClientProperties(Map<String, Object> 
httpClientProperties) {
         this.httpClientProperties = httpClientProperties;
     }
 
-    public String getLongPollingTransportProperties() {
+    public Map<String, Object> getLongPollingTransportProperties() {
         return longPollingTransportProperties;
     }
 
     public void setLongPollingTransportProperties(
-            String longPollingTransportProperties) {
+            Map<String, Object> longPollingTransportProperties) {
         this.longPollingTransportProperties = longPollingTransportProperties;
     }
 
@@ -396,19 +393,21 @@ public class SalesforceComponentConfiguration
         this.isHttpProxySecure = isHttpProxySecure;
     }
 
-    public String getHttpProxyIncludedAddresses() {
+    public Set<String> getHttpProxyIncludedAddresses() {
         return httpProxyIncludedAddresses;
     }
 
-    public void setHttpProxyIncludedAddresses(String 
httpProxyIncludedAddresses) {
+    public void setHttpProxyIncludedAddresses(
+            Set<String> httpProxyIncludedAddresses) {
         this.httpProxyIncludedAddresses = httpProxyIncludedAddresses;
     }
 
-    public String getHttpProxyExcludedAddresses() {
+    public Set<String> getHttpProxyExcludedAddresses() {
         return httpProxyExcludedAddresses;
     }
 
-    public void setHttpProxyExcludedAddresses(String 
httpProxyExcludedAddresses) {
+    public void setHttpProxyExcludedAddresses(
+            Set<String> httpProxyExcludedAddresses) {
         this.httpProxyExcludedAddresses = httpProxyExcludedAddresses;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentTest.java
 
b/platforms/spring-boot/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentTest.java
new file mode 100644
index 0000000..2a5f246
--- /dev/null
+++ 
b/platforms/spring-boot/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentTest.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import org.apache.camel.component.salesforce.SalesforceComponent;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@DirtiesContext
+@SpringBootApplication
+@SpringBootTest(properties = {
+        "camel.component.salesforce.refresh-token=myToken",
+        "camel.component.salesforce.client-secret=mySecret",
+        "camel.component.salesforce.client-id=myClient",
+        "camel.component.salesforce.lazy-login=true",
+        
"camel.component.salesforce.http-client-properties.requestBufferSize=12345",
+        "camel.component.salesforce.http-client-properties.bar=yes",
+})
+public class SalesforceComponentTest {
+
+    @Autowired
+    private SalesforceComponent sf;
+
+    @Test
+    public void testSalesforceComponent() {
+        Assert.assertNotNull(sf);
+        Assert.assertNotNull(sf.getHttpClientProperties());
+        Assert.assertEquals("12345", 
sf.getHttpClientProperties().get("requestBufferSize"));
+        Assert.assertEquals("yes", sf.getHttpClientProperties().get("bar"));
+    }
+}
diff --git 
a/platforms/spring-boot/components-starter/camel-saxon-starter/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-saxon-starter/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
index aa034a7..72d5975 100644
--- 
a/platforms/spring-boot/components-starter/camel-saxon-starter/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-saxon-starter/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.xquery.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -47,10 +48,9 @@ public class XQueryComponentConfiguration
      */
     private String configuration;
     /**
-     * To set custom Saxon configuration properties. The option is a
-     * java.util.Map<java.lang.String,java.lang.Object> type.
+     * To set custom Saxon configuration properties
      */
-    private String configurationProperties;
+    private Map<String, Object> configurationProperties;
     /**
      * Whether the component should resolve property placeholders on itself 
when
      * starting. Only properties which are of String type can use property
@@ -74,11 +74,12 @@ public class XQueryComponentConfiguration
         this.configuration = configuration;
     }
 
-    public String getConfigurationProperties() {
+    public Map<String, Object> getConfigurationProperties() {
         return configurationProperties;
     }
 
-    public void setConfigurationProperties(String configurationProperties) {
+    public void setConfigurationProperties(
+            Map<String, Object> configurationProperties) {
         this.configurationProperties = configurationProperties;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-websocket-starter/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-websocket-starter/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
index e64d13a..48d11a7 100644
--- 
a/platforms/spring-boot/components-starter/camel-websocket-starter/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-websocket-starter/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConfiguration.java
@@ -16,7 +16,9 @@
  */
 package org.apache.camel.component.websocket.springboot;
 
+import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.websocket.WebSocketFactory;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -101,11 +103,9 @@ public class WebsocketComponentConfiguration
     /**
      * To configure a map which contains custom WebSocketFactory for sub
      * protocols. The key in the map is the sub protocol. The default key is
-     * reserved for the default implementation. The option is a
-     * java.util.Map<java
-     * .lang.String,org.apache.camel.component.websocket.WebSocketFactory> 
type.
+     * reserved for the default implementation.
      */
-    private String socketFactory;
+    private Map<String, WebSocketFactory> socketFactory;
     /**
      * Whether the component should resolve property placeholders on itself 
when
      * starting. Only properties which are of String type can use property
@@ -210,11 +210,11 @@ public class WebsocketComponentConfiguration
         this.useGlobalSslContextParameters = useGlobalSslContextParameters;
     }
 
-    public String getSocketFactory() {
+    public Map<String, WebSocketFactory> getSocketFactory() {
         return socketFactory;
     }
 
-    public void setSocketFactory(String socketFactory) {
+    public void setSocketFactory(Map<String, WebSocketFactory> socketFactory) {
         this.socketFactory = socketFactory;
     }
 
diff --git 
a/platforms/spring-boot/components-starter/camel-xstream-starter/src/main/java/org/apache/camel/dataformat/xstream/springboot/XStreamDataFormatConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-xstream-starter/src/main/java/org/apache/camel/dataformat/xstream/springboot/XStreamDataFormatConfiguration.java
index 7943323..b50b373 100644
--- 
a/platforms/spring-boot/components-starter/camel-xstream-starter/src/main/java/org/apache/camel/dataformat/xstream/springboot/XStreamDataFormatConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-xstream-starter/src/main/java/org/apache/camel/dataformat/xstream/springboot/XStreamDataFormatConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.dataformat.xstream.springboot;
 
 import java.util.List;
+import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -80,23 +81,20 @@ public class XStreamDataFormatConfiguration
      */
     private List<String> converters;
     /**
-     * Alias a Class to a shorter name to be used in XML elements. The option 
is
-     * a java.util.Map<java.lang.String,java.lang.String> type.
+     * Alias a Class to a shorter name to be used in XML elements.
      */
-    private String aliases;
+    private Map<String, String> aliases;
     /**
      * Prevents a field from being serialized. To omit a field you must always
      * provide the declaring type and not necessarily the type that is
-     * converted. The option is a
-     * java.util.Map<java.lang.String,java.lang.String[]> type.
+     * converted.
      */
-    private String omitFields;
+    private Map<String, String[]> omitFields;
     /**
      * Adds a default implicit collection which is used for any unmapped XML
-     * tag. The option is a java.util.Map<java.lang.String,java.lang.String[]>
-     * type.
+     * tag.
      */
-    private String implicitCollections;
+    private Map<String, String[]> implicitCollections;
     /**
      * Whether the data format should set the Content-Type header with the type
      * from the data format if the data format is capable of doing so. For
@@ -153,27 +151,27 @@ public class XStreamDataFormatConfiguration
         this.converters = converters;
     }
 
-    public String getAliases() {
+    public Map<String, String> getAliases() {
         return aliases;
     }
 
-    public void setAliases(String aliases) {
+    public void setAliases(Map<String, String> aliases) {
         this.aliases = aliases;
     }
 
-    public String getOmitFields() {
+    public Map<String, String[]> getOmitFields() {
         return omitFields;
     }
 
-    public void setOmitFields(String omitFields) {
+    public void setOmitFields(Map<String, String[]> omitFields) {
         this.omitFields = omitFields;
     }
 
-    public String getImplicitCollections() {
+    public Map<String, String[]> getImplicitCollections() {
         return implicitCollections;
     }
 
-    public void setImplicitCollections(String implicitCollections) {
+    public void setImplicitCollections(Map<String, String[]> 
implicitCollections) {
         this.implicitCollections = implicitCollections;
     }
 
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
index 4e3a7d4..0009031 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
@@ -963,16 +963,28 @@ public class SpringBootAutoConfigurationMojo extends 
AbstractMojo {
     }
 
     private boolean isComplexType(ComponentOptionModel option) {
+        // we can configure map/list/set types from spring-boot so do not 
regard them as complex
+        if (option.getJavaType().startsWith("java.util.Map") || 
option.getJavaType().startsWith("java.util.List") || 
option.getJavaType().startsWith("java.util.Set")) {
+            return false;
+        }
         // all the object types are complex
         return "object".equals(option.getType());
     }
 
     private boolean isComplexType(DataFormatOptionModel option) {
+        // we can configure map/list/set types from spring-boot so do not 
regard them as complex
+        if (option.getJavaType().startsWith("java.util.Map") || 
option.getJavaType().startsWith("java.util.List") || 
option.getJavaType().startsWith("java.util.Set")) {
+            return false;
+        }
         // all the object types are complex
         return "object".equals(option.getType());
     }
 
     private boolean isComplexType(LanguageOptionModel option) {
+        // we can configure map/list/set types from spring-boot so do not 
regard them as complex
+        if (option.getJavaType().startsWith("java.util.Map") || 
option.getJavaType().startsWith("java.util.List") || 
option.getJavaType().startsWith("java.util.Set")) {
+            return false;
+        }
         // all the object types are complex
         return "object".equals(option.getType());
     }

Reply via email to